【发布时间】:2018-10-29 08:26:20
【问题描述】:
在自定义运算符的代码中,我有这样几行:
for i in xrange(batch_size):
numpy.XXX
为了获得更好的性能,我使用了多处理。但是卡住了。
【问题讨论】:
在自定义运算符的代码中,我有这样几行:
for i in xrange(batch_size):
numpy.XXX
为了获得更好的性能,我使用了多处理。但是卡住了。
【问题讨论】:
您的自定义运算符的完整示例可能有助于诊断问题,但我可以根据您提供的代码 sn-p 给出一些建议:
不要在自定义运算符中使用 numpy。问题是,使用 Numpy 最终会迫使 MXNet 将数据移动到 CPU 中,与使用 GPU 获得的计算相比,计算速度会更慢。使用 NumPy 是不可能使用 GPU 的。
不要使用 foreach 循环遍历批处理中的项目。由于性能原因,MXNet 的所有算子都支持批量输入。
如果您仍需要在自定义运算符中为其他维度使用循环,请使用foreach operator。它的制作方式可以与NDArray 和Symbol 一起使用。查看tutorial如何使用它。
【讨论】: