Python tensorflow控制依赖项
我正在尝试运行我在网上找到的一个非常简单的代码示例: 带有graph.as_default()的Python tensorflow控制依赖项,python,tensorflow,metrics,Python,Tensorflow,Metrics,我正在尝试运行我在网上找到的一个非常简单的代码示例: 带有graph.as_default()的: 使用sess.as_default(): 标签=tf.常数([[1.0,0.0],[0.0,1.0],[0.0,1.0]]) 预测=tf.常数([[1.0,0.0],[0.0,1.0],[0.0,1.0]]) t=0.5 y_pred_=tf.to_int32(预测>t) 分数,up\u opt=tf.metrics.mean\u iou(标签,y\u pred\u3) 使用tf.control_
:
使用sess.as_default():
标签=tf.常数([[1.0,0.0],[0.0,1.0],[0.0,1.0]])
预测=tf.常数([[1.0,0.0],[0.0,1.0],[0.0,1.0]])
t=0.5
y_pred_=tf.to_int32(预测>t)
分数,up\u opt=tf.metrics.mean\u iou(标签,y\u pred\u3)
使用tf.control_依赖项([up_opt]):
分数2=1.0*分数
sess.run([tf.local_variables_initializer()]))
结果=sess.run([score_2])
这应该给我这个假例子的平均欠条。但是,如果我运行多次,我会得到不同的结果。我注意到运行up\u opt
手动修复它:
带有graph.as_default()的:
使用sess.as_default():
标签=tf.常数([[1.0,0.0],[0.0,1.0],[0.0,1.0]])
预测=tf.常数([[1.0,0.0],[0.0,1.0],[0.0,1.0]])
t=0.5
y_pred_=tf.to_int32(预测>t)
分数,up\u opt=tf.metrics.mean\u iou(标签,y\u pred\u3)
sess.run([tf.local_variables_initializer()]))
sess.run([up\u opt])
结果=sess.run([分数])
但是,我想知道为什么控件依赖项不起作用。这不是应该自动运行操作符吗?在第二个代码段中,没有定义
score_2
。你的意思是在那里添加score_2=1.0*score
而不使用with
语句吗?你用的是TF1.15吗?是打字错误。我打算sess.run([score])
。我更新了我的问题。我用的是tensorflow 1.14