原因はTensorFlowとCUDAとcuDNNのバージョンが一致していないため。
tensorflow-gpu==1.15.3ではCUDA10.0とcuDNN7を使わないといけない。
DockerHubから以下のコンテナをpullして使うとエラーが出ず、GPUを使って学習出来た。 nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04
参考:
原因はTensorFlowとCUDAとcuDNNのバージョンが一致していないため。
tensorflow-gpu==1.15.3ではCUDA10.0とcuDNN7を使わないといけない。
DockerHubから以下のコンテナをpullして使うとエラーが出ず、GPUを使って学習出来た。 nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04
参考:
Facebook製のライブラリのhydraを使ってconfigファイルを読み込んでいたところ、gcログが標準出力に出るようになってしまい鬱陶しかった。
以下の設定で使っていたが、disable_existing_loggersをtrueにするとgcログが出なくなった。ググってもdisable_existing_loggersについての情報が見当たらなかったので詳細は不明だがgcログを出す既存の設定を消してくれるのだろう。
hydra: run: dir: ./ output_subdir: null job_logging: version: 1 handlers: console: class: logging.StreamHandler stream: ext://sys.stdout root: handlers: [console] disable_existing_loggers: false
参考:
どうもコンパイラに渡すオプションが間違っているっぽい。恐らくpycocotoolsのインストール時にコンパイルを実行するが、そのコンパイラがpycocotoolsの作者の環境とユーザの環境で違うのが原因だろう。
以下を実行するとインストールできる。
pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
ただ、conda env createで環境を作ろうとするとやっぱりエラーになるから、conda env createの後でpycocotoolsだけpip installを手動で実行しないといけないのが面倒。
参考:
pip install pycocotoolsで「cl : コマンド ライン error D8021 : 数値型引数 '/Wno-cpp' は無効です。」が出たときは、pipでのinstallは諦めて「pip install git+https://t.co/qQtO1MQ2WY」でインストールする。
— Chibadai (@ChibaTeck) 2018年12月15日
※参照URL:https://t.co/WbFn7o7F4b
LinuxとWindow両方に対応する場合、パスの違いが問題になるが、Pythonだと掲題の通り自動的にCドライブのrootからパスをたどってくれるっぽい。(ドライブをどんな仕様で決めているかは不明なので、Dドライブで実行したらDドライブのrootからになるかも?)
なのでif is_win():のような分岐を書かなくてもパスはLinuxとWindows両対応できそう。これは嬉しい。
原因はlog_parametersに渡したパラメータの値にnanがあったこと。nanをNoneに変換して回避した。
原因はProcessingStepのproperty_filesで指定されたpathにファイルが見付からないこと。それを示すエラーメッセージが全くでないのでかなり困った・・
stepのOutputタブには以下のメッセージが表示されるが、これじゃわからない・・
This step failed. For more information, view the logs ClientError: Cannot access S3 key.
-z "${VAR}" とするのがメジャーだが、これでチェックするとset -euxo pipefailを設定して未定義変数を使用している場合、エラーになるようにしているとエラーで止まってしまう。
代わりに ${VAR:-"unset"} == "unset" とするとエラーにならない。
参考: