我训练了一个 keras LSTM 模型来预测超过 6 个类别的时间序列人类活动。 X_train 中的每一行代表一帧(时间戳),window_size 为 32 帧,即一个活动的长度。此外,每行包含 36 个浮点值(特征)。这是模型的构建方式:
training_data_count = len(X_train) # 4519 training series
test_data_count = len(X_test) # 1197 test series
n_input = len(X_train[0][0])
n_hidden = 34
n_classes = 6
learning_rate = 0.0025
decay_rate = 0.02
lambda_loss_amount = 0.0015
training_epochs = 100
batch_size = 1024
model = keras.Sequential([
# relu activation
keras.layers.Dense(n_hidden, activation='relu',
kernel_initializer='random_normal',
bias_initializer='random_normal',
batch_input_shape=(batch_size, n_steps, n_input)
),
keras.layers.LSTM(n_hidden, return_sequences=True, unit_forget_bias=1.0),
keras.layers.LSTM(n_hidden, unit_forget_bias=1.0),
keras.layers.Dense(n_classes, kernel_initializer='random_normal',
bias_initializer='random_normal',
kernel_regularizer=keras.regularizers.l2(lambda_loss_amount),
bias_regularizer=keras.regularizers.l2(lambda_loss_amount),
activation='softmax'
)
])
模型保存为 model.h5
。我现在正在尝试加载模型并预测一个样本活动(在 X_val.txt 中,有 32 行和 36 列)。
model = load_model('model.h5', compile = True)
X_val = load_X(X_val.txt)
# Generate predictions
predictions = model.predict(X_val)
print(predictions)
预测失败
Input to reshape is a tensor with 1152 values, but the requested shape has 1179648
[[node sequential_1/dense_4/Tensordot/Reshape (defined at <ipython-input-25-8efbdd03d456>:14) ]] [Op:__inference_predict_function_17869]
如何解决重塑问题?