2017-11-20 17 views
2

私はubuntu16.04でtensorflow1.4cpuバージョンを使用しています。 以前はmnistデータセットでconvnetモデルを訓練しました。KeyError: "名前の予測精度/精度/平均:0は存在しないTensorを指します...."

これでモデルに再度アクセスし、mnist.test.imagesの精度を予測したいと思います。私は成功したモデルのロード:以前に訓練されたグラフでは

import tensorflow as tf 
from tensorflow.examples.tutorials.mnist import input_data 
mnist = input_data.read_data_sets('MNIST_data', one_hot=True) 
images = mnist.test.images[0:1000] 
labels = mnist.test.labels[0:1000] 
sess=tf.Session() 

saver = tf.train.import_meta_graph('tradConv_mnistModel/tradConvMnist- 
10000.meta') 

saver.restore(sess, 
tf.train.latest_checkpoint('./tradConv_mnistModel')) 
graph = tf.get_default_graph() 

を私はある精度の名前印刷:

with tf.name_scope('predictions'): 
    correct_prediction = tf.equal(
         tf.argmax(y_conv, 1), tf.argmax(y_, 1)) 
    with tf.name_scope('accuracy'): 
    accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) 
    print(accuracy.name) 
    "predictions/accuracy/Mean:0" 

をしかし、私は新たにロードされたグラフで精度を評価しようとすると、私は次の取得しますエラー:

tensor_name = "predictions/accuracy/Mean:0" 
accuracy = graph.get_tensor_by_name(tensor_name) 

print("test accuracy %g"%accuracy.eval(feed_dict={ 
     x: images, y_: labels, keep_prob: 1.0})) 

KeyError: "The name 'predictions/accuracy/Mean:0' refers to a Tensor 
which does not exist. The operation, 'predictions/accuracy/Mean', does 
not exist in the graph." 

また、保存されたグラフにすべてのtensors_nameが表示され、実際にはtensor_nameが終了しません。

私の質問は、再ロード後の訓練されたモデルのテストデータの精度をどのように評価することができますか?

+0

推測:精度操作が追加される前に節約/メタ​​グラフが保存されていますか? MetaGraphの作成時にその名前のグラフにopが存在することを確認できますか? –

+0

こんにちは私はすでに問題を修正しました。精度は、セーバーの前に定義され、グラフに保存されますが、メタファイルには存在しません。私はグラフとメトグラフの違いを知らない。また、名前がメタデータに作成されたかどうかを確認する方法もわかりません。いくつかの試みの後、私はこのメソッドtf.train.import_meta_graph( 'tradConv_mnistModel/tradConvMnist- 10000.meta')がまったく動作しないと考えました。しかし、tf.train.Saver()。restoreが動作します!それを使用して問題を修正しました。 –

答えて

-1

メソッドtf.train.Saver()。restoreが機能します。しかし、他の方法 tf.train.import_meta_graph( 'tradConv_mnistModel/tradConvMnis t-10000.meta')は動作しません!

+0

私は同じ問題を抱えています。 "saver = tf.train.import_meta_graph( 'tradConv_mnistModel/tradConvMnist- 10000.meta')という文を完全に削除し、" tf.train.Saver()。restore "に置き換えましたか?ファイルパスはどこで指定しましたか? .meta拡張子をファイル名に含めましたか? Tx – CoupDeMistral

関連する問題