微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在训练和预测期间保存Keras RNN层状态的最佳方法是什么?

如何解决在训练和预测期间保存Keras RNN层状态的最佳方法是什么?

我有一个LSTM处理来自多个用户的无限事件流。因此,事件在到达时每次处理一个时间步。每个用户的行为可能有所不同,因此我需要记住该用户先前事件中LSTM的状态。这是我打算如何做的概述

    def LSTM_MODEL(kernel_sizes,input_shape,initial_state=None,):


inputs = Input(input_shape[1],input_shape[2])

L1 = LSTM(kernal_sizes[0],activation ='relu',return_sequences=True,kernel_regularizer=regularizers.l2(0.00),initial_state = initial_state[0])(inputs)
L2= LSTM(kernal_sizes[1],activation='relu',return_sequences=False,initial_state = initial_state[1])(L1)
L3 = RepeatVector(input_shape[1])(L2)
L4 = LSTM(kernal_sizes[1],activation = 'relu',return_sequences=True(L3)
L5 = LSTM(kernal_sizes[0],return_sequences=True)(L4)
output = Dense(input_shape[2])(L5)
          
existing_state = [L1.states,L2.states]

model = tf.keras.Model(inputs=input_chars,outputs=[output,existing_state])

当我致电model.fit时,如何在训练期间访问每个批次的状态?新事件到来时,我需要保留一些{user_id:prevIoUs_state}的字典,但是我不确定如何实现。

我曾经考虑过在训练过程中简单地使用有状态LSTM,但是在完成每个user_id的完整序列后,我仍然不得不在训练过程中重置状态,因为我的能力超出了单个批次。

指导将不胜感激!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。