阅读 125

pytorch入门—简单网络的搭建

pytorch入门—简单网络的搭建

被逼无奈,越来越多公司需要SLAM和深度学习或者相机结合

技术分享图片

import torch
import torch.nn as nn
import torch.nn.functional as F#包含 torch.nn 库中所有函数


class Net(nn.Module):

    def __init__(self):
        super(Net, self).__init__()
        # 1 input image channel, 6 output channels, 5x5 square convolution 通道数就是上图中的切片数
        # kernel
        self.conv1 = nn.Conv2d(1, 6, 5)#输入1通道输出6通道 5*5的卷积核
        self.conv2 = nn.Conv2d(6, 16, 5)#输入6通道输出16通道 5*5的卷积核
        # an affine operation: y = Wx + b 这就是relu激活函数 输出结果为max(0,Wx + b)
        self.fc1 = nn.Linear(16 * 5 * 5, 120)  # 5*5 from image dimension 全连接层 输入为卷积和降采样(池化)后的图片 16通道 5*5大小
        self.fc2 = nn.Linear(120, 84)
        self.fc3 = nn.Linear(84, 10)#对应图片中的全连接层 也就是最后的那一部分

    def forward(self, x):
        # Max pooling over a (2, 2) window
        x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2)) #relu激活 然后进行池化
        # 如果池化平面二维度长度相同 则(2, 2)可以用 2 来替代 如下:
        x = F.max_pool2d(F.relu(self.conv2(x)), 2) #relu激活 然后进行池化
        x = torch.flatten(x, 1) # flatten all dimensions except the batch dimension 推平合并
        x = F.relu(self.fc1(x)) #relu激活
        x = F.relu(self.fc2(x)) #relu激活
        x = self.fc3(x) #relu激活
        return x
        #激活函数是用来加入非线性因素的,提高神经网络对模型的表达能力,解决线性模型所不能解决的问题。 激活函数是对原始数据进行相应的变换,以用同一个模型解决不同的问题。如果说网络是模板,则激活函数则是模板的特化。

net = Net()
print(net)

pytorch入门—简单网络的搭建

原文:https://www.cnblogs.com/chenlinchong/p/15011861.html


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐