此问题是关于使任何nnGraph网络在多个GPU上运行而不是特定于以下网络实例
我正在尝试训练一个用nnGraph构建的网络。后面的图表是附上的。我试图在多GPU设置中运行parallelModel(请参阅代码或图9)。如果我将并行模型附加到nn.Sequential容器然后创建DataParallelTable,它将在多GPU设置中工作(没有nnGraph)。但是,在将它附加到nnGraph后,我收到一个错误。如果我在单个GPU上训练(在if语句中将true设置为false),则向后传递有效,但在多GPU设置中,我收到错误" gmodule.lua:418:尝试索引本地&#39 ; gradInput' (零值)"。我认为后向传递中的节点9应该在多GPU上运行,但这并没有发生。在nnGraph上创建DataParallelTable并不适合我,但我认为至少将内部顺序网络放在DataParallelTable中会起作用。有没有其他方法来分割传递给nnGraph的初始数据,以便它在多GPU上运行?
import matplotlib.tri as mtri
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
for LineIndex in range(c_size-1):
# If plotting all at once, you get a MemoryError. I'll plot each 6 points
for Sample in range(0, array_size-1, 3):
# I switched x and c_array, because the surface and the triangles
# will look better by default
X = np.concatenate([t[LineIndex,Sample:Sample+3], t[LineIndex+1,Sample:Sample+3]])
Y = np.concatenate([c_array[LineIndex,Sample:Sample+3], c_array[LineIndex+1,Sample:Sample+3]])
Z = np.concatenate([x[LineIndex,Sample:Sample+3], x[LineIndex+1,Sample:Sample+3]])
T = mtri.Triangulation(X, Y)
ax.plot_trisurf(X, Y, Z, triangles=T.triangles, edgecolor='none', antialiased=False)
ax.set_xlabel('t')
ax.set_zlabel('x')
plt.savefig('Test.png', format='png', dpi=600)
plt.show()
"中的代码;如果"陈述取自Facebook's ResNet implementation