python - 循环数据集时 tf.function 中的异常执行顺序
问题描述
给定以下代码片段。
import tensorflow as tf
a=tf.Variable(0)
@tf.function
def f():
dataset = tf.data.Dataset.from_tensor_slices([1, 2, 3])
for i in dataset:
a.assign(i)
tf.print(a)
tf.print(a)
f()
如果在 TF 2.0 中执行,结果为1 2 3 3
.
如果在 TF 2.1 中执行,结果为1 2 3 0
.
为什么两个版本之间存在差异以及为什么第二个输出有效?
解决方案
这已在 TF 2.2 中修复。
推荐阅读
- java - 有没有办法将参数传递给石英 cron 作业?
- postgresql - PostgreSQL 全文搜索 - 优先考虑与所有术语匹配的结果
- java - 如何配置surefire插件,使其可以运行非公共测试类?
- tensorflow - 使用张量流实现 SARSA
- windows - 批处理以从文本文件中删除带有开始和停止分隔符的行范围
- javascript - 无法使用加密解密 encryptedValue
- python - 一维 numpy.sum 返回 1
- node.js - 快速生产服务器中的异步等待与回调
- javascript - 在某些领域例外
- android - java.lang.IllegalStateException:已添加片段且已保存状态