🐉

Hydraで、ワーキングディレクトリが変化する問題

2022/02/18に公開

Hydraでは、YAMLで深層学習のハイパーパラメータを管理できます。
よく使われているargparserは、少しコードが見にくくなる上に、毎回引数を入力しなければならないので、めんどくさい...
そこでHydraは非常に有力なツールになりますが、argparserHydraに置き換える時に、パス周りでトラブったので、備忘録として、その時の対応をメモとして残しておきます。

問題

argparserHydraに置き換える部分では時問題はなかった。

@hydra.main(config_path='config', config_name='defaults')
def main(cfg: DictConfig):
    ...

しかし、データセットを読み込む時に、データセットへのパスを相対パスで記入している場合、Hydraを使用すると、なぜかそこに辿りつけなくなる現象が発生します。

原因・解決法

原因は、Hydraを使用した際に、ワーキングディレクトが生成されるoutputsディレクトリに勝手に変わってしまいます。
公式ドキュメントで、変わる前のワーキングディレクトリを取得できるので、この問題を解決できます。

https://hydra.cc/docs/tutorials/basic/running_your_app/working_directory/

Discussion