2017-09-18 23 views
0

私は数日前にテンソルフローを使用しました。固定重量のコンバートレイヤーを構築するには、簡単にweightカーネルをconv2d()に渡します。 VGG19のような事前訓練モデルをロードすると便利です。しかし、conv2d()は明示的なカーネルではなくカーネルのサイズを受け入れるので、Pytorchを使ってそのように動作しないことがわかりました。だからVGG19の重みをconv2d()のようなメソッドに渡すだけで再利用できるかどうかは疑問です。すべての返信は高く評価されます。Pytorch負荷モデル

答えて

1

2つの質問があります。 pyTorchでVGGのようなあらかじめ訓練されたモデルを使用する方法とnn.conv2d()のような特定の層の重みを設定する方法。

事前に作成されたVggモデルを作成するには、以下のコードを使用します。

from torchvision import models  
model_vgg = models.vgg16(pretrained=True) 
for param in model_vgg.parameters(): 
    param.requires_grad = False 

PyTorchでは、ネットワークに関連付けられているすべての重みを返すパラメータ()関数を含むニューラルネットワークサブクラス化nn.Moduleを実装します。

特定のレイヤの重みを設定します。

decoder = nn.Linear(10, 100) 
decoder.weight = #Do anything which is valid. 

私のコードhereを確認して、訓練されたモデルの使い方を知ることができます。

+0

ありがとうございます! –

+0

助けがあれば、答えとして選択することができます。 –