### 更正, 真正的問題是 準備dataset 的定義弄錯了. ( batch, seq, feature ), 原來source 的寫法不完全正確, 在1D 可以work, 但改為 multivate 後就不對了.

 

在改成多維 output 之後, 就直接遇到這個問題, dimension 跑掉了?!

"unbatched 2-D input, hx and cx should also be 2-D but got (3-D, 3-D) tensors"

當batch =1 時遦會出錯, 就不是字面上的提到的2D-3D 問題, 其實是 input x 的dimension 不對了,

在training epoch loop 前

要將 x.size( )=[t, squence_length]  ==> [t, squence_length, 1] 即可

   x=x.unsqueeze(2)

   for (epoch):

          output = lstm(x)

       

但事情未完全成功, 

evalue 時又不同了?!, 在forward 內部要加

def forward(self, x):
    x=x.unsqueeze(2)

    hn,(h,c) = self.lstm(x, (h_0, c_0))

 

## 以上沒有完全理解程式的解法, 之後如果了解更多時, 更新錯誤.

#Input dimension 如果>1 不知是否還有其他問題.

 

arrow
arrow
    文章標籤
    LSTM inference unsequeeze
    全站熱搜

    cianfen 發表在 痞客邦 留言(0) 人氣()