繁体   English   中英

tflearn 3d张量-ValueError:无法输入形状值(50,15,15)

[英]tflearn 3d tensor - ValueError: Cannot feed value of shape (50, 15, 15)

第一次遇到这样的问题。 测试tflearn的神经网络会给出错误。 尝试测试此代码时,Python会生成错误。 与conv_2d没有这种问题。

我的代码: import numpy as np import random import tflearn from tflearn.layers.core import input_data, dropout, fully_connected from tflearn.layers.conv import conv_3d, max_pool_3d from tflearn.layers.estimator import regression

 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) 

尝试测试代码时,这会产生错误tflearn。

ValueError: Cannot feed value of shape (50, 15, 15) for Tensor 'InputData/X:0', which has shape '(?, 15, 15, 15, 1)'

可能是什么问题呢 ? 请有人帮忙。

您的trainXtestX形状为( trainX )。 但是,在

network = input_data(shape=[None, 15, 15,15, 1])

您将输入的形状指定为(无,15、15、15、15、1)。 这些形状不匹配。 None可以代表任何数字,但形状应匹配。

例如,您可以将trainXtestX的形状设置为(50,15,15,15,1)。

让我们找出什么是conv_3d网络?

tflearn文档中提供了信息。

输入

5-D Tensor [batch, in_depth, in_height, in_width, in_channels]

产量

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

trainXtestX数据的大小应相同。 由于您使用的是testX数据validation_set

您的trainXtestX数据看起来像2D数据集。 50x(15,15)10x(15,15)如果要使用conv_3d,则必须使traintest数据的大小相同。 50x(15,15)50x(15,15) )。

而且我还看到您的目标数据trainY与您的数据trainX大小trainX

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM