用CNN预测时序数据 tensorflow代码
时间: 2023-09-17 11:14:25 浏览: 97
以下是使用 CNN 对时序数据进行预测的 TensorFlow 代码示例:
```python
import tensorflow as tf
# 定义模型
def cnn_model():
model = tf.keras.Sequential([
# 卷积层
tf.keras.layers.Conv1D(filters=16, kernel_size=3, activation='relu', input_shape=(None, 1)),
# 池化层
tf.keras.layers.MaxPooling1D(pool_size=2),
# 多个卷积层和池化层
tf.keras.layers.Conv1D(filters=32, kernel_size=3, activation='relu'),
tf.keras.layers.MaxPooling1D(pool_size=2),
tf.keras.layers.Conv1D(filters=64, kernel_size=3, activation='relu'),
tf.keras.layers.MaxPooling1D(pool_size=2),
# 展平层
tf.keras.layers.Flatten(),
# 全连接层
tf.keras.layers.Dense(100, activation='relu'),
# 输出层
tf.keras.layers.Dense(1)
])
return model
# 加载数据
x_train = # 训练数据
y_train = # 训练标签
x_test = # 测试数据
y_test = # 测试标签
# 构建模型
model = cnn_model()
# 编译模型
model.compile(optimizer='adam',
loss='mse',
metrics=['mae'])
# 训练模型
history = model.fit(x_train, y_train, epochs=50, validation_data=(x_test, y_test))
# 评估模型
test_loss, test_mae = model.evaluate(x_test, y_test)
# 进行预测
predictions = model.predict(x_test)
```
在上述代码中,`cnn_model()` 函数定义了 CNN 模型的结构,包括卷积层、池化层、全连接层和输出层等。使用 `model.compile()` 函数编译模型,指定优化器、损失函数和评估指标。使用 `model.fit()` 函数对模型进行训练,指定训练数据、训练标签、迭代次数和验证集等参数。使用 `model.evaluate()` 函数评估模型的表现,使用 `model.predict()` 函数对测试集进行预测并输出预测结果。
阅读全文