AWS Lambdaでtimm.create_modelでのpre-trainedモデルダウンロードでRead-only file systemと言われる

PyTorchのスクリプトをLambdaでAPI化しているときのお話です
Lambdaで書き込み可能な領域は /tmp 配下のみです

ということで、スクリプト上には

torch.hub.set_dir("/tmp")

と書いているのですが、返ってくるエラーが

[ERROR] OSError: [Errno 30] Read-only file system: '/home/sbx_userXXXX'

という感じ

PyTorchのドキュメントによると、Where are my downloaded models saved? というセクションに以下のように書かれています

The locations are used in the order of

  • Calling hub.set_dir()
  • $TORCH_HOME/hub, if environment variable TORCH_HOME is set.
  • $XDG_CACHE_HOME/torch/hub, if environment variable XDG_CACHE_HOME is set.
  • ~/.cache/torch/hub

問題ないはずなのだけど…
ということで、本記事を書いている時点ではまだ未解決なのでした

解決しました!
timmの現在のバージョンでは、torch.hub.set_dirが効かないようです
環境変数 HUGGINGFACE_HUB_CACHE に/tmpを設定することで通るようになりました
How can i change the path of pre-train models cache? #790

AWS Lambdaでtimm.create_modelでのpre-trainedモデルダウンロードでRead-only file systemと言われるにコメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です