で1D
conv netのパラメータを設定しようとしています。トーチでの時間的畳み込みを理解する
のは、私はそれに10
行と512
列がある、寸法10 x 512
であるTensor
と呼ばれるdata
があるとしましょう。このように、TemporalConvolution
レイヤーの単一の3レイヤースタックを実装し、次にReLU
、続いてTemporalMaxPooling
というレイヤーを実装したいと思います。私の分類問題はバイナリであり、対応するlabels
テンソルがあり、それは10 x 1
です。すでにfeval
と書かれており、それぞれrow
をdata
とlabels
の両方で繰り返すものとします。このように
、問題が1
列documentationから適応
まで512
列から、マッピングすることができ、ネットを構築することで次のように私はそれをパラメータ化している
...
model = nn.Sequential()
model:add(nn.TemporalConvolution(inputFrameSize, outputFrameSize, kW, [dW]))
model:add(nn.ReLU())
model:add(nn.TemporalMaxPooling(kW2, [dW2])
...
criterion = nn.BCECriterion()
...
が、次の機能は動作しません。/
TemporalConvolution(512,1,3,1)
ReLU())
TemporalMaxPooling(3, 1)
エラー:2D or 3D(batch mode) tensor expected
がスローされます。
data = data:resize(1, 100, 512)
をしかし、これはエラーをスローします:結果として私はネットに渡す前にdata
を再構築しようとしたinvalid input frame size
。
私はエラーがデータの形状に関係していること CONVネットへとパラメータ化あまりにも当然の来るのを見ることができます。私はさらにthis post hereと混同されています。inputFrameSize
がTemporalConvolution
の場合は、10
ではなく、512
に設定する必要があります。
1D conv netを構築する方法については、どのような指針も認められます。
P.S.私はlogisticRegression
モデルでスクリプトをテストしましたが、それは実行されるので、問題は純粋にconv netアーキテクチャ/それに入ってくるデータの形になります。