首页 > 其他分享 >神经网络包nn和优化器optm

神经网络包nn和优化器optm

时间:2024-02-07 18:22:36浏览次数:17  
标签:optm nn self 1350 神经网络 print size

torch.nn是专门为神经网络设计的模块化接口。nn构建于 Autograd之上,可用来定义和运行神经网络。 这里我们主要介绍几个一些常用的类

除了nn别名以外,我们还引用了nn.functional,这个包中包含了神经网络中使用的一些常用函数,这些函数的特点是,不具有可学习的参数(如ReLU,pool,DropOut等),这些函数可以放在构造函数中,也可以不放,但是这里建议不放。

一般情况下我们会将nn.functional 设置为大写的F,这样缩写方便调用

import torch.nn.functional as F

定义一个网络

PyTorch中已经为我们准备好了现成的网络模型,只要继承nn.Module,并实现它的forward方法,PyTorch会根据autograd,自动实现backward函数,在forward函数中可使用任何tensor支持的函数,还可以使用if、for循环、print、log等Python语法,写法和标准的Python写法一致。

class Net(nn.Module):
    def __init__(self):
        # nn.Module子类的函数必须在构造函数中执行父类的构造函数
        super(Net, self).__init__()
        
        # 卷积层 '1'表示输入图片为单通道, '6'表示输出通道数,'3'表示卷积核为3*3
        self.conv1 = nn.Conv2d(1, 6, 3) 
        #线性层,输入1350个特征,输出10个特征
        self.fc1   = nn.Linear(1350, 10)  #这里的1350是如何计算的呢?这就要看后面的forward函数
    #正向传播 
    def forward(self, x): 
        print(x.size()) # 结果:[1, 1, 32, 32]
        # 卷积 -> 激活 -> 池化 
        x = self.conv1(x) #根据卷积的尺寸计算公式,计算结果是30,具体计算公式后面第二章第四节 卷积神经网络 有详细介绍。
        x = F.relu(x)
        print(x.size()) # 结果:[1, 6, 30, 30]
        x = F.max_pool2d(x, (2, 2)) #我们使用池化层,计算结果是15
        x = F.relu(x)
        print(x.size()) # 结果:[1, 6, 15, 15]
        # reshape,‘-1’表示自适应
        #这里做的就是压扁的操作 就是把后面的[1, 6, 15, 15]压扁,变为 [1, 1350]
        x = x.view(x.size()[0], -1) 
        print(x.size()) # 这里就是fc1层的的输入1350 
        x = self.fc1(x)        
        return x

net = Net()
print(net)

标签:optm,nn,self,1350,神经网络,print,size
From: https://www.cnblogs.com/OfflineBoy/p/18011172

相关文章

  • MPNN论文阅读笔记
    arXiv:1704.01212v2[cs.LG]12Jun2017MPNN消息传递神经网络,专为图数据设计其前向传播可划分为两个阶段:消息传递与读出消息传播阶段如下:Mt是t时刻的消息函数,Ut为t时刻的节点更新函数,evw是边vw的特征,htv是顶点v在t时刻的hiddenfeature,h0v则为最初的节点特征,经过消息的多次......
  • AtCoder Beginner Contest 339
    AtCoderBeginnerContest339A-TLD签到B-Langton'sTakahashi发现步数和网格范围都不大,直接模拟即可C-PerfectBus题目的合法性在于不能为负数,那么初始人数就有了二分性。二分的找出初始的最小人数,然后跑一边即可#include<bits/stdc++.h>usingnamespacestd;#d......
  • 【译】介绍 MSTest Runner – CLI、Visual Studio 等
    原文|AmauryLevé,MarcoRossignoli,JakubJareš翻译|郑子铭我们很高兴推出MSTestrunner,这是一个用于MSTest测试的新型轻量级运行程序。这个新的运行程序使测试更加便携和可靠,使测试运行得更快,并且可扩展,为您提供点菜测试体验,以添加成功所需的工具。它是什么?MSTes......
  • Japan Registry Services (JPRS) Programming Contest 2024 (AtCoder Beginner Contes
    JapanRegistryServices(JPRS)ProgrammingContest2024(AtCoderBeginnerContest339)A-TLD代码:#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;usingpii=pair<ll,ll>;#definefifirst#definesesecondusingi128=__......
  • MySQL存储引擎-InnoDB数据页
    MySQL存储引擎-InnoDB数据页MySQL一个数据页默认16kb,MySQL为了不同目的涉及了很多类型的数据页,如undo页、ChangeBuffer页等等。我们这里只关心存放数据的页,即索引(INDEX)页。一个数据页的存储空间大致被划分为7部分,分别为:1、FIleHeader 文件头 38字节2、PageHeader页面......
  • Oracle~ORA-12505, TNS:listener does not currently know of SID given in connect d
    问题描述ORA-12505,TNS:listenerdoesnotcurrentlyknowofSIDgiveninconnectdescriptorORA-12505:TNS:监听程序当前无法识别连接描述符中所给出的SID问题原因说明给到的sid有误,很有可能就是服务名和SID混淆使用。首先了解数据库url的写法有两种:(1)监听SID,表示SID......
  • [ Go] GoRoutines and Channels
    AgoroutineistheGowayofsuingthreads,weopenagoroutinejustbyinvokinganyfunctionwithagoprefix.gofunctionCall()Goroutinescancommunicatethroughchannels,anspecialtypeofvariable,achannelcontainsavalueofanykind,aroutinec......
  • AtCoder Beginner Contest 339
    A找到最后一个点的位置,使用substr函数。B模拟,记得边界是循环的。C容易发现答案为:\[\min_p(\sum_{i=1}^{p}a_i)+\sum_{i=1}^{n}a_i\]D由于不同状态数只有\(60^4\),容易搜索,但是我去吃饭了,所以没能快速切掉。E有一个显然的dp,然后考虑每一个\(a_i\)可以转移到\(a_j\)......
  • R语言逻辑回归、决策树、随机森林、神经网络预测患者心脏病数据混淆矩阵可视化
    全文链接:https://tecdat.cn/?p=33760原文出处:拓端数据部落公众号概述:众所周知,心脏疾病是目前全球最主要的死因。开发一个能够预测患者心脏疾病存在的计算系统将显著降低死亡率并大幅降低医疗保健成本。机器学习在全球许多领域中被广泛应用,尤其在医疗行业中越来越受欢迎。机器......
  • MySQL存储引擎-InnoDB行格式
    MySQL存储引擎-InnoDB行格式mysql作为一款主流的关系型数据库,是以记录为单位向表中插入数据的。目前为止,Innodb共支持COMPACT、REDUNDANT、DYNAMIC、和COMMPRESSED四种行格式。在MySQL5.7及以上版本,默认采用DYNAMIC格式。DYNAMIC与COMPACT格式基本一致,下文中我们会介绍区别。因......