2017-02-25 3 views
3

私はTensorflowで特定の製品品質が良いか悪いかを予測するサンプルを作成しました。コードの私の最後のセクションには、次のようになります。Tensorflowで予測を印刷するには

# Merge summaries for TensorBoard 
merged_summaries = tf.summary.merge_all() 

with tf.Session() as sess: 

    log_directory = create_log_directory() 
    summary_writer = tf.summary.FileWriter(log_directory, sess.graph) 

    tf.global_variables_initializer().run() 

    for i in range(epochs): 
     average_cost = 0 
     number_of_batches = int(len(X_train)/batch_size) 
     for start, end in zip(range(0, len(X_train), batch_size), range(batch_size, len(X_train), batch_size)): 
      feed = {X: X_train[start:end], y: y_train[start:end]} 
      sess.run(training_step, feed_dict=feed) 
      # Compute average loss 
      average_cost += sess.run(cost, feed_dict=feed)/number_of_batches 
     if i % epochs_to_print == 0: 
      feed = {X: X_test, y: y_test} 
      result = sess.run([merged_summaries, accuracy], feed_dict=feed) 
      summary = result[0] 
      current_accuracy = result[1] 
      summary_writer.add_summary(summary, i) 
      print("Epoch: {:4d}, average cost = {:.3f}, accuracy = {:.3f}".format(i+1, average_cost, current_accuracy)) 

    print("Final accuracy = {:.3f}".format(sess.run(accuracy, feed_dict={X: X_test, y: y_test}))) 

それは私が52.7パーセントの精度であることを前提と0.527の精度で実施トップ10のエポックの素敵なセットを出します。

Saving summaries to tmp/logs/run_32/ 
Epoch: 1, average cost = 3.300, accuracy = 0.174 
Epoch: 101, average cost = 0.685, accuracy = 0.528 
Epoch: 201, average cost = 0.682, accuracy = 0.527 
Epoch: 301, average cost = 0.680, accuracy = 0.527 
Epoch: 401, average cost = 0.680, accuracy = 0.527 
Epoch: 501, average cost = 0.679, accuracy = 0.527 
Epoch: 601, average cost = 0.679, accuracy = 0.527 
Epoch: 701, average cost = 0.679, accuracy = 0.527 
Epoch: 801, average cost = 0.679, accuracy = 0.527 
Epoch: 901, average cost = 0.679, accuracy = 0.527 
Final accuracy = 0.527 

問題は今、私は予測を得るために(おそらく)からのデータのわずか1行にTensorflowにnumpyのアレイをフィードバックすることです。これはどうすればいいですか?

input =[1.939501945438227,-1.8459679631200792,1.9134581818982566,-0.6741964131111666,-0.5720868389043996,0.3926397708073837,-2.0777995164924112,0.03405362776450469,0.33621509508483066] 
output = <<some function call here>> 
print(output) 

答えて

0

これはあなたのグラフによって異なります。あなたはaccuracyノードを確認した場合、それはかもしれcorrect_labelは、いくつかのTFノードになりy_train、 とmy_predictionに関連した何か、おそらくあなたの実装に依存tf.round(...)ように見えるだろう

tf.reduce_mean(tf.equal(my_prediction, correct_label)) 

のように見えます。

あなたがここにしなければならないことはアウトmy_predictionは、その後、あなたが使用して予測を得ることができることを見つけることです

output = sess.run([my_prediction], feed_dict={X: [input]}) 
関連する問題