python - 在 Tensorflow 中恢复检查点后未初始化的权重
问题描述
我使用检查点使用以下代码保存模块的权重:
chkp_path = "./policies/deep_cfr"
checkpoint = tf.train.Checkpoint(model=deep_cfr_solver._policy_network)
checkpoint.write(chkp_path)
deep_cfr_solver._policy_network
的子类在哪里tf.Module
之后我尝试在另一个函数中再次加载这个模块:
policy_network = simple_nets.MLP(input_size=4498, hidden_sizes=[8, 8], output_size=4)
new_checkpoint = tf.train.Checkpoint(model=policy_network)
new_checkpoint.restore("./policies/deep_cfr")
info = state.information_state_tensor(0)
tensor = tf.convert_to_tensor(info)
tensor = tf.reshape(tensor, shape=[1, tensor.shape[0]])
action_logits = policy_network(tensor)
action_probs = tf.nn.softmax(action_logits)
with tf.compat.v1.Session() as sess: print(action_probs.eval())
OpenSpielstate
的 GameState 在哪里。
但是此代码的最后一行导致以下错误:
发生异常:FailedPreconditionError Attempting to use uninitialized value mlp/weights [[node mlp/weights/read (defined at /open_spiel/open_spiel/python/simple_nets.py:48)]]
我使用的代码是基于这个文档
解决方案
推荐阅读
- apache-spark - Spark 流式传输:公开 spark_streaming_* 指标
- apache-kafka - 调用 KStream.join() 后,Kafka 密钥附加了奇怪的字符
- dialogflow-es - 是否可以将消息推送到 Dialogflow 对话?
- sql - 未实现从 postgresql 中删除表而不提高跨数据库引用:使用 pandas/psycopg2
- shopify - 我可以在没有查询字段的情况下执行 GraphQL 突变吗?
- cassandra - 重新启动集群以进行时间点还原的正确顺序是什么?
- c++ - 字符串文字的 C++ 引用
- javascript - 如何使用参数内部函数的返回值作为javascript中外部函数的新参数
- sql-server - 如何在 Dapper 中获取正确的 DateTime
- html - 使用 django_filters 时 /plants/plants/ 的 ValueError 太多值无法解包(预期为 2)