首页 文章

Tensorflow尝试使用未初始化的值AUC / AUC / auc / false_positives

提问于
浏览
5

我'm training a CNN using for image classification. Due to the limited size of my data set I'米使用转学习 . 基本上,我正在使用谷歌在其重新培训示例(https://www.tensorflow.org/tutorials/image_retraining)中证明的预训练网络 .

该模型运行良好,并提供非常好的准确性 . 但我的数据集是高度不 balancer 的,这意味着准确性不是判断模型性能的最佳指标 .

通过研究不同的解决方案,一些人建议改变采样方法或使用的性能指标 . 我选择和以后一起去 .

Tensorflow提供了很好的指标,包括AUC,精度,召回等 .

现在,这是回归模型的代码:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/image_retraining/retrain.py

我将以下内容添加到 add_evaluation_step(result_tensor, ground_truth_tensor) 函数中:

with tf.name_scope('AUC'):
    with tf.name_scope('prediction'):
        prediction = tf.argmax(result_tensor, 1)
    with tf.name_scope('AUC'):
        auc_value = tf.metrics.auc(tf.argmax(ground_truth_tensor, 1), prediction, curve='ROC')


  tf.summary.scalar('accuracy', evaluation_step)
  tf.summary.scalar('AUC', auc_value)

但是我收到了这个错误:

Traceback(最近一次调用最后一次):文件“/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/examples/image_retraining/retrain.py”,第1135行,in tf .app.run(main = main,argv = [sys.argv [0]] unparsed)文件“/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/ platform / app.py“,第44行,在run _sys.exit中(main(sys.argv [:1] flags_passthrough))文件”/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles /org_tensorflow/tensorflow/examples/image_retraining/retrain.py“,第911行,主要是ground_truth_input:train_ground_truth})文件”/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow /python/client/session.py“,第767行,运行run_metadata_ptr)文件”/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/pytho n / client / session.py“,第965行,在_run feed_dict_string,options,run_metadata中)文件”/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/client /session.py“,第1015行,在_do_run target_list,options,run_metadata中)文件”/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/client/session . py“,第1035行,do_call引发类型(e)(node_def,op,message)tensorflow.python.framework.errors_impl.FailedPreconditionError:尝试使用未初始化的值AUC / AUC / auc / false_positives [[Node:AUC / AUC / auc / false_positives / read = IdentityT = DT_FLOAT, class = [“loc:@ AUC / AUC / auc / false_positives”], device =“/ job:localhost / replica:0 / task:0 / cpu:0”]]通过op u'AUC / AUC / auc / false_positives / read',定义于:File“/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/examples/image_retraining/retrain的.py “,第1135行,在tf.app.run中(main = main,argv = [sys.argv [0]]未分析)文件”/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles /org_tensorflow/tensorflow/python/platform/app.py“,第44行,在运行_sys.exit(main(_sys.argv [:1] flags_passthrough))文件”/ home / user_2 / tensorflow / bazel-bin / tensorflow / examples / image_retraining / retrain.runfiles / org_tensorflow / tensorflow / examples / image_retraining / retrain.py“,第874行,在主final_tensor,ground_truth_input中)文件”/ home / user_2 / tensorflow / bazel-bin / tensorflow / examples / image_retraining / retrain .runfiles / org_tensorflow / tensorflow / examples / image_retraining / retrain.py“,第806行,在add_evaluation_step auc_value,update_op = tf.metrics.auc(tf.argmax(ground_truth_tensor,1),prediction,curve ='ROC')文件” /home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/ops/metrics_impl.py“,第555行,在auc标签,预测,阈值,权重中)文件”/浩me / user_2 / tensorflow / bazel-bin / tensorflow / examples / image_retraining / retrain.runfiles / org_tensorflow / tensorflow / python / ops / metrics_impl.py“,第473行,在_confusion_matrix_at_thresholds中false_p = _create_local('false_positives',shape = [num_thresholds ])文件“/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/ops/metrics_impl.py”,第177行,在_create_local中validate_shape = validate_shape)文件“/ home / user_2 / tensorflow / bazel-bin / tensorflow / examples / image_retraining / retrain.runfiles / org_tensorflow / tensorflow / python / ops / variables.py“,第226行,在init中expect_shape = expected_shape)文件“/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/ops/variables.py”,第344行,在_init_from_args self._snapshot = array_ops.identity(self . _variable,name =“read”)文件“/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/ops/gen_array_ops.py”,第1490行,标识结果= _op_def_lib.apply_op(“Identity”,input = input,name = name)文件“/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/framework/op_def_library . py“,第768行,在apply_op中op_def = op_def)文件”/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/framework/ops.py“,第2402行,在create_op original_op = self._default_original_op,op_def = op_def)文件“/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow /tensorflow/python/framework/ops.py“,第1264行,在init self.traceback = extract_stack()FailedPreconditionError(参见上面的回溯):尝试使用未初始化的值AUC / AUC / auc / false_positives [[Node:AUC / AUC / auc / false_positives / read = IdentityT = DT_FLOAT, class = [“loc:@ AUC / AUC / auc / false_positives”], device =“/ job:localhost / replica:0 / task:0 / cpu:0”] ]

但我不明白为什么这是因为在主要方面我有这个:

init = tf.global_variables_initializer()
sess.run(init)

1 回答

  • 13

    试试这个:

    init = tf.group(tf.global_variables_initializer(), tf.local_variables_initializer())
    sess.run(init)
    

相关问题