我試圖通過Torch
參數化1D
conv網絡。瞭解火炬中的時間卷積
比方說,我有一個名爲Tensor
那data
是尺寸10 x 512
的,在有10
行和512
列。因此,我想實現一個TemporalConvolution
層的單個3層堆棧,然後是ReLU
,然後是TemporalMaxPooling
。我的分類問題是二元的,並且有一個相應的labels
張量,它是10 x 1
。讓我們假設已經寫入feval
來遍歷data
和labels
中的每個row
。
這樣,問題是構造一個網可以從512
列映射至1
柱
從documentation改編:
...
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 = data:resize(1, 100, 512)
但這引發錯誤:invalid input frame size
。
我可以看到錯誤涉及形狀數據進入卷積網,當然參數化過的。我被this post here弄得更加困惑,這似乎暗示的TemporalConvolution
應該設置爲10
而不是512
。
任何指導將不勝感激,至於如何建立1D conv網。
P.S.我已經用logisticRegression
模型測試了腳本,並且運行該模型,所以問題純粹與conv net架構/數據的形狀有關。