Python TypeError:不兼容的可广播维度。应为(假),已为(真)

Python TypeError:不兼容的可广播维度。应为(假),已为(真),python,theano,lasagne,batch-normalization,Python,Theano,Lasagne,Batch Normalization,我正在和西亚诺和千层面一起工作 我正在尝试使用BatchNorm,我得到了这个错误。有人能给我指点迷津吗?或者,如果我可以得到具有这种不匹配的变量的名称 谢谢 编辑1: 我正在尝试这样做: inputTarget = lasagne.layers.InputLayer(shape=(1,2,32, 32, 32), input_var=T.concatenate([tX, tY], axis=1)) network = lasagne.layers.SliceLayer(inputTarget,

我正在和西亚诺和千层面一起工作

我正在尝试使用BatchNorm,我得到了这个错误。有人能给我指点迷津吗?或者,如果我可以得到具有这种不匹配的变量的名称

谢谢

编辑1:

我正在尝试这样做:

inputTarget = lasagne.layers.InputLayer(shape=(1,2,32, 32, 32), input_var=T.concatenate([tX, tY], axis=1))
network = lasagne.layers.SliceLayer(inputTarget, indices=slice(0, 1),axis=1) 
tX_new = lasagne.layers.get_output(network)
network = lasagne.layers.batch_norm(network)
tY_predicted = lasagne.layers.get_output(network)
target= lasagne.layers.SliceLayer(inputTarget, indices=slice(1, None), axis=1)  

tY_new = lasagne.layers.get_output(target)
loss = lasagne.objectives.squared_error(tY_predicted, tY_new).mean()
updates = lasagne.updates.adam(loss, params, learning_rate=lr)
train_fn = theano.function([tX, tY], [tY_predicted, loss, tY_new, tX_new], updates=updates)
日志:

Traceback (most recent call last):
  train_fn = theano.function([tX, tY], [tY_predicted, loss, tY_new, tX_new], updates=updates)
  File "/lib/python2.7/site-packages/theano/compile/function.py", line 326, in function
    output_keys=output_keys)
  File "/lib/python2.7/site-packages/theano/compile/pfunc.py", line 449, in pfunc
    no_default_updates=no_default_updates)
  File "/lib/python2.7/site-packages/theano/compile/pfunc.py", line 219, in rebuild_collect_shared
    cloned_v = clone_v_get_shared_updates(v, copy_inputs_over)
  File "/lib/python2.7/site-packages/theano/compile/pfunc.py", line 93, in clone_v_get_shared_updates
    clone_v_get_shared_updates(i, copy_inputs_over)
  File "/lib/python2.7/site-packages/theano/compile/pfunc.py", line 93, in clone_v_get_shared_updates
    clone_v_get_shared_updates(i, copy_inputs_over)
  File "/lib/python2.7/site-packages/theano/compile/pfunc.py", line 219, in rebuild_collect_shared
    cloned_v = clone_v_get_shared_updates(v, copy_inputs_over)
  File "/lib/python2.7/site-packages/theano/compile/pfunc.py", line 93, in clone_v_get_shared_updates
    clone_v_get_shared_updates(i, copy_inputs_over)
  File "/lib/python2.7/site-packages/theano/compile/pfunc.py", line 93, in clone_v_get_shared_updates
    clone_v_get_shared_updates(i, copy_inputs_over)
  File "/lib/python2.7/site-packages/theano/compile/pfunc.py", line 93, in clone_v_get_shared_updates
    clone_v_get_shared_updates(i, copy_inputs_over)
  File "/lib/python2.7/site-packages/theano/compile/pfunc.py", line 93, in clone_v_get_shared_updates
    clone_v_get_shared_updates(i, copy_inputs_over)
  File "/lib/python2.7/site-packages/theano/compile/pfunc.py", line 93, in clone_v_get_shared_updates
    clone_v_get_shared_updates(i, copy_inputs_over)
  File "/lib/python2.7/site-packages/theano/compile/pfunc.py", line 93, in clone_v_get_shared_updates
    clone_v_get_shared_updates(i, copy_inputs_over)
  File "/lib/python2.7/site-packages/theano/compile/pfunc.py", line 93, in clone_v_get_shared_updates
    clone_v_get_shared_updates(i, copy_inputs_over)
  File "/lib/python2.7/site-packages/theano/compile/pfunc.py", line 93, in clone_v_get_shared_updates
    clone_v_get_shared_updates(i, copy_inputs_over)
  File "/lib/python2.7/site-packages/theano/compile/pfunc.py", line 114, in clone_v_get_shared_updates
    allow_convert=False)
  File "/lib/python2.7/site-packages/theano/sandbox/cuda/type.py", line 185, in filter_variable
    str(self.broadcastable)))
TypeError: Incompatible broadcastable dimensions. Expected (False,), got (True,).

在检查了变量之后,我知道代码因均值而中断。我不知道为什么。

Theano不像numpy那样(自动)进行广播。必须手动设置需要可广播的维度。有一个关于广播的精彩教程。如果您的问题在阅读本教程后仍然存在,请与我分享您的代码和完整的回溯,以进一步帮助您

Theano不像numpy那样(自动)进行广播。必须手动设置需要可广播的维度。有一个关于广播的精彩教程。如果您的问题在阅读本教程后仍然存在,请与我分享您的代码和完整的回溯,以进一步帮助您

谢谢你的回复。我已经看过这一页了。检查后,我可以看到代码中断的意思,但我不明白为什么。我非常感谢您的帮助。您所说的“平均值”中断是什么意思?我的意思是,当检查“平均值”时会出现错误。很抱歉,如果不查看您的代码,我将无法进一步帮助您谢谢您的回复。我已经看过这一页了。检查后,我可以看到代码中断的意思,但我不明白为什么。我非常感谢您的帮助。您所说的“平均值”的中断是什么意思?我的意思是,当检查“平均值”时会出现错误。很抱歉,如果不查看您的代码,我将无法进一步帮助您