python - 模块“tensorflow._api.v1.metrics”没有属性“平均值”
问题描述
我使用 tensorflow 1.12 版
这是我的代码
train_loss_results = []
train_accuracy_results = []
num_epochs = 201
for epoch in range(num_epochs):
epoch_loss_avg = tf.metrics.Mean()
epoch_accuracy = tf.metrics.Accuracy()
for x,y in train_dataset:
loss_value,grads = grad(model,x,y)
optimizer.apply_gradients(zip(grads,model.variables),global_step)
epoch_loss_avg(loss_value)
epoch_accuracy(tf.argmax(model(x), axis=1, output_type=tf.int32), y)
train_loss_results.append(epoch_loss_avg.result())
train_accuracy_results.append(epoch_accuracy.result())
if epoch % 50 == 0:
print("Epoch {:03d}: Loss: {:.3f}, Accuracy: {:.3%}".format(epoch,
epoch_loss_avg.result(),
epoch_accuracy.result()))
这就是错误
AttributeError Traceback (most recent call last)
<ipython-input-33-6c3fabbf8b76> in <module>
4
5 for epoch in range(num_epochs):
----> 6 epoch_loss_avg = tf.metrics.Mean()
7 epoch_accuracy = tf.metrics.Accuracy()
8 for x,y in train_dataset:
AttributeError: module 'tensorflow._api.v1.metrics' has no attribute 'Mean'
如何解决这个问题?
解决方案
错误说tf.metrics
没有名为的类Mean
。您应该tf.metrics.mean
改用:
import tensorflow as tf
values = tf.constant([[1, 2],
[3, 4]])
weights = tf.constant([[1, 0],
[1, 0]])
mean, mean_op = tf.metrics.mean(values, weights)
with tf.Session() as sess:
sess.run(tf.local_variables_initializer())
sess.run(tf.global_variables_initializer())
print(sess.run([mean, mean_op]))
print(sess.run([mean]))
在急切模式导入tf.contrib.eager.metrics.Mean
:
tf.enable_eager_execution()
values = tf.constant([[1, 2],
[3, 4]])
weights = tf.constant([[0, 2],
[2, 0]])
mean = tf.contrib.eager.metrics.Mean()(values, weights)
print(mean)
推荐阅读
- sql-server - Azure Sql 列级加密错误 - 无法使用密钥存储提供程序解密列加密密钥:“AZURE_KEY_VAULT”
- javascript - 常量值不更新
- python - 如何在 Python pandas 数据框中的任何行具有 NaN 值后删除列
- docker - 无法将 chrome 节点与集线器绑定
- react-bootstrap - React-bootstrap (BS v3) - 不能使用来自输入的 ref
- javascript - 反应过滤器更改数据中的ID
- reactjs - CORS 策略已阻止从源“http://localhost:3000”访问“http://localhost:8000/api/puppies”获取
- sql - 在 SQL 阶段对数据仓库进行 QA... 测试表组合的想法?
- xslt-1.0 - XSLT 分组和转换
- java - 检查两个布尔值是否相等的优雅方法,需要注意的是 False==null?