【TensorFlow学习笔记】tf.metrics

问题:

使用tf.metrics.accuracy评估模型时,抛出异常Attempting to use uninitialized value accuracy/count

解决方案:

第一点:

初始化变量: 由于metrics.accuracy创建了两个局部变量total和count,我们需要调用local_variables_initializer()来初始化它们.

# y为真实值,y_pre为模型预测值
# accuracy
accuracy = tf.metrics.accuracy(tf.argmax(y, 1), tf.argmax(y_pre, 1))
# 初始化全局变量和局部变量
sess.run(tf.global_variables_initializer())
sess.run(tf.local_variables_initializer())
sess.run(accuracy[1])

第二点:

避免在初始化变量后再定义accuracy

错误操作:

# 初始化全局变量和局部变量
sess.run(tf.global_variables_initializer())
sess.run(tf.local_variables_initializer())

# y为真实值,y_pre为模型预测值
# accuracy
accuracy = tf.metrics.accuracy(tf.argmax(y, 1), tf.argmax(y_pre, 1))
sess.run(accuracy[1])

tf.metrics.accuracy可以用如下操作代替:

    # y为真实值,y_pre为模型预测值
    correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_pre, 1))
    accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))

tf.metrics详细内容可参考:深入理解TensorFlow中的tf.metrics算子

参考:https://codeday.me/bug/20180901/236600.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值