在自定义运算符中使用多重处理

时间:2018-10-29 08:26:21

标签: python mxnet

在自定义运算符的代码中,我有以下几行:

 for i in xrange(batch_size):
    numpy.XXX

为了获得更好的性能,我使用了多重处理。但这卡住了。

1 个答案:

答案 0 :(得分:0)

也许您的自定义运算符的完整示例可以帮助诊断问题,但是我可以根据您提供的代码段给出一些建议:

  1. 不要在自定义运算符中使用numpy。事实是,与使用GPU相比,使用Numpy最终将迫使MXNet将数据移入CPU,从而使计算速度变慢。使用NumPy不可能使用GPU。

  2. 不要使用foreach遍历批处理中的项目。由于性能原因,MXNet的所有操作员都支持批量输入。

  3. 如果您仍需要在自定义运算符中将循环用于其他维度,请使用foreach operator。它以可以与NDArraySymbol一起使用的方式制成。查看tutorial的使用方法。