tenosorflowでうまく動かないときに、cppソースとかを見たらVLOG(2)とかに有用なログが出てそうな時があります。 通常のLOGではなく、VLOGはデフォルトでオフなので、出力するには環境変数 TF_CPP_MAX_VLOG_LEVEL をセットします。
import os
os.environ['TF_CPP_MAX_VLOG_LEVEL'] = '2'
なお大量にログが出るので、すごく遅くなります。ファイルに出すときには標準エラーをリダイレクトするのを忘れずに。
学習しようとした際に、以下のエラーが出る場合
error: Can't find libdevice directory ${CUDA_DIR}/nvvm/libdevice
あちこちに答えがありますが、コンパイル時のcudaフォルダの場所と違うところに現在のcudaがある場合に、 このエラーが出ます。 基本的に、以下のコードで直ります。
import os
os.environ["XLA_FLAGS"]='--xla_gpu_cuda_data_dir=/path/to/cuda'
windowsの場合は、この方法でうまくいくのですが、空白パスとパス区切りでさらに失敗しますので、 次のようにします。
import os
os.environ["XLA_FLAGS"]='--xla_gpu_cuda_data_dir="%s"'%os.environ["CUDA_PATH"].replace('\\','/')
tf.keras.Modelで、fit()を使って学習していると、ちょっとずつCPUメモリ消費量が増大して、 長時間の学習ができない現象が発生しました。tensorflow 2.10.0
いろいろ解決法が提示されていますが、どうも実装のC++ルーチン内でのmalloc周りに変なことがあるようで、 tcmallocに差し替えるとリークしなくなりました。
sudo apt install libgoogle-perftools-dev
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4 python3 train.py
なんかバージョン上がったときに、パッケージがおかしくなってインストールが止まるやつ
sudo apt --fix-broken install -o Dpkg::Options::="--force-overwrite"
ref: https://askubuntu.com/questions/1238715/unable-to-fix-broken-packages-when-installing-cuda