我想製作一個ConvNet具有與輸入之一相同的輸出大小。所以,我使用TFLearn庫實現了它。因爲我只是想要一個滿足這些目的的簡單示例,所以我只設置一個具有零填充的卷積層,以便與輸入具有相同的輸出大小。以下是代碼:TensorFlow/TFLearn:ValueError:無法提供形狀爲'(?,64)'的張量u'TargetsData/Y:0'形狀(256,400,400)的值。
X = X.reshape([-1, 400, 400, 1])
Y = Y.reshape([-1, 400, 400, 1])
testX = testX.reshape([-1, 400, 400, 1])
testY = testY.reshape([-1, 400, 400, 1])
X, mean = du.featurewise_zero_center(X)
testX = du.featurewise_zero_center(testX, mean)
# Building a Network
net = tflearn.input_data(shape=[None, 400, 400, 1])
net = tflearn.conv_2d(net, 64, 3, padding='same', activation='relu', bias=False)
sgd = tflearn.SGD(learning_rate=0.1, lr_decay=0.96, decay_step=300)
net = tflearn.regression(net, optimizer='sgd',
loss='categorical_crossentropy',
learning_rate=0.1)
# Training
model = tflearn.DNN(net, checkpoint_path='model_network',
max_checkpoints=10, tensorboard_verbose=3)
model.fit(X, Y, n_epoch=100, validation_set=(testX, testY),
show_metric=True, batch_size=256, run_id='network_test')
然而,這些代碼產生
ValueError: Cannot feed value of shape (256, 400, 400) for Tensor u'TargetsData/Y:0', which has shape '(?, 64)'
我已經搜查,並檢查一些文件的錯誤,但我似乎無法得到這個工作。
我不熟悉的TF API,但'testX'不會'testX = du.featurewise_zero_center(testX,mean)'後面的元組嗎? – erip
@erip對不起,我已經省略了標題部分。該行來自'import tflearn.data_utils as du'。這裏,'tflearn.data_utils'是一個與數據預處理相關的頭文件。 – David
當然,但它返回X,並且意味着高於。在它下面只返回testX。 – erip