用python写一段代码,使用Keras框架,实现cnn过程,输入为正弦函数
时间: 2024-02-25 14:52:07 浏览: 22
以下是使用Keras框架实现CNN过程,输入为正弦函数的Python代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
from keras.models import Sequential
from keras.layers import Dense, Flatten, Conv1D, MaxPooling1D
# 生成正弦函数数据
x = np.linspace(0, 100, 1000)
y = np.sin(x)
# 将数据转换为卷积神经网络需要的格式
X = np.zeros((len(x), 10))
for i in range(len(x)):
for j in range(10):
X[i][j] = y[(i+j)%len(x)]
X = np.reshape(X, (X.shape[0], X.shape[1], 1))
# 构建卷积神经网络模型
model = Sequential()
model.add(Conv1D(filters=32, kernel_size=3, activation='relu', input_shape=(10,1)))
model.add(MaxPooling1D(pool_size=2))
model.add(Flatten())
model.add(Dense(100, activation='relu'))
model.add(Dense(1, activation='linear'))
# 编译模型并训练
model.compile(loss='mse', optimizer='adam')
model.fit(X, y, epochs=100, batch_size=32)
# 预测并可视化结果
y_pred = model.predict(X)
plt.plot(x, y, label='true')
plt.plot(x, y_pred, label='predict')
plt.legend()
plt.show()
```
代码中首先生成了一个正弦函数的数据,然后将数据转换为卷积神经网络需要的格式。接着构建了一个简单的卷积神经网络模型,包含一个卷积层、一个池化层、一个全连接层和一个输出层。然后编译模型并训练,最后使用训练好的模型预测并可视化结果。