Python tflearn 3d tensor-值错误:无法输入形状(50、15、15)的值

Python tflearn 3d tensor-值错误:无法输入形状(50、15、15)的值,python,networking,machine-learning,tensorflow,tflearn,Python,Networking,Machine Learning,Tensorflow,Tflearn,第一次遇到这样的问题。测试tflearn的神经网络是否存在错误。尝试测试此代码时,Python会生成一个错误。有了conv_2d,就没有这样的问题了 我的代码: 将numpy作为np导入 随机输入 导入tflearn 从tflearn.layers.core导入输入数据,退出,完全连接 从tflearn.layers.conv导入conv_3d、max_pool_3d 从tflearn.layers.estimator导入回归 trainX = [[[random.randint(0,3) f

第一次遇到这样的问题。测试tflearn的神经网络是否存在错误。尝试测试此代码时,Python会生成一个错误。有了conv_2d,就没有这样的问题了

我的代码:

将numpy作为np导入
随机输入
导入tflearn
从tflearn.layers.core导入输入数据,退出,完全连接
从tflearn.layers.conv导入conv_3d、max_pool_3d
从tflearn.layers.estimator导入回归

trainX = [[[random.randint(0,3) for col in range(15)] for row in range(15)] for x in range(50)]
testX = [[[random.randint(0,3) for col in range(15)] for row in range(15)] for x in range(10)]

trainY = [[0,1] for x in range(100)]
testY = [[0,1] for x in range(10)]


idnn = 'test_cnn'

network = input_data(shape=[None, 15, 15,15, 1])
network = conv_3d(network, 10, 3, activation='relu')

network = max_pool_3d(network, 2)
network = conv_3d(network, 32, 3, activation='relu')
network = conv_3d(network, 32, 3, activation='relu')

network = max_pool_3d(network, 2)
network = fully_connected(network, 512, activation='relu')
network = dropout(network, 0.5)
network = fully_connected(network, 2, activation='softmax')
network = regression(network, optimizer='adam',
                     loss='categorical_crossentropy',
                     learning_rate=0.001)



# Train using classifier
model = tflearn.DNN(network, tensorboard_verbose=0)
model.fit(trainX, trainY, n_epoch=10, shuffle=True, validation_set=(testX, testY),
          show_metric=True, batch_size=5, run_id= idnn)    
pred = model.predict(testX)

这会在尝试测试代码时出现错误

ValueError: Cannot feed value of shape (50, 15, 15) for Tensor 'InputData/X:0', which has shape '(?, 15, 15, 15, 1)' ValueError:无法为具有形状“(?,15,15,1)”的张量“InputData/X:0”馈送形状(50,15,15)的值
有什么问题吗?请找人帮忙。

您的
trainX
testX
有形状(50,15,15)。然而,在

network = input_data(shape=[None, 15, 15,15, 1])
您将输入的形状指定为(无、15、15、15、1)。这些形状不匹配。
None
可以表示任何数字,但形状应该匹配


例如,您可以将
trainX
testX
制成形状(50,15,15,1)。

让我们看看,什么是conv_3d网络

有一个来自文档的信息

输入

5-D张量[批次、深度、高度、宽度、通道]

输出

trainX
testX
数据的大小应相同。因为您正在使用
validation\u集合中的
testX
数据


您的
trainX
testX
数据看起来像二维数据集<代码>50x(15,15)
10x(15,15)
如果您想使用conv_3d,您必须使
训练
测试
数据的大小相同。(
50x(15,15)
50x(15,15)

我还看到您的目标数据
trainY
与您的train数据
trainX
大小不同

5-D Tensor [filter_depth, filter_height, filter_width, in_channels, out_channels].