ConvNetを作成します。同じサイズの出力を入力の1つとして使用します。そこで、TFLearnライブラリを使って実装しました。私はこれらの目的を満たす簡単な例を望んでいたので、入力と同じ出力サイズに対してゼロパディング付きの畳み込みレイヤーを1つだけ設定しました。以下はコードです:TensorFlow/TFLearn:ValueError:Tensor u'TargetsData/Y:0のシェイプ(256,400,400)の形状を '(?、64)'に変換できません。
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に精通していないんだけど、:
オートエンコーダのは、次のようにあなたは自分自身のデータでそれを適応し、INPUT_DATA形状を変更することができ、MNISTのための畳み込みオートエンコーダであります'testX = du.featurewise_zero_center(testX、mean)'の後に 'testX'がタプルではないでしょうか? – erip
@erip申し訳ありませんが、私はヘッダーの部分を省略しました。この行は、 'tflearn.data_utils as duから'得られたものです。ここで、 'tflearn.data_utils'は、データ前処理に関するヘッダファイルです。 – David
確かに、Xを返し、上記の意味です。以下はtestXだけを返します。 – erip