python - 张量流概率中的急切执行在第二次迭代时停止记录梯度
问题描述
不知何故,我的火车循环中没有渐变。下面是一个简单的例子。
import tensorflow as tf
import tensorflow_probability as tfp
tf.enable_eager_execution()
hidden_size = 32
output_size = 1
m = tf.keras.Sequential(
[
tfp.layers.DenseLocalReparameterization(hidden_size, tf.nn.leaky_relu),
tfp.layers.DenseLocalReparameterization(hidden_size, tf.nn.leaky_relu),
tfp.layers.DenseLocalReparameterization(output_size)
]
)
如果我两次运行渐变记录步骤,第二次不会显示任何渐变。返回一个带有None
类型的列表。
for _ in range(2):
with tf.GradientTape() as tape:
loss_value = m(tf.ones((1, 2))) * 2
print(tape.gradient(loss_value, m.trainable_variables))
如果我们将模型替换m
为“标准”张量流模型,则情况并非如此,即
m = tf.keras.Sequential([tf.keras.layers.Dense(1)])
我正在使用 tensorflow=1.13.1 和 tensorflow-probability=0.6.0
解决方案
这似乎是一个临时错误。我上传到张量流和张量流概率的每晚发布,问题就解决了。
推荐阅读
- express - 在 Heroku 上部署时的 Axios 代理
- python - I want to make a sorting Visualizer, the sort works but visualizer doesnot
- mysql - MySQL 将多条记录分组或转换为 1 条单条记录
- sql-server - Msg 402, Level 16, State 1, Line 300 数据类型 date 和 int 在模运算符中不兼容
- vue.js - 如何在弹性搜索中存储数据?
- javascript - 如何在按钮单击时切换输入值
- http - 使用HTTP请求html文件,为什么TCP序列号不连续?
- c# - 你调用的对象是空的。在 datagridview 实体框架中使用 LinQ 添加两个表
- java - 使用容器的 SQL 字符串查询
- r - 如何克服将 Bookdown 构建为 ePub 格式的错误?