在自定义运算符的代码中,我有以下几行:
for i in xrange(batch_size):
numpy.XXX
为了获得更好的性能,我使用了多重处理。但这卡住了。
答案 0 :(得分:0)
也许您的自定义运算符的完整示例可以帮助诊断问题,但是我可以根据您提供的代码段给出一些建议:
不要在自定义运算符中使用numpy。事实是,与使用GPU相比,使用Numpy最终将迫使MXNet将数据移入CPU,从而使计算速度变慢。使用NumPy不可能使用GPU。
不要使用foreach遍历批处理中的项目。由于性能原因,MXNet的所有操作员都支持批量输入。
如果您仍需要在自定义运算符中将循环用于其他维度,请使用foreach operator。它以可以与NDArray
和Symbol
一起使用的方式制成。查看tutorial的使用方法。