Jupyter Notebookで__file__が使用できない
直感ディープラーニングの写経をJupyter Notebookで行っていて、
__file__
が使用できないことがわかった。
以下のように対象ファイルのパス情報を取得できない。
import os os.path.dirname(__file__)
代わりに、以下を使用する。
from pathlib import Path Path().resolve()
直感ディープラーニングではログディレクトリを作成して 学習結果を出力し、TensorBoardで確認を行う。
書籍場では以下のように実行ファイルが含まれているディレクトリ情報を取得し、 その配下にlogdirというディレクトリを作成する。
// 実行ファイルが/Users/xxx/ai/xxx.pyなら、 // 以下の記述で/Users/xxx/ai/logdirというディレクトリ情報がself.log_dirに格納される self.log_dir = os.path.join(os.path.dirname(__file__), "logdir")
上述の通り、Jupyter Notebookではこの通りの写経すると、
NameError: name '__file__' is not defined
とエラーになるため、下記のように記述する。
from pathlib import Path self.log_dir = os.path.join(Path().resolve(), "logdir")