使用小批量时Julia MXNet中的BoundersError

使用小批量时Julia MXNet中的BoundersError,julia,mxnet,Julia,Mxnet,我试图在Julia 0.6.0中重现一些Python MXNet代码,如果我尝试使用小于输出维度的批处理大小,我会得到一个BoundersError。如果我在一个玩具示例中使用较大的批处理大小,事情会正常工作,网络会收敛到正确的解决方案,但在我的应用程序中,输出维度较大,因此这是不实际的 下面是一个线性回归示例,给出了此错误: using MXNet net = mx.Variable(:data) net = mx.FullyConnected(net, name=:fc0, num_hidd

我试图在Julia 0.6.0中重现一些Python MXNet代码,如果我尝试使用小于输出维度的批处理大小,我会得到一个BoundersError。如果我在一个玩具示例中使用较大的批处理大小,事情会正常工作,网络会收敛到正确的解决方案,但在我的应用程序中,输出维度较大,因此这是不实际的

下面是一个线性回归示例,给出了此错误:

using MXNet
net = mx.Variable(:data)
net = mx.FullyConnected(net, name=:fc0, num_hidden=5)
net = mx.LinearRegressionOutput(net, name=:output)
mod = mx.FeedForward(net, context=mx.cpu(0))

batch_size = 4 # works for batch_size > 4

A = randn(5,100)
train_in = randn(100,1000)
train_out = A*train_in + .1*randn(5,1000)
train_provider = mx.ArrayDataProvider(:data=>train_in,
                                      :output_label=>train_out,
                                      shuffle=true,
                                      batch_size=batch_size)

optimizer = mx.SGD(lr=0.001, momentum=0.9, weight_decay=0.00001)
mx.fit(mod, optimizer, train_provider)
这就产生了

INFO: Start training on MXNet.mx.Context[CPU0]
INFO: Initializing parameters...
INFO: Creating KVStore...
INFO: TempSpace: Total 0 MB allocated on CPU0
INFO: Start training...
ERROR: LoadError: BoundsError: attempt to access 5×4 Array{Float32,2} at index [Base.Slice(Base.OneTo(5)), 5]

如果我将批处理大小增加到5或更大,它将按预期工作。我遗漏了什么?

您可以在此处跟踪此错误的解决方案:


我已经在两周前测试了它,但不幸的是,它仍然在发生。

这看起来像是一个Julia错误,让我为您归档。完成了,新错误:感谢您归档错误!