使用tensorflow 代理保存模型时出错

yc0p9oo0  于 2022-12-23  发布在  其他
关注(0)|答案(1)|浏览(154)

我尝试保存一个带有tensorflow 代理的模型,首先我定义了以下内容:

collect_policy = tf_agent.collect_policy
saver = PolicySaver(collect_policy, batch_size=None)

然后像这样保存模型:

saver.save('my_directory/')

这在Google Colab中工作正常,但我在本地PC中遇到以下错误。

AttributeError: module 'tensorflow.python.saved_model.nested_structure_coder' has no attribute 'StructureCoder'

以下是我正在使用的库版本:
tensorflow 2.9.1
转移因子0.11.0

q9yhzks0

q9yhzks01#

铊;医生

确保您拥有与2.9.x和tf-agents 0.11.0兼容的正确的tensorflow 概率版本

pip uninstall tensorflow-probability
pip install tensorflow-probability==0.17.0

0.19.0用于TF 2.110.18.0用于TF 2.10或查看release notes
同时确保从笔记本电脑重新启动内核。

问题是什么

StructureCoder已移至tensorflow API。因此,其他相关库已进行了更改,如this in tf-agent和tensorflow-probability中的以下更改。您的计算机正在以某种方式获取依赖于先前版本nested_structure_coder的旧版本。
对我来说,我使用的是tensorflow 2.9.0tf-agents 0.13.0tensorflow-probabilities 0.17.0
尝试在笔记本中进行显式导入:

import tensorflow_probability
print(tensorflow_probability.__version__) # was 0.17.0 for me

相关问题