2

次へthis質問とこのtutorialチュートリアルと同じように単純なネットを作成しましたが、100X100の画像と11X11とpad = 0の最初の畳み込みカーネルがあります。caffe convnetの3番目の要素を計算するには?

式Iであることを理解する:(W-F + 2P)/ S + 1と私の場合寸法は、(3 RGBのチャネルである)51X51X3]となったが、私のネット図中番号96ポップアップとこのtutorialは出力の3次元であると言いましたが、最初のconv後のネットは[51X51X96]になりました。私は数字96の計算方法と理由を理解できませんでした。

ネットワーク畳み込みレイヤーが3つのカラーチャネルをスローし、出力が3つのフィーチャマップである必要がありますか?どのように次元がこれのように成長するのですか?チャンネルごとに1つのカーネルがあるのは本当ですか?このカーネルがどのようにして96(または最初のチュートリアル、256または384)のフィーチャーマップを作成するのですか?

答えて

1

入力チャンネルと出力チャンネルをミックスしています。
入力画像にはR、G、Bの3つのチャンネルがあります。convレイヤーの各フィルターは、これらの3つのチャンネルと空間カーネルサイズ(3 x 3など)で動作します。各フィルタは、番の単一の空間位置を出力します。したがって、レイヤーに1つのフィルターがある場合、出力には1つの出力チャンネル(!)しかありません。
通常、各レイヤーで1つ以上のフィルターを計算したいと考えています。これはにnum_outputパラメーターが使用されています。 :特定の畳み込みレイヤーで訓練されるフィルターの数を定義することができます。
32したがって形状行列98行列98とコンバージョン層

layer { 
    type: "Convolution" 
    name: "my_conv" 
    bottom: "x" # shape 3-by-100-by-100 
    top: "y" 
    convolution_param { 
    num_output: 32 # number of filters = number of output channels 
    kernel_size: 3 
    } 
} 

ウィル出力"y"

関連する問題