2017-03-06 11 views
2

TensorflowにはAUCを計算する関数があります。tf.metrics.auc()。ここでは、AUCを計算しようとしている私のコードの私のセクションです:Tensorflowのtf.metrics.aucが動作しないように見える

init = tf.global_variables_initializer() 

with tf.Session() as sess: 
    sess.run(init) 

    for epoch in range(training_epochs): 
     sess.run(optimizer, feed_dict = {x : x_train, y : y_train, p_keep_input: 0.8, p_keep_hidden: 0.5}) 
     avg_cost = sess.run(cost, feed_dict = {x : x_train, y : y_train, p_keep_input: 0.8, p_keep_hidden: 0.5}) 

     if epoch % display_step == 0: 
      training_acc = accuracy.eval({x : x_train, y : y_train, p_keep_input: 1.0, p_keep_hidden: 1.0}) 
      print("Epoch:", '%03d' % (epoch), "Training Accuracy:", '%.5f' % (training_acc), "cost=", "{:.5f}".format(avg_cost)) 

    print("Optimization Done!") 


    roc_score = tf.metrics.auc(y, pred) 
    roc_score = tf.convert_to_tensor(roc_score) 
    print(roc_score.eval({x : x_test, y : y_test, p_keep_input: 1.0, p_keep_hidden: 1.0})) 

私が取得エラーの任意のセクションには、以下の通りです。エラー全体はかなり長いです。

FailedPreconditionError (see above for traceback): Attempting to use uninitialized value auc_4/false_positives 
    [[Node: auc_4/false_positives/read = Identity[T=DT_FLOAT, _class=["loc:@auc_4/false_positives"], _device="/job:localhost/replica:0/task:0/cpu:0"](auc_4/false_positives)]] 

この問題を解決する方法については、お答えします。おかげ

+1

エラーなしで実行するコードに許可の下に変更: 'roc_score = tf.metrics.auc( (sess.run(roc_score、feed_dict = {x:x_test、y:y_test、p_keep_input:1.0、p_keep_hidden:1.0})) '。現在の課題は、AUCスコア0.0を取得することです。私はこの時点で何が間違っているのか理解できません。 –

答えて

2

は今、遅すぎることができますが、解決策を見つけていない場合は、この変更を試みる場合があります:

sess.run(tf.global_variables_initializer()) 
sess.run(tf.local_variables_initializer()) 
_,roc_score = tf.metrics.auc(y, pred) 
print(sess.run(roc_score, feed_dict={x : x_test, y : y_test, p_keep_input: 1.0, p_keep_hidden: 1.0})) 
関連する問題