私は torch==1.7.1 を使用して ubuntu 18.04 を使用しています
私がやりたいことは、強化学習エージェントを訓練し、それを別のサーバーに送信して、訓練されたエージェントがすぐにプレイできるようにすることです。
私はhttps://pytorch.org/tutorials/beginner/ Saving_loading_models.htmlに従っていますが、明確化が必要です。
すべてのトレーニングが終了したら、次の方法でエージェント、オプティマイザーを保存しました。
ckpt = {
'Epoch': epoch,
'model' : agent.state_dict(),
'optimizer' : optimizer.state_dict()
}
torch.save(ckpt, filename)
ここで、この保存したファイルを別のサーバーに送信し、次のようにロードしました。
ckpt = torch.load(ckpt_FILE_PATH)
agent = Agent()
optimizer = optim.Adam(agent.parameters(), lr=0.0005)
agent.load_state_dict(ckpt["agent"])
optimizer.load_state_dict(ckpt["optimizer"])
agent.eval()
一つだけ確認したいことがあります。トレーニング段階でのエージェント インスタンスとオプティマイザの作成中に、次を使用してオプティマイザをインスタンス化しました。agent.parameters()
だから私の質問は私がする必要がありますか
- load_state_dict をエージェントに送信し、agent.parameters() を使用してオプティマイザーをインスタンス化します
- load_state_dict をエージェントにロードする前にオプティマイザーをインスタンス化するだけですか?
- 関係ない。
前もって感謝します。