无法加载tensorflow(tfagent)保存的mod

2024-06-12 10:05:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用以下代码创建tf agent DqnAgent:

tf_agent = dqn_agent.DqnAgent(
    train_env.time_step_spec(),
    train_env.action_spec(),
    q_network=q_net,
    optimizer=optimizer,
    td_errors_loss_fn=dqn_agent.element_wise_squared_loss,
    train_step_counter=train_step_counter

在训练循环中,我用

^{pr2}$

一旦培训,我想加载保存的模型

if tf.saved_model.contains_saved_model(saved_models_path):
    tf_agent = tf.saved_model.load(saved_models_path)

只有在saved_path中的文件夹包含一个模型时,此代码才会加载保存的模型,contains_saved_model(saved_models_path)函数返回{},因此加载了模型,但存在异常,程序崩溃:

Traceback (most recent call last):
    File "/home/claudino/Projetos/dino-tf-agents/dino_ia/model/agent.py", line 50, in <module>
        tf_agent = tf.saved_model.load(saved_models_path)
    File "/home/claudino/Projetos/dino-tf-agents/venv/lib/python3.6/site-packages/tensorflow/python/saved_model/load.py", line 408, in load
        return load_internal(export_dir, tags)
    File "/home/claudino/Projetos/dino-tf-agents/venv/lib/python3.6/site-packages/tensorflow/python/saved_model/load.py", line 432, in load_internal
        export_dir)
    File "/home/claudino/Projetos/dino-tf-agents/venv/lib/python3.6/site-packages/tensorflow/python/saved_model/load.py", line 58, in __init__
        self._load_all()
    File "/home/claudino/Projetos/dino-tf-agents/venv/lib/python3.6/site-packages/tensorflow/python/saved_model/load.py", line 168, in _load_all
        slot_variable = optimizer_object.add_slot(
    AttributeError: '_UserObject' object has no attribute 'add_slot'

    Process finished with exit code 1

我浏览了tensorflow代码,但找不到问题所在。有人能帮我吗?在

我之所以使用tf-agents-nightly,是因为google的colaboratory源代码在tf-agents“稳定”版本上不起作用(我不确定tf agents是否真的稳定),并尝试使用tensorflow1.3和2.0.0-beta0的代码,同样的问题也会发生。在


Tags: pathinpyhomemodeltflineload