简体   繁体   English

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

[英]Tensorflow Attempting to use uninitialized value AUC/AUC/auc/false_positives

I'm training a CNN using for image classification. 我正在训练使用CNN进行图像分类。 Due to the limited size of my data set I'm using transfer learning. 由于我的数据集的大小有限,我正在使用转移学习。 Basically, I'm using the pre-trained network Google is proving in its retrain example ( https://www.tensorflow.org/tutorials/image_retraining ). 基本上,我正在使用谷歌在其重新培训示例( https://www.tensorflow.org/tutorials/image_retraining )中证明的预训练网络。

The model works great and gives a very good accuracy. 该模型运行良好,并提供非常好的准确性。 But my dataset is highly imbalance which mean accuracy is not the best metric to judge the performance of the model. 但我的数据集是高度不平衡的,这意味着准确性不是判断模型性能的最佳指标。

By looking into different solutions, some suggested changing the sampling method or the performance metric used. 通过研究不同的解决方案,一些人建议改变采样方法或使用的性能指标。 I'm choosing to go with the later. 我选择和以后一起去。

Tensorflow provides a good verity of metrics including, AUC, precision, recall, etc. Tensorflow提供了很好的指标,包括AUC,精度,召回等。

Now, here is the code of the retraing model: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/image_retraining/retrain.py 现在,这里是回溯模型的代码: https//github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/image_retraining/retrain.py

I'm adding the following to add_evaluation_step(result_tensor, ground_truth_tensor) function: 我将以下内容添加到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)

But I'm getting this error: 但是我收到了这个错误:

Traceback (most recent call last): File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/examples/image_retraining/retrain.py", line 1135, in tf.app.run(main=main, argv=[sys.argv[0]] + unparsed) File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/platform/app.py", line 44, in run _sys.exit(main(_sys.argv[:1] + flags_passthrough)) File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/examples/image_retraining/retrain.py", line 911, in main ground_truth_input: train_ground_truth}) File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/client/session.py", line 767, in run run_metadata_ptr) File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/ 回溯(最近一次调用最后一次):文件“/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]] + unparsed)文件“/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“,第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/python/ client/session.py", line 965, in _run feed_dict_string, options, run_metadata) File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/client/session.py", line 1015, in _do_run target_list, options, run_metadata) File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/client/session.py", line 1035, in _do_call raise type(e)(node_def, op, message) tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value AUC/AUC/auc/false_positives 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"]] [[节点: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" ]]

Caused by op u'AUC/AUC/auc/false_positives/read', defined at: File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/examples/image_retraining/retrain.py", line 1135, in tf.app.run(main=main, argv=[sys.argv[0]] + unparsed) File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/platform/app.py", line 44, in run _sys.exit(main(_sys.argv[:1] + flags_passthrough)) File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/examples/image_retraining/retrain.py", line 874, in main final_tensor, ground_truth_input) File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/examples/image_retraining/retrain.py", line 806, in add_evaluation_step auc_value, update_op = tf.metrics.auc(tf.argmax(ground_truth_tensor, 1), prediction, curve='ROC') 由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]] + unparsed)文件”/ 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 ='鹏') File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/ops/metrics_impl.py", line 555, in auc labels, predictions, thresholds, weights) File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/ops/metrics_impl.py", line 473, in _confusion_matrix_at_thresholds false_p = _create_local('false_positives', shape=[num_thresholds]) File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/ops/metrics_impl.py", line 177, in _create_local validate_shape=validate_shape) File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/ops/variables.py", line 226, in init expected_shape=expected_shape) File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/o 文件“/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/ops/metrics_impl.py”,第555行,在auc标签,预测,阈值,权重)文件“/home/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行,在initexpect_shape = expected_shape)文件“/ home / user_2 /tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/o ps/variables.py", line 344, in _init_from_args self._snapshot = array_ops.identity(self._variable, name="read") File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/ops/gen_array_ops.py", line 1490, in identity result = _op_def_lib.apply_op("Identity", input=input, name=name) File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/framework/op_def_library.py", line 768, in apply_op op_def=op_def) File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/framework/ops.py", line 2402, in create_op original_op=self._default_original_op, op_def=op_def) File "/home/user_2/tensorflow/bazel-bin/tensorflow/examples/image_retraining/retrain.runfiles/org_tensorflow/tensorflow/python/framework/ops.py", line 1264, in init self._traceback = _extract_stack() ps / 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行,在identity result = _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 (see above for traceback): Attempting to use uninitialized value 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"]] 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“]]

But I don't understand why is this because in the main I have this: 但我不明白为什么这是因为我主要有这个:

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

try this: 试试这个:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM