2016-08-07 6 views
0

1D conv netのパラメータを設定しようとしています。トーチでの時間的畳み込みを理解する

のは、私はそれに10行と512列がある、寸法10 x 512であるTensorと呼ばれるdataがあるとしましょう。このように、TemporalConvolutionレイヤーの単一の3レイヤースタックを実装し、次にReLU、続いてTemporalMaxPoolingというレイヤーを実装したいと思います。私の分類問題はバイナリであり、対応するlabelsテンソルがあり、それは10 x 1です。すでにfevalと書かれており、それぞれrowdatalabelsの両方で繰り返すものとします。このように

、問題が1documentationから適応

まで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と混同されています。inputFrameSizeTemporalConvolutionの場合は、10ではなく、512に設定する必要があります。

1D conv netを構築する方法については、どのような指針も認められます。


P.S.私はlogisticRegressionモデルでスクリプトをテストしましたが、それは実行されるので、問題は純粋にconv netアーキテクチャ/それに入ってくるデータの形になります。

答えて

0

入力のseqlenではなくn_channelsの意味を誤解していると思います(例:2d-convlutionの場合は512 * 512 RGBイメージの場合、inputFrameSizeは512ではなく3にする必要があります)。

関連する問題