2017-09-15 11 views
2

テンソルフローconvnetへの入力は、ランク4のテンソル(32,32,3,7,557)(73257はimgの数に由来) x入力のプレースホルダ変数は2-d(None、3072)です。 3072はimgの高さx imgの幅xチャンネルに由来します。私の質問は、どうやってイメージの形や形を変えて、プレースホルダと互換性があるのか​​ということです。numpy配列をTensorflow CNNへの入力として使用する方法

P.S.これらの画像はSVHNからあなたは3つのバンド(例えばRGB)を保持する32画素分73257のイメージ32を有していると仮定すると、32×32のデータセット

images = np.array(features, dtype=np.float32) 
... 
x = tf.placeholder(tf.float32, shape=[None, 3072]) 
... 
for _ in range(1000): 
    batch = next_batch(50, images, labels) 
    train_step.run(feed_dict={x: batch[0], y_: batch[1]}) 
... 
with tf.Session() as sess: 
    sess.run(tf.global_variables_initializer()) 
    for i in range(20000): 
    batch = next_batch(50, images, labels) 
    if i % 100 == 0: 
     train_accuracy = accuracy.eval(feed_dict={ 
      x: batch[0], y_: batch[1], keep_prob: 1.0}) 
     print('step %d, training accuracy %g' % (i, train_accuracy)) 
    train_step.run(feed_dict={x: images, y_: labels, keep_prob: 0.5}) 

答えて

2

をトリミングしています。

input = tf.transpose(input, [3, 0, 1, 2]) 

最後の寸法を最初に取り入れることができます。テンソルは次のようになります(73257,32,32,3)。

次に寸法を小さくする

input = tf.reshape(input, [-1, 3072]) 

を行います。テンソルは次のようになります(73257,3072)。

+0

ありがとうございました!あなたの助けをありがとう – Meka

+0

私の答えを受け入れてくださいしますか?ありがとう。 – pgross

+0

はい、私の悪い!再度、感謝します – Meka

関連する問題