cnn结构pytorch代码示例
时间: 2024-09-11 17:00:56 浏览: 39
卷积神经网络(Convolutional Neural Networks, CNN)是一种深度学习模型,广泛应用于图像识别、视频分析等任务。下面是一个使用PyTorch框架构建简单CNN模型的基本代码示例:
```python
import torch
import torch.nn as nn
import torch.nn.functional as F
# 定义一个简单的CNN模型
class SimpleCNN(nn.Module):
def __init__(self):
super(SimpleCNN, self).__init__()
# 定义第一层卷积层,使用3个3x3的卷积核,输出通道数为16
self.conv1 = nn.Conv2d(in_channels=1, out_channels=16, kernel_size=3, padding=1)
# 定义第二层卷积层,使用64个3x3的卷积核
self.conv2 = nn.Conv2d(in_channels=16, out_channels=64, kernel_size=3, padding=1)
# 定义一个最大池化层,池化窗口大小为2x2
self.pool = nn.MaxPool2d(kernel_size=2, stride=2)
# 定义一个全连接层,输入特征数为64*7*7,输出10个类别
self.fc = nn.Linear(64*7*7, 10)
def forward(self, x):
# 通过第一个卷积层后接ReLU激活函数
x = F.relu(self.conv1(x))
# 应用最大池化层
x = self.pool(x)
# 通过第二个卷积层后接ReLU激活函数
x = F.relu(self.conv2(x))
# 再次应用最大池化层
x = self.pool(x)
# 将数据展平以便输入全连接层
x = x.view(-1, 64*7*7)
# 通过全连接层得到最终的输出结果
x = self.fc(x)
return x
# 实例化模型
model = SimpleCNN()
# 打印模型结构
print(model)
```
这段代码定义了一个简单的CNN模型,包括两个卷积层和一个全连接层。这个模型可以用于处理28x28像素的灰度图像,并将其分为10个类别。注意,在实际应用中,模型的结构和参数需要根据具体任务进行调整和优化。
阅读全文