pytorch卷积网络
时间: 2023-09-26 20:12:13 浏览: 97
PyTorch是一个流行的深度学习框架,支持构建卷积神经网络(Convolutional Neural Networks, CNNs)。下面是一个简单的示例,展示如何使用PyTorch构建一个卷积网络:
```python
import torch
import torch.nn as nn
# 定义卷积网络模型
class ConvNet(nn.Module):
def __init__(self):
super(ConvNet, self).__init__()
# 定义卷积层和池化层
self.conv1 = nn.Conv2d(3, 16, kernel_size=3, stride=1, padding=1)
self.relu = nn.ReLU()
self.pool = nn.MaxPool2d(kernel_size=2, stride=2)
# 定义全连接层
self.fc1 = nn.Linear(16 * 28 * 28, 10)
def forward(self, x):
x = self.conv1(x)
x = self.relu(x)
x = self.pool(x)
x = x.view(-1, 16 * 28 * 28)
x = self.fc1(x)
return x
# 创建卷积网络实例
model = ConvNet()
# 加载输入数据
input_data = torch.randn(1, 3, 32, 32)
# 运行模型
output = model(input_data)
print(output.shape)
```
在上面的示例中,我们定义了一个名为`ConvNet`的卷积网络模型。模型包含一个卷积层、激活函数层、池化层和一个全连接层。在`forward`方法中,我们按照卷积-激活-池化的顺序进行前向传播,并通过`view`方法将卷积层的输出展平,以匹配全连接层的输入尺寸。
然后,我们创建了一个`ConvNet`实例,并加载了一个随机生成的输入数据。最后,我们通过模型将输入数据传递,得到模型的输出。输出的形状是`(1, 10)`,表示有1个样本和10个类别。
阅读全文