cnn神经网络模型代码
时间: 2023-07-30 08:06:27 浏览: 63
以下是一个使用PyTorch实现的简单CNN模型的代码示例:
```python
import torch
import torch.nn as nn
import torch.nn.functional as F
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
# 卷积层1,输入通道数为1,输出通道数为6,卷积核大小为5x5
self.conv1 = nn.Conv2d(1, 6, 5)
# 池化层,池化核大小为2x2
self.pool = nn.MaxPool2d(2, 2)
# 卷积层2,输入通道数为6,输出通道数为16,卷积核大小为5x5
self.conv2 = nn.Conv2d(6, 16, 5)
# 全连接层1,输入大小为16*5*5,输出大小为120
self.fc1 = nn.Linear(16 * 5 * 5, 120)
# 全连接层2,输入大小为120,输出大小为84
self.fc2 = nn.Linear(120, 84)
# 输出层,输入大小为84,输出大小为10
self.fc3 = nn.Linear(84, 10)
def forward(self, x):
# 卷积层1 -> 激活函数 -> 池化层
x = self.pool(F.relu(self.conv1(x)))
# 卷积层2 -> 激活函数 -> 池化层
x = self.pool(F.relu(self.conv2(x)))
# 将特征图转换为一维向量
x = x.view(-1, 16 * 5 * 5)
# 全连接层1 -> 激活函数
x = F.relu(self.fc1(x))
# 全连接层2 -> 激活函数
x = F.relu(self.fc2(x))
# 输出层
x = self.fc3(x)
return x
# 实例化模型并输出
net = Net()
print(net)
```
这个模型包含两个卷积层、两个池化层、两个全连接层和一个输出层。在前向传播过程中,输入数据首先通过卷积层、激活函数和池化层进行特征提取,然后通过全连接层进行分类。
阅读全文