Я построил сеть LSTM для выполнения регрессии данных последовательности. Когда я пытаюсь получить активацию скрытого слоя (который является слоем LSTM), он возвращает ноль. Сеть имеет только один скрытый слой, один вход и один выходной уровень.Активация для пирамида Уровень LSTM равен нулю
Я пытаюсь получить значение скрытого слоя с помощью следующего фрагмента.
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
сеть работает, но когда я распечатываю активацию для скрытого слоя, она дает строку нулей. – dnth