tensorflow2.0 - “黑客的贝叶斯方法” jupyter notebook 不工作
问题描述
我正在阅读“黑客的贝叶斯方法”的在线 TensorFlow Probability (TFP) 版本。
但是当我执行 Ch2_MorePyMC_TFP.ipynb 的第一个单元格时,会 发生以下错误:
AttributeError:模块“tensorflow”没有属性“contrib”
我想这个版本的“黑客的贝叶斯方法”jupyter notebook 是为 TF1 编写的。
您是否有此 jupyter notebook 的简单修复或更新版本与 TF2 一起使用?
解决方案
一些contrib
功能被删除,其中一些被合并到TensorFlow
核心中。您需要找到它们的等效版本。
import tensorflow as tf
import tensorflow_probability as tfp
tfd = tfp.distributions
tfb = tfp.bijectors
print(tf.__version__) # 2.5.0
print(tfp.__version__) # 0.12.1
例如,TensorFlow 中提供了第一个 contrib 函数,并且可以重写为:
parameter = tfd.Exponential(rate=1., name="poisson_param").sample()
rv_data_generator = tfd.Poisson(parameter, name="data_generator")
data_generator = rv_data_generator.sample()
data_generator_ = tf.nest.pack_sequence_as(
data_generator,
[t.numpy() if tf.is_tensor(t) else t
for t in tf.nest.flatten(data_generator)])
print("Value of sample from data generator random variable:", data_generator_)
对于其他 TF 操作,您可以像这样替换它们:
with tf.compat.v1.variable_scope(tf.compat.v1.get_variable_scope(), reuse=tf.compat.v1.AUTO_REUSE):
step_size = tf.compat.v1.get_variable(
name='step_size',
initializer=tf.constant(0.5, dtype=tf.float32),
trainable=False,
use_resource=True
)
更多信息可以在文档中找到
推荐阅读
- excel - 如何在 Excel 中创建一个 IF 函数来汇总特定时间之间显示的客人数量?
- javascript - 这个绑定在哪里,es6 和 es5 ECMAScript 定义与那些有什么区别?
- html - 如何从电子应用程序中的 [mat-icon] 按钮中删除工具提示?
- reactjs - 如何修复在反应中返回 NaN 的事件处理程序中的调用索引?
- javascript - React/Webpack/Django - 未捕获的类型错误:无法读取未定义的属性“XXX”
- android-studio-3.3 - 断点在 Android Studio 3.3 中不起作用
- java - 将 3 个不同数组的所有值转换为它们的绝对值并返回所有 3 个的方法只保持第一个数组而不是接下来的两个
- python - 如何确保 vscode-python 正确显示来自 `flake8-rst-docstrings` 和/或 `flake8-black` flake8 扩展的 linter 条目?
- php - 为什么清理字符串功能不会阻止在评论字段中提交html链接
- auc - 在 SQL 中计算 AUC