传递给函数时 Theano 数据集维度错误

Theano dataset dimensions error when passing into function

使用带有 2 个隐藏层和两个 dropout 的 mlp 示例网络 所以我的 load_data() 函数有 400 行,每行 20 个特征,而我的标签数据集只有 400 行,每个变量将被分成 X_train X_test y_train_y_test 和一些出去验证

我的千层面输入层是:

l_in = lasagne.layers.InputLayer(shape=(None, 20), input_var=input_var)

我的训练函数是train_fn = theano.function([input_var, target_var], loss, updates=updates, allow_input_downcast=True)

在这里我的程序跳过:train_err += train_fn(inputs, targets)

'Wrong number of dimensions: expected 1, got 2 with shape (20, 1).')

20, 1 我明白了,因为我在一侧传递了 20 个值,在标签一侧传递了 1 个值,但我认为 theano 自动展平了每个数组?

我该怎么做才能解决这个问题? 任何帮助将不胜感激!

您传递给 train_fn() 的输入应该是形状为 (n, 20)ndarray,其中 n 是您的小批量中的示例数。目标应该是形状为 (n)ndarray(请注意,形状 (1, n)(n, 1) 无效)。尝试仔细检查您实际传递给函数的数组是否与这些形状匹配。