我正在尝试合并来自两个模型的输出,并使用 keras 顺序模型将它们作为第三个模型的输入。型号 1 :
inputs1 = Input(shape=(750,))
x = Dense(500, activation='relu')(inputs1)
x = Dense(100, activation='relu')(x)
Run Code Online (Sandbox Code Playgroud)
型号 1 :
inputs2 = Input(shape=(750,))
y = Dense(500, activation='relu')(inputs2)
y = Dense(100, activation='relu')(y)
Run Code Online (Sandbox Code Playgroud)
型号3:
merged = Concatenate([x, y])
final_model = Sequential()
final_model.add(merged)
final_model.add(Dense(100, activation='relu'))
final_model.add(Dense(3, activation='softmax'))
Run Code Online (Sandbox Code Playgroud)
到这里为止,我的理解是,两个模型的输出作为 x 和 y 被合并并作为输入给第三个模型。但是当我适应这一切时,
module3.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])
module3.fit([in1, in2], np_res_array)
Run Code Online (Sandbox Code Playgroud)
in1 和 in2 是两个维度为 10000*750 的 numpy ndarray,其中包含我的训练数据,np_res_array 是相应的目标。
这给了我错误,因为 'list' 对象没有属性 'shape'据了解,这就是我们向模型提供多个输入的方式,但这个错误是什么?我该如何解决?
我目前有一个用于时间序列预测的 RNN 模型。它使用最后 96 个时间步长的 3 个输入特征“值”、“温度”和“一天中的小时”来预测特征“值”的接下来 96 个时间步长。
在这里您可以看到它的架构:
这里有当前的代码:
#Import modules
import pandas as pd
import numpy as np
import tensorflow as tf
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error
from tensorflow import keras
# Define the parameters of the RNN and the training
epochs = 1
batch_size = 50
steps_backwards = 96
steps_forward = 96
split_fraction_trainingData = 0.70
split_fraction_validatinData = 0.90
randomSeedNumber = 50
#Read dataset
df = pd.read_csv('C:/Users/Desktop/TestData.csv', sep=';', header=0, low_memory=False, infer_datetime_format=True, parse_dates={'datetime':[0]}, index_col=['datetime'])
# …Run Code Online (Sandbox Code Playgroud) python time-series keras tensorflow recurrent-neural-network