1

ネットをトレーニングして適用しようとしましたが、次のエラーが表示されます。

レイヤー 'ip1' からパラメーター 0 の重みをコピーできません。形の不一致。ソース パラメータの形状は 384 72576 (27869184) です。ターゲット パラメータの形状は 384 224(86016) です。保存されたネットからコピーするのではなく、このレイヤーのパラメーターを最初から学習するには、レイヤーの名前を変更します。

このレイヤーのネット構成は次のようになります。

layer {
  type: "Concat"
  bottom: "conv5f"
  bottom: "conv5_pf"
  top: "feat"
  name: "concat1"
}

layer {
  name: "ip1"
  type: "InnerProduct"
  bottom: "feat"
  top: "ip1"
  param {
    lr_mult: 1
  }
  param {
    lr_mult: 2
  }
  inner_product_param {
    num_output: 384
    weight_filler {
      type: "xavier"
    }
    bias_filler {
      type: "constant"
    }
  }
}

シャムネットワークの共同所です。

トレーニングを開始すると、次の出力が表示されます。

setting up concat
Top shape: 256 72576  
...
Setting up ip1
Top shape: 256 384

適用ネット:

setting up concat
Top shape: 256 224
...
Setting up ip1
Top shape: 256 384

重要な場合は、トレーニング中に 256 のバッチ サイズを使用しました。

ここで何が問題なのですか?見えない。ネットをtrain.prototxtファイルからapply_net.prototxtにコピーペーストしました。それだけです

4

1 に答える 1

2

不一致は、レイヤーのブロブ サイズが異なるためです。ネットワークの各層の出力次元を計算する必要があります。ここで与えられた式を使用してください。

于 2016-05-15T16:50:23.817 に答える