首页 > 其他分享 >Pytorch学习笔记--搭建神经网络以及Sequential的使用

Pytorch学习笔记--搭建神经网络以及Sequential的使用

时间:2024-09-29 18:20:26浏览次数:11  
标签:nn -- 32 self MaxPool2d Pytorch Sequential import Conv2d

首先,搭建一个如下图所示的神经网络:

 分析图片,inputs输入图片的inchannels=3,尺寸是32*32,经过kernel_size=5的卷积操作后out_channels=32,尺寸32*32,套用下方公式可算出padding=2(默认dilation=1,stride=1):

self.conv1=Conv2d(3,32,5,padding=2)

 

 之后再进行池化操作Max-pooling,kernel_size=2:

        self.maxpool1=MaxPool2d(kernel_size=2)

再依此类推,相关代码如下:

from fsspec.registry import s3_msg
from sympy.tensor.array.arrayop import Flatten
from torch import nn
from torch.nn import Conv2d, MaxPool2d


class Aaxxx(nn.Module):
    def __init__(self):      #self 代表了类 Aaxxx 的当前实例,使得该实例能够存储和使用定义在类中的各种属性和方法。
        super(Aaxxx,self).__init__()
        self.conv1=Conv2d(3,32,5,padding=2)
        self.maxpool1=MaxPool2d(kernel_size=2)
        self.conv2=Conv2d(32,32,5,padding=2)
        self.maxpool2=MaxPool2d(2)
        self.conv3=Conv2d(32,64,5,padding=2)
        self.maxpool3=MaxPool2d(2)
        self.flatten=nn.Flatten()
        self.linear1=nn.Linear(1024,64)
        self.linear2=nn.Linear(64,10)

    def forward(self,x):
        x=self.conv1(x)
        x=self.maxpool1(x)
        x=self.conv2(x)
        x=self.maxpool2(x)
        x=self.conv3(x)
        x=self.maxpool3(x)
        x=self.flatten(x)
        x=self.linear1(x)
        x=self.linear2(x)
        return x

aa=Aaxxx()

 若是使用Sequential之后,代码便可以封装起来,更加简洁:

from fsspec.registry import s3_msg
from sympy.tensor.array.arrayop import Flatten
from torch import nn
from torch.nn import Conv2d, MaxPool2d, Sequential


class Aaxxx(nn.Module):
    def __init__(self):      #self 代表了类 Aaxxx 的当前实例,使得该实例能够存储和使用定义在类中的各种属性和方法。
        super(Aaxxx,self).__init__()
        self.model=Sequential(
            Conv2d(3, 32, 5, padding=2),
            MaxPool2d(kernel_size=2),
            Conv2d(32, 32, 5, padding=2),
            MaxPool2d(2),
            Conv2d(32, 64, 5, padding=2),
            MaxPool2d(2),
            nn.Flatten(),
            nn.Linear(1024, 64),
            nn.Linear(64, 10)
        )
    def forward(self,x):
        x=self.model(x)
        return x

aa=Aaxxx()
print(aa)

模型输出结果为:

 再使用Tensorboard查看

writer.add_graph(aa,torch.ones(64,3,32,32))

 

再点击模型的矩形框,可以放大展开,并详细查看各种参数:

 学习内容来自b站小土堆,仅用作记录学习,切勿商用 。

 

标签:nn,--,32,self,MaxPool2d,Pytorch,Sequential,import,Conv2d
From: https://blog.csdn.net/aaaax__/article/details/142640615

相关文章

  • AVL树(平衡二叉树)的介绍以及相关构建
    欢迎光临:      羑悻的小杀马特-CSDN博客目录一·AVL树的介绍:二·AVL树的实现:1·结构框架:2·节点的插入: 旋转: 2·1左单旋:2.1.1左单旋介绍及步骤:2.1.2左单旋代码实现:2.1.3左单旋技巧总结: 2·2右单旋:2.2.1右单旋介绍及步骤:2.2.2右单旋代码实现:2.......
  • 开源模型应用落地-LangChain实用小技巧-文档分割器-自定义文档分割器(十三)
    一、前言  在LangChain框架中,文档分割器是一种将大段文本拆分成较小块或片段的算法或方法。其目标是创建可单独处理的可管理的片段,这在处理大型文档或数据集时通常是必要的。  而自定义文档分割器可以根据特定的需求和数据类型进行定制和配置,以便更好地适应应用程......
  • C++学习:stack queue模拟
    stack和queue可以复用其他容器的函数如dequevector这两个是空间适配器,所以都没有迭代器一:stack模拟namespacebit{ template<classT,classContainer=deque<T>> classstack { public: voidpush(constT&x) { _con.push_back(x); } voidpop() ......
  • C++学习:模版进阶:非类型模板参数 特化 分离编译
    目录一:非类型模版参数二:模版特化三:函数模版特化四:类模版特化一:全特化(将模板参数列表中所有的参数都确定化)二:偏特化(部分特化或更进一步限制)五:模版分离编译一:非类型模版参数非类型模版参数是在模版参数列表中,跟在模版参数后面的,就是用常量当参数(下面的n就是)templa......
  • jsp爱独居老人网站的设计与实现rig5u--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景随着社会老龄化的加剧,独居老人群体日益庞大,他们面临着生活孤独、健康监测不足、紧急求助困难等问题。为了改善独居老人的生活质量,提升......
  • jsp爱电影网站的设计与实现6nk0x(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景与意义随着互联网技术的飞速发展,网络娱乐已成为人们日常生活中不可或缺的一部分,其中在线观影因其便捷性、丰富性和互动性而备受青睐。......
  • 扫描线-学习笔记
    扫描线-学习笔记引言:扫描线算法用于解决给出多个矩形组成的图形求解其面积、周长等问题。时间复杂度常见为\(O(n\log_2^n)\)级别,空间复杂度略大于\(O(n)\),属于线段树的一种运用。一、求面积题目:P5490【模板】扫描线&矩形面积并求\(n\)个四边平行于坐标轴的矩形的面积......
  • redis 过期时间
     EXPIRE|Docshttps://redis.io/docs/latest/commands/expire/The EXPIRE commandsupportsasetofoptions:NX --SetexpiryonlywhenthekeyhasnoexpiryXX --SetexpiryonlywhenthekeyhasanexistingexpiryGT --Setexpiryonlywhenthenewex......
  • 奖金高达 110 万元,Spatial Joy 2024 全球 AR 应用开发大赛启动
       今年是AR应用开发大赛第三届,恰逢Rokid成立十周年,我们推出全新的大赛品牌“SpatialJoy”,引领开发者享受开发乐趣,为其打造充满挑战和惊喜的开发之旅,逐渐成为空间计算时代全球最大AR应用开发大赛。回顾大赛发展,Rokid于2022年9月第一次发起并主办了AR应用开发大赛,去年的第......
  • neo4j 统计多个节点之间关系总和的写法-包含多个collect合并成一个并去重操作
    在使用neo4j数据库时,会遇到计算与指定节点产生关联的数量统计需求,例如指定6个节点1,2,3,4,5,6需要找出与这6个节点中4个节点有关联的节点(要求排除这6个节点的数据)先看实现查询语句:MATCH(start:person_info)-[r1]-(n)-[r2]-(end:person_info)WHEREstart.persocountIdin['1......