これの続きです。
無事学習が終わったので、ドキュメントに従ってevalをしました。
python eval.py --checkpoint data/outputs/2024.08.31/18.46.54_train_diffusion_transformer_lowdim_pusht_lowdim/checkpoints/latest.ckpt --output_dir data/pusht_eval_output --device cuda:0
このようなエラーが出たので、これもソースを修正して解決しました。
File "/home/mnatsutani/myproj/diffusion_policy/.venv/lib/python3.8/site-packages/click/core.py", line 1434, in invoke return ctx.invoke(self.callback, **ctx.params) File "/home/mnatsutani/myproj/diffusion_policy/.venv/lib/python3.8/site-packages/click/core.py", line 783, in invoke return __callback(*args, **kwargs) File "/home/mnatsutani/myproj/diffusion_policy/eval.py", line 34, in main workspace = cls(cfg, output_dir=output_dir) TypeError: __init__() got an unexpected keyword argument 'output_dir'
eval.pyのエラー箇所を修正しました。
修正前
cls = hydra.utils.get_class(cfg._target_) workspace = cls(cfg, output_dir=output_dir) workspace: BaseWorkspace
修正後
cls = hydra.utils.get_class(cfg._target_)
# workspace = cls(cfg, output_dir=output_dir)
workspace = cls(cfg)
workspace: BaseWorkspace
これでも、eval.pyのoutput_dirは効いていて評価結果が動画になって保存されます。
とりあえず動くようになりました。