写一个1D CNN卷积神经网络代码
时间: 2023-10-13 07:06:26 浏览: 133
PythonCNN卷积神经网络代码实现
5星 · 资源好评率100%
当然,下面是一个使用PyTorch库实现的1D CNN卷积神经网络的代码示例:
```python
import torch
import torch.nn as nn
class CNN(nn.Module):
def __init__(self, input_size, num_classes):
super(CNN, self).__init__()
self.conv1 = nn.Conv1d(in_channels=1, out_channels=16, kernel_size=3, stride=1, padding=1)
self.relu1 = nn.ReLU()
self.pool1 = nn.MaxPool1d(kernel_size=2)
self.conv2 = nn.Conv1d(in_channels=16, out_channels=32, kernel_size=3, stride=1, padding=1)
self.relu2 = nn.ReLU()
self.pool2 = nn.MaxPool1d(kernel_size=2)
self.fc = nn.Linear(32 * (input_size // 4), num_classes)
def forward(self, x):
x = self.conv1(x)
x = self.relu1(x)
x = self.pool1(x)
x = self.conv2(x)
x = self.relu2(x)
x = self.pool2(x)
x = x.view(x.size(0), -1)
x = self.fc(x)
return x
# 创建模型实例
input_size = 100
num_classes = 10
model = CNN(input_size, num_classes)
# 构造随机输入数据
batch_size = 16
sequence_length = 100
input_data = torch.randn(batch_size, 1, sequence_length)
# 前向传播
output = model(input_data)
print("输出大小: ", output.size())
```
在上述代码中,我们定义了一个名为CNN的模型类,其中包含两个卷积层和一个全连接层。在前向传播过程中,输入数据首先通过卷积层、ReLU激活函数和最大池化层进行特征提取和下采样,然后通过全连接层进行分类预测。最后,我们使用随机生成的输入数据进行了一次前向传播,并打印了输出的大小。
请注意,上述代码仅提供了一个简单的示例,并不一定适用于所有情况。你可以根据自己的需求进行调整和修改。
阅读全文