2017-01-08 12 views
3

img1 = img.imread('./images_32x32/test_1.png')トレーニングを受けたモデルでTensorflowで簡単な予測を行う方法は?私はちょうどこのようにモデルを訓練してきた

今、私がやりたいだけの事はimg1に基づいて予測を行うことです。

with tf.Session() as sess: 
    sess.run(tf.global_variables_initializer()) 
    num_examples = len(X_train) 

    print("W00T IT IS TRAINING ") 
    print() 
    for i in range(EPOCHS): 
     X_train, y_train = shuffle(X_train, y_train) 
     for offset in range(0, num_examples, BATCH_SIZE): 
      end = offset + BATCH_SIZE 
      batch_x, batch_y = X_train[offset:end], y_train[offset:end] 
      sess.run(training_operation, feed_dict={x: batch_x, y: batch_y}) 

     validation_accuracy = evaluate(X_validation, y_validation) 
     print("EPOCH {} ...".format(i+1)) 
     print("Validation Accuracy = {:.3f}".format(validation_accuracy)) 
     print() 

saver.save(sess, 'LeNet') 
print("Model saved") 

を今、私はこのようなイメージをロードしています。

どうすればよいですか?

UPDATE

私のソフトマックス機能を追加しました:

logits = LeNet(x) 
cross_entropy = tf.nn.softmax_cross_entropy_with_logits(logits, one_hot_y) 
loss_operation = tf.reduce_mean(cross_entropy) 
optimizer = tf.train.AdamOptimizer(learning_rate = rate) 
training_operation = optimizer.minimize(loss_operation) 

correct_prediction = tf.equal(tf.argmax(logits, 1), tf.argmax(one_hot_y, 1)) 
accuracy_operation = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) 
saver = tf.train.Saver() 

答えて

4

あなたのグラフを定義したかに依存し、あなたが「X」プレースホルダの形状を定義した方法によって異なります。
「X」は、次のように定義されていると仮定すると:

x = tf.placeholder(shape=[None, IMG_WIDTH, IMG_HEIGHT, NUM_COLOR_CHANNELS], dtype=tf.float32) 

そして「predは」仮定はそれがあなたの予測を与えることテンソルである、あなただけのこのテンソルを評価する必要があります。

predictions = sess.run(pred, feed_dict={x: img1}) 
+0

おかげで、私は私は(まだ)続かないか分からない。だから私は 'x = tf.placeholder(tf.float32、(None、32、32、3))'と 'y = tf.placeholder(tf.int32、(None))'を使っています。この場合、「プレディ」が何であるかわからない。 –

+2

Predはおそらくネットワークの最後の層です。softmax関数を適用したテンソルである必要があります。 – Quazar

+0

Aha、質問を更新しました。それは 'correct_prediction'でしょうか?この最後の部分を完全に把握しようとしています。私はソフトマックスに関する何かを見逃しています... –

関連する問題