帮我用tensorflow2.12.0写cnn代码,用于拟合两组数据,要有测试后的拟合曲线图形输出
时间: 2024-05-10 08:14:17 浏览: 93
好的,下面是一个用TensorFlow 2.2.0编写的CNN代码,用于拟合两组数据,并输出测试后的拟合曲线图形。
```python
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
# 数据准备
x = np.linspace(-1, 1, 100)
y1 = 2 * x + np.random.randn(*x.shape) * 0.4
y2 = 3 * x + np.random.randn(*x.shape) * 0.2
# 将数据合并
x_train = np.concatenate((x, x))
y_train = np.concatenate((y1, y2))
# 数据可视化
plt.scatter(x_train, y_train)
plt.show()
# 构建模型
model = tf.keras.Sequential([
tf.keras.layers.Dense(units=1, input_shape=(1,)),
tf.keras.layers.Dense(units=16, activation='relu'),
tf.keras.layers.Dense(units=1)
])
# 编译模型
model.compile(optimizer=tf.keras.optimizers.Adam(0.001),
loss='mse')
# 训练模型
history = model.fit(x_train, y_train, epochs=100)
# 测试模型
x_test = np.linspace(-1, 1, 100)
y_pred = model.predict(x_test)
# 可视化结果
plt.scatter(x_train, y_train)
plt.plot(x_test, y_pred, 'r')
plt.show()
```
这个代码使用了一个包含三个层的神经网络,其中第一层是一个输入层,第二层是一个具有ReLU激活函数的全连接层,第三层是一个输出层。我们使用Adam优化器和均方误差(MSE)损失函数来编译模型。然后,我们将训练数据输入到模型中进行训练,并在训练完毕后使用测试数据进行预测并可视化结果。
注意:由于TensorFlow 2.2.0是一个比较旧的版本,如果您的环境中已经安装了TensorFlow 2.12.0,那么您需要根据您的实际情况修改相应的代码。
阅读全文