ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

Diffusion Policyのevalメモ

これの続きです。

natsutan.hatenablog.com

無事学習が終わったので、ドキュメントに従って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は効いていて評価結果が動画になって保存されます。

youtube.com

とりあえず動くようになりました。