带链条的多层RNN(LSTM)

时间:2017-05-19 13:23:37

标签: lstm multi-layer chainer

我现在可以使用Chainer创建和教授单层rnn-s,但是当我尝试扩展网络时遇到错误。 这是我的代码,我注释掉了2.隐藏层部分,所以这应该作为单层网络运行

#Regression
class Regression(Chain):
    def __init__(self, predictor):
        super(Regression, self).__init__(predictor=predictor)
    def __call__(self, x, t):
        y = self.predictor(x)
        loss = F.mean_squared_error(y, t)
        report({'loss': loss}, self)
        return loss
        #return loss
#%%
#RNN
class RNN(Chain):
    def __init__(self):
        super(RNN, self).__init__(
            lstm=L.LSTM(12, 50),  #
          #  lstm2=L.LSTM(100, 100),
            out=L.Linear(50, 1),  #
        )

    def reset_state(self):
        self.lstm.reset_state()
        #self.lstm2.reset_state()

    def __call__(self, x):
        h = self.lstm(x)
      #  h2 = self.lstm(h)
        y = self.out(h2)
        return y

错误: unindent与任何外部缩进级别都不匹配 在行:h2 = self.lstm(h)

Mi做错了什么?

1 个答案:

答案 0 :(得分:0)

检查是否已将标签与空格混合。更好的是,转到IDE并使标签自动插入空格。否则,此代码运行正常(在导入所有内容后)