如何使用回声状态网络模拟其正常行为?

时间:2019-05-16 12:12:19

标签: python neural-network recurrent-neural-network

我从电桥传感器中收集了一些数据。我的项目是关于使用esn通过传感器数据模拟桥梁的正常行为,从而使esn能够识别其健康问题。问题是,我不知道如何使用数据进行预测。我知道如何生成输出权重并获得带有测试输入的测试输出,但是它不是在预测不是吗?就像在我的项目中一样,没有测试数据,那么如何生成输出?

我认为如果一次生成一个输出并使用它来生成新的输入序列并重复该过程,那将是可能的。但这是行不通的。输出越来越大。

def generate_data(self):
    data=(self.inputSeq)[200:400,:]#its input sequence

    stateCollection=self.compute_statematrix(data,[],100)#its for collecting the states of the resevoir
    output=np.dot(self.outputWeights,stateCollection)
    data=output[0,-10:] #this is the container of the predicted data. I use the last ten to make a new sequence of input
    self.inp=data[-10:] #self.inp is curren input seq
    ttl=np.zeros(1+self.nInputUnits+self.nInternalUnits) #total state

    for i in range(100):
        self.internalState=self.plain_esn(0) #generate the internal state for current input
        ttl=np.hstack((1,self.inp,self.internalState))
        curout=np.dot(self.outputWeights,ttl.T) #I thought then I can generate the right output but no it doesn't
        data=np.append(data,curout)
        self.inp=data[-10:]

这是对Mackey-Glass数据集的测试。预测数据与nan一样大。 我希望有人能告诉我我错了。

0 个答案:

没有答案