问题描述:
我的训练是每筛选一次数据(使用建立的网络ResCNN对随机原始数据的预测值,对数据筛选获得一个batch的数据)后,进行一个step(一个batch的训练),但在训练过程中使用GPU时发现mindspore的前向传播(使用net得到预测值或者使用model.predict接口)过程十分缓慢,对应的同机器的tensorflow上面该过程只需要0.x s的耗时,处理的数据大小一致,都是(640, 160, 64,1)。
下图为mindspore的得到预测值的时间,
对应的mindspore过程为:
在tensorflow中,只需要0.8s
使用的是相同GPU, 然后tensorflow上也没有特殊处理,tensorflow的对应过程为:
,请问mindspore中是否该正向计算可以缩减时间呢,方便训练的效率
解答:
你好,建议可以先使用profiler工具分析性能:
mindspore.profiler接口详情:https://mindspore.cn/docs/zh-CN/r1.7/api_python/mindspore.profiler.html
GPU上profiler的性能调试:https://www.mindspore.cn/mindinsight/docs/zh-CN/r1.7/performance_profiling_gpu.html
其他相关教程:https://mindspore.cn/docs/zh-CN/r1.7/migration_guide/performance_optimization.html (其中案例2涉及前向运行时间长的问题)