3

私は1x8x128x128のような5D BLOBを持っています。私は5D BLOBを処理できる畳み込みレイヤーを持っています。私はプールレイヤーを使用したいが、動作しない。 と5D BLOBをどうやって使用しますか?caffe:5D BLOBがプールされていますか?

チェックに失敗しました:4 ==底[0] - > num_axes()(4対5)入力(NUM、チャネル、高さ、幅)

に対応する、4つの 軸を有していなければなりません

私はそれがまだcaffeによってサポートされていないと思う。畳み込みレイヤーを使用して、poolingを使用できますか? 4Dへ

+0

(1)caffeのNDプール層を実装できます。または(2)最初の2つの空間ディメンションをプールする場合は、4Dに整形してプールし、5D – Shai

+0

に戻して再構成して、ディメンションを省略して再度再構成して1つのディメンションをもう一度追加する方法はありますか?ディメンションを追加する方法はわかりますが、ディメンションを省略する方法はわかりません。 @Shai – thigi

+0

もう一つの選択肢は、サブサンプリングを実現するために、プール層が後に続くのではなく、畳み込み層に 'stride = 2'を設定することです。 – Dale

答えて

3

あなただけの最初の2つの空間次元をプールしたい場合は、次のことができ"Reshape"バック5Dに、(チャネルおよび時間的次元を「退治」)プールし、その後"Reshape"

layer { 
    name: "pool/reshape4D" 
    type: "Reshape" 
    bottom: "in" 
    top: "pool/reshape4D" 
    reshape_param { axis: 1 num_axes: 1 shape { dim: -1 } } 
} 
layer { 
    name: "pool" 
    type: "Pooling" 
    bottom: "pool/reshape4D" 
    top: "pool" 
    # pooling params here... 
} 
layer { 
    name: "pool/reshape5D" 
    type: "Reshape" 
    bottom: "pool" 
    top: "pool/reshape5D" 
    reshape_param { axis: 1 num_axes: 1 shape { dim: -1 dim: <temporal_dim> } } # replace <.> with the actual temporal dimension size. 
} 

定義を参照してください詳細はReshapeParametercaffe.protoにあります。

+0

私の次元は時間的ではなく、適切な3Dスライスですが、違いはありません。私は4Dブロブの形でネットを与えようと考えていましたが、最後には4Dブロブを5Dブロブに再形成し、5Dブロブに「Softmax」を使用します可能。しかし、私はこの答えをここでも試みます!ありがとう! @Shai – thigi

関連する問題