Python / Keras - Criação de uma chamada de retorno com uma previsão para cada época

votos
4

Estou usando Keras de prever uma série de tempo. Como padrão Eu estou usando 20 épocas. Quero saber o que fez minha rede neural prever para cada uma das 20 épocas.

Usando model.predict Estou ficando apenas uma previsão entre todas as épocas (não sei como Keras selecioná-lo). Quero todas as previsões, ou pelo menos os 10 melhores.

De acordo com a resposta anterior que eu tenho, eu deveria calcular as previsões após cada época formação através da implementação de um retorno de chamada apropriada por subclasses Callback()e chamando prever no modelo dentro da on_epoch_endfunção.

Bem, a teoria parece em forma, mas estou com problemas para codificar isso. Ninguém seria capaz de dar um exemplo de código sobre isso?

Não tenho certeza como implementar a Callback()subclasse e nem como misturar isso com o model.predictdentro de uma on_epoch_end função.

Sua ajuda será muito apreciada :)


EDITAR

Bem, eu evoluiu um pouco. Descobriu como criar a subclasse e como vinculá-lo ao model.predict. No entanto, estou queimando meu cérebro sobre como criar uma lista com todas as previsões. Abaixo está o meu código atual:

#Creating a Callback subclass that stores each epoch prediction
class prediction_history(Callback):
    def on_epoch_end(self, epoch, logs={}):
        self.predhis=(model.predict(predictor_train))

#Calling the subclass
predictions=prediction_history()

#Executing the model.fit of the neural network
model.fit(X=predictor_train, y=target_train, nb_epoch=2, batch_size=batch,validation_split=0.1,callbacks=[predictions]) 

#Printing the prediction history
print predictions.predhis

No entanto, tudo o que eu estou ficando com que é uma lista de previsões da última época (mesmo efeito que model.predict impressão (predictor_train)).

A questão agora é: Como posso adaptar o meu código para que ele contribui para predhis as previsões de cada uma das épocas?

Publicado 27/04/2016 em 15:26
fonte usuário
Em outras línguas...                            


1 respostas

votos
6

Você está substituindo a previsão para cada época, é por isso que não funciona. Gostaria de fazê-lo como este:

class prediction_history(Callback):
    def __init__(self):
        self.predhis = []
    def on_epoch_end(self, epoch, logs={}):
        self.predhis.append(model.predict(predictor_train))

Desta forma self.predhis é agora uma lista e cada previsão é acrescentada à lista no final de cada época.

Respondeu 27/04/2016 em 21:57
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more