私はここで見つけることができるモデルを参照しています: https://pytorch.org/docs/stable/torchvision/models.html#torchvision-models
@ dennlingeranswer : _torch.utils.model_Zoo
_ で言及されているように、事前にトレーニングされたモデルをロードすると、内部的に呼び出されます。
より具体的には、メソッド:torch.utils.model_Zoo.load_url()
は、事前トレーニング済みモデルが読み込まれるたびに呼び出されます。同じのためのドキュメントは、言及します:
_
model_dir
_のデフォルト値は_$TORCH_HOME/models
_で、_$TORCH_HOME
_のデフォルトは_~/.torch
_です。デフォルトのディレクトリは、_
$TORCH_MODEL_Zoo
_環境変数で上書きできます。
これは次のように実行できます。
_import torch
import torchvision
import os
# Suppose you are trying to load pre-trained resnet model in directory- models\resnet
os.environ['TORCH_MODEL_Zoo'] = 'models\\resnet' #setting the environment variable
resnet = torchvision.models.resnet18(pretrained=True)
_
PyTorchのGitHubリポジトリで問題を提起することで上記の解決策に遭遇しました: https://github.com/pytorch/vision/issues/616
これにより、ドキュメント、つまり上記のソリューションが改善されました。
はい、URLをコピーし、wget
を使用して目的のパスにダウンロードできます。これがイラストです:
AlexNetの場合:
$ wget -c https://download.pytorch.org/models/alexnet-owt-4df8aa71.pth
Google Inception(v3)の場合:
$ wget -c https://download.pytorch.org/models/inception_v3_google-1a9a5a14.pth
SqueezeNetの場合:
$ wget -c https://download.pytorch.org/models/squeezenet1_1-f364aa15.pth
Pythonで実行する場合は、次のようにします。
In [11]: from six.moves import urllib
# resnet 101 Host url
In [12]: url = "https://download.pytorch.org/models/resnet101-5d3b4d8f.pth"
# download and rename the file to `resnet_101.pth`
In [13]: urllib.request.urlretrieve(url, "resnet_101.pth")
Out[13]: ('resnet_101.pth', <http.client.HTTPMessage at 0x7f7fd7f53438>)
PS:すべてのダウンロードURLは、個々のpython torchvision.models
TL; DR:いいえ、直接は不可能ですが、簡単に変更できます。
あなたがしたいことは、事前訓練されたモデルをロードするときに内部的に呼び出される torch.utils.model_Zoo
を見ることだと思います:
たとえば、AlexNet here などの事前トレーニング済みモデルのコードを見ると、前述のmodel_Zoo
関数を呼び出しているだけで、保存されている場所がないことがわかります。これを指定するようにPyTorchソースを変更するか(これは実際にはすばらしい追加IMOであるため、そのためのプルリクエストを開くことができます)、または2番目のリンクのコードを好みに合わせて採用する(そしてそれを別の名前でカスタムの場所)を作成し、手動で関連する場所をそこに挿入します。
PyTorchを定期的に更新する場合は、PyTorchのコードベースを直接変更する必要がなく、更新中にエラーが発生する可能性があるため、2番目の方法を強くお勧めします。