时间序列推理模型中这个错误的根源是什么

问题描述 投票:0回答:1

问题:我创建了编码器-解码器模型来预测时间序列。模型训练得很好,但我与推理模型中的错误作斗争,我不知道如何解决它:

警告:tensorflow:Keras 正在类似数组上进行训练/拟合/评估 数据。 Keras 可能未针对此格式进行优化,因此如果您的输入 TensorFlow I/O 支持的数据格式 (https://github.com/tensorflow/io)我们建议使用它来加载 相反,数据集。

TypeError: int() 参数必须是字符串、a 类似字节的对象或实数,而不是“NoneType”

Data:有 2 个输入:input1(编码器)- 多步单变量序列,input2(解码器)- 多步单变量序列。两个输入都用于训练,而仅输入 2 用于推理。我的输出是多步单变量序列。

型号

N = 32
encoder_inputs = KL.Input(shape=(n_past, n_feat1))
encoder = KL.LSTM(N, return_state=True, return_sequences=False)  
encoder_outputs, state_h, state_c = encoder(encoder_inputs)
enc_states = [state_h, state_c]
decoder_inputs = KL.Input(shape=(n_past, n_feat2))
decoder_lstm = KL.LSTM(N, return_sequences=True, return_state=False)
decoder_output = decoder_lstm(decoder_inputs, initial_state=enc_states)
dense1 = KL.TimeDistributed(KL.Dense(N, activation='relu'))
dense1_output = dense1(decoder_output)
dense2 = KL.TimeDistributed(KL.Dense(1))
out = dense2(dense1_output)
model = keras.models.Model([encoder_inputs, decoder_inputs], out)

decoder_state_input_h = KL.Input(shape=(N,))
decoder_state_input_c = KL.Input(shape=(N,))
decoder_states_inputs = [decoder_state_input_h, decoder_state_input_c]
decoder_outputs = decoder_lstm(decoder_inputs, initial_state=decoder_states_inputs)
out = dense1(decoder_outputs)
out = dense2(out)
inf_model = keras.models.Model([decoder_inputs]+decoder_states_inputs, out)

错误是由 :

创建的
<compile and fit training model> 
inf_model.predict([val_x[1]] + enc_states)

其中 val_x = [enc_input, dec_input]。 enc_states 是来自 Keras 的 2 个张量的列表(例如 ),而 dec_input 是形状为 (14284, 24, 6) 的数组。

型号总结: enter image description here

添加了额外的错误详细信息 enter image description here

keras inference encoder-decoder
1个回答
0
投票

错误原因

我传递了

state_h
state_c
,它们是符号张量。我需要的是首先使用编码器模型计算它们。

© www.soinside.com 2019 - 2024. All rights reserved.