2

prototxtファイルの畳み込みカーネルは、画像の高さと重さを設定するだけで済み、3次元を自動的に設定することができます。4-D畳み込みカーネルを実装する方法

しかし、prototxtファイルに4-Dカーネルを設定するにはどうすればよいですか?図において


early fusion
入力ビデオは、4-Dです。

the work は、第1のコンボリューション層の寸法は4-Dであると言います。

私は2週間問題に立ち往生しています。私は絶望的です。

誰でも手伝ってもらえますか?

ありがとうございました

答えて

2

カフェは4次元以上のブロブをサポートしています。時間的な畳み込みを実行したい場合は、サイズがbatch - channels - time - height -の5次元入力ブロブでCaffeをフィードする必要があると思います。この種の入力では、convolution_paramのデフォルトのaxis引数を変更するだけで一時的な畳み込みを行うことができます。例えば:

input: "data" 
input_shape: { dim: 5 dim: 15 dim: 3 dim: 227 dim: 227 } 
layer { 
    name: "temporal_conv" 
    type: "Convolution" 
    bottom: "data" 
    top: "temporal_conv" 
    param { lr_mult: 1 decay_mult: 1 } 
    param { lr_mult: 2 decay_mult: 0 } 
    convolution_param { 
    num_output: 32 
    kernel_size: 3 kernel_size: 5 kernel_size: 5 
    pad: 1 pad: 2 pad: 2 
    stride: 1 stride: 2 stride: 2 
    axis: 1 
    } 
} 

この"temporal_conv"層は3x5x5カーネル(従って入力パッド)と時間次元の空間ドメインおよび1ストライド2を使用します。

+1

+1、私は畳み込みを伴う4Dブロブを持つことはできませんでした。私は、体重が3D形式で提示され、それに応じてそれを分割するか、またはこれらの線に沿って他の手法を分割することを前提としていました! –

0

@Shai返信ありがとうございます!私はトレーニングのためにデータレイヤーからHDF5 fromatを使用します。これは、batch-channels-time-height-widthの順序で5つの次元としてデータを格納します。 prototxt部分は

layer { 
    name: "data" 
    type: "HDF5Data" 
    top: "data" 
    top: "label" 
    include: { 
     phase: TRAIN 
    } 
    hdf5_data_param { 
     source: "path/to/txt" 
     batch_size: 50 
    } 
} 

であり、私は入力されたブロブ寸法は4である必要がありそうですエラー

I0520 21:39:35.705278 30447 net.cpp:84] Creating Layer conv1 
I0520 21:39:35.705286 30447 net.cpp:381] conv1 <- data 
I0520 21:39:35.705294 30447 net.cpp:339] conv1 -> conv1 
I0520 21:39:35.705307 30447 net.cpp:113] Setting up conv1 
F0520 21:39:35.705329 30447 base_conv_layer.cpp:14] Check failed: 4 == bottom[0]->num_axes() (4 vs. 5) Input must have 4 axes, corresponding to (num, channels, height, width) 

を得た任意の解決策はありますか?

+0

問題を解決しましたか?どうやって?ありがとう – user8264

関連する問題