나는 시퀀스 데이터의 회귀를 수행하는 LSTM 네트워크를 구축했습니다. 숨겨진 레이어 (LSTM 레이어)의 활성화를 시도하면 0을 반환합니다. 네트워크에는 하나의 숨겨진 레이어, 하나의 입력 및 하나의 출력 레이어 만 있습니다.pybrain LSTM 레이어 활성화가 0입니다
다음 스 니펫으로 숨겨진 레이어 값을 가져 오려고합니다.
print net.activate(data)
print net['in'].outputbuffer[net['in'].offset]
print net['hidden0'].outputbuffer[net['hidden0'].offset]
왜 그런가? 아래 코드는 더 완벽한 코드입니다.
RopewayIn = RopewayOverallData[:-1, :]
RopewayOut = RopewayOverallData[1:, :]
ds.newSequence()
for i in range(noDataFrames):
ds.appendLinked([RopewayIn[i,0],RopewayIn[i,1], RopewayIn[i,2], RopewayIn[i,3], RopewayIn[i,4], RopewayIn[i,5], RopewayIn[i,6], RopewayIn[i,7], RopewayIn[i,8], RopewayIn[i,9]],
[RopewayOut[i,0],RopewayOut[i,1], RopewayOut[i,2], RopewayOut[i,3], RopewayOut[i,4], RopewayOut[i,5], RopewayOut[i,6], RopewayOut[i,7], RopewayOut[i,8], RopewayOut[i,9]])
net = buildNetwork(10,20,10, hiddenclass=LSTMLayer,outclass=LinearLayer, bias=True, recurrent=True)
trainer = RPropMinusTrainer(net, dataset=ds, verbose=True, weightdecay=0.01)
for i in range(10001):
trainer.trainEpochs(2)
print net.activate(RopewayOverallData[0,4])
print net['in'].outputbuffer[net['in'].offset]
print net['hidden0'].outputbuffer[net['hidden0'].offset
몇 가지 정보가 도움이 될 것입니다. 이것이 더 큰 코드 섹션은 무엇입니까? 네트워크가 작동하고 있으며 숨겨진 레이어 활성화를 인쇄하는 것이 문제입니다. – rossdavidh
네트워크가 작동하지만 숨겨진 레이어의 활성화를 인쇄하면 0으로 처리됩니다. 이 코드에서 – dnth