【发布时间】:2016-09-11 08:12:18
【问题描述】:
我想制作一个输出大小与输入大小相同的 ConvNet。因此,我使用 TFLearn 库实现了它。因为我只是想要一个满足这些目的的简单示例,所以我只设置了一个带有零填充的卷积层,输出大小与输入相同。以下为代码:
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 抱歉,我省略了标题部分。该行来自
import tflearn.data_utils as du。这里tflearn.data_utils是数据预处理相关的头文件。 -
当然,但它返回 X,并且意思是上面。下面只返回 testX。
-
@erip 我认为没关系。这是因为函数定义如下:
def featurewise_zero_center(X, mean=None): if mean is None: mean = np.mean(X, axis=0) return X - mean, mean else: return X - mean。X和testX仍然是数组而不是元组。
标签: python tensorflow deep-learning