举一个用pytorch定义网络结构的例子
时间: 2024-02-28 16:26:29 浏览: 73
当然,可以举出一个用pytorch定义网络结构的例子啦。比如,我们可以定义一个简单的卷积神经网络来对图像进行分类。代码如下:
```
import torch.nn as nn
class SimpleCNN(nn.Module):
def __init__(self):
super(SimpleCNN, self).__init__()
# 定义卷积层
self.conv1 = nn.Conv2d(3, 16, 3, padding=1) # 输入3通道图像,输出16个feature map
self.conv2 = nn.Conv2d(16, 32, 3, padding=1) # 输入16个feature map,输出32个feature map
# 定义池化层
self.pool = nn.MaxPool2d(2, 2)
# 定义全连接层
self.fc1 = nn.Linear(32 * 16 * 16, 64) # 输入32个feature map,得到一个长度为16*16*32的向量,输出64维特征
self.fc2 = nn.Linear(64, 10) # 输出10个类别的概率分布
def forward(self, x):
x = nn.functional.relu(self.conv1(x))
x = self.pool(x)
x = nn.functional.relu(self.conv2(x))
x = self.pool(x)
x = x.view(-1, 32 * 16 * 16)
x = nn.functional.relu(self.fc1(x))
x = self.fc2(x)
return x
```
这是一个简单的卷积神经网络,我们定义了两个卷积层、两个池化层和两个全连接层,通过PyTorch的Module类来封装网络结构。在forward函数中,我们按定义的网络结构进行计算,最后输出10个类别的概率分布。
阅读全文