传递给函数时 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)
无效)。尝试仔细检查您实际传递给函数的数组是否与这些形状匹配。
使用带有 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)
无效)。尝试仔细检查您实际传递给函数的数组是否与这些形状匹配。