基础框架代码解释

自定义的,用法就是等于号后面的

out是自己定义的层啊

nn.ReLU()是构造了一个ReLU对象,并不是函数调用,而F.ReLU()是函数调用

这里大佬能说一下,为什么forward里面不能用nn.RELU()函数吗,我只知道是因为参数的问题,但不知道为什么

nn.ReLU不是一个函数,而是一个class

这里hidden(X)是Module父类下一个方法的变体,hidden(X)=hidden.call(X),表示把X作为输入传入该层

nn.ReLU是一个层结构,必须放在nn.Module中,F.relu是一个函数

回答前面:pytorch的这个nn.module不用自己定义后向,pytorch可以自己进行自动后向计算

不是得net.forward(X) 才算是调用forward函数吗 怎么直接net(X)也可以出来

这里net实例化MLP类后可以调用是因为MLP类继承了Moudle类中的__call__方法

这里为什么不是net.forwar(X)

这是python的一个语法糖,net()实际上调用net.call(),而__call__()调用了forward

看起来好象不符合python语法是因为,torch是个框架它有自己内部调用机制,你按它的要求填好空就行了

call__可以通过类名直接调用函数
net()继承Module类,而Module类的call会执行forword
通过内置函数__call
把实例化对象当成函数调用,但不知道为啥需要这么操作

这个类似于c++里面的函数重载,重载了()运算符,类似函数对象,也就是python里面的__call__()的作用

*args:接受不定数量的参数(参数就是层或者块)
调用父类的初始化函数
values,不是keys,keys是string

前面说的对,两个*才是dict
相当于block()调用了层里面的函数
关于为啥是字典形式;因为self._moudles是父类的属性,这个属性类型是OrderedDict()有序字典,这样添加层是将你的层嵌入到模型中,这也是为什么此处并没有重写forward函数
block是循环变量 block()是功能函数

关于为啥是字典形式;因为self._moudles是父类的属性,这个属性类型是OrderedDict()有序字典,这样添加层是将你的层嵌入到模型中,这也是为什么此处并没有重写forward函数

这里的意思是你可以自由的定义你想要的层不是让你复刻

forward在父类nn。module里面调用了,可以打开pycharm跟踪下就知道了

forward应该是在Module类里有调用,所以在class外的代码不需要显示地调用forward,但实际上运行了forward

因为父类nn.Module里重载了__call__,里面调用了forward

这里只是告诉各位,可以灵活的将各种块组合在一起,比如将刚刚定义的NestMLP、线性层以及之前定义的FixedHiddenMLP连在一起。

Sequential对象其实就是一个拿来装Linear (),ReLu()等方法(网络的层)的容器…
list of layers

权重是实例化出来的时候,模型默认初始化赋值的

*表示解包操作,将列表中的元素解包成多个参数传递给print()函数,使得打印的结果更加清晰易读。

解包操作符,一般对元组或列表使用,变为单独的元素。

1是relu,没有参数。02是两个全联接层

激活函数没有参数 取不出来

通过名字获取参数

字典 state_dict()[key]的效果和state_dict[key].data效果一样的吗
传一个字符串名字,指示add module对应的module
print一个网络,知道这个网络大概的架构

net.apply(function),for loop让每一个module调用function这个函数

API是高级程序接口,就是封装好的一个一个可以实现作用的直接调用的东西

为什么不能把weight初始化为常数

数值稳定性那节不是有讲么?要破坏初始化参数的对称性

全部初始化为同一个值,会导致:除输入层以外其它层的各个神经单元输入输出一样,状态梯度一样,从而权重的梯度更新也一样,等价于每层只有一个单元,

计算得到的梯度全都一样,最后所有权重都一样

Xavier

uniform distribution均匀分布

在《银河系漫游指南》小说中,有一个超级先进的文明为了寻找宇宙的终极答案,造了一台超级计算机,经过750万年的计算,最后超级计算机告诉他们终极答案就是“42”。

宇宙终极答案是“42”吗?我们都被“42”骗得好惨

计算机ASCII代码表里十六进制的42对应字符“*”(星号),换句话说,就是计算机里的通配符。所以42就是一切的意思,什么都可以代替。

apply函数的功能是将传入的函数应用到指定的module上,不只是初始化,做什么都行

“*[]”序列解包很细节,和.item()异曲同工

没听懂的建议看 pytorch基础,就那个龙良曲老师讲的,听完后再看这个,就会清楚很多

这个布尔表达式强转成float的意思,先判断是不是绝对值大于5,是就 1,不是就0

因为两个share是同一块内存
梯度肯定会更新,反正两个权重一起变
就是说他们的地址是一样的,所以一个改了,另外一个也跟着改

反向不需要考虑,因为这里的层不包含需要更新的参数
不会真的为0,十的负九次方,用很小的数值来表示
继承自Module的子类在创建实例的时候都会自动生成计算图
rand是从0-1的均匀分布中随机抽样,randn是从0-1的正态分布中抽样forward中定义的计算用的是不可反向传播的data,所以backward没结果的

nn.parameter加梯度加名字

实例化模型的命名而已dense,没错

dense应该特指全连接层。

MyLinear是一个类,dense是这个类的一个实例

为什么省去了dense.forward()

具体到后缀是.pt,.pth,.pkl,都对,不用细究,是Pytorch专用的格式

可以不带文件类型保存,你随便加后缀也可以,torch都可以save load

引号里面的就是你保存的位置,自定义就可以,建议不要有中文
state_dict得到字符串到parameters的映射

在别的地方薅羊毛训练网络经常要这么干

哪这里是不是 需要原来的网络模型也要知道,不然模型参数对不上!

是的,因为只保存了参数没有保存结构,你需要把原来的模型声明写出来

load_state_dict()这个函数是在哪定义了吗

好像可以,有两种save net的方式,这里是只存参数

此处是否通过eval()进入evaluation mode对结果并没有影响
应该是eval是设为评估模式,不计算梯度
train模式(net.train())和eval模式(net.eval())。一般的神经网络中,这两种模式是一样的,只有当模型中存在dropout和batchnorm的时候才有区别。

Y在前面面in[4]里面定义了,Y=net(X)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/145067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智慧城市怎么实时监测内涝积水的发生及解决办法?

随着城市化进程步伐不断加快,城市内涝问题越来越受到人们的关注。内涝不仅不便于人们的生活,还可能危害城市之中的基础设施比如路面等。因此实时监测内涝积水的发生并采取有效的解决办法是市政府的紧急任务,同时解决城市内涝也利于城市生命线…

OpenCV中的像素重映射原理及实战分析

引言 映射是个数学术语,指两个元素的集之间元素相互“对应”的关系,为名词。映射,或者射影,在数学及相关的领域经常等同于函数。 基于此,部分映射就相当于部分函数,而完全映射相当于完全函数。 说的简单点…

【算法】算法题-20231117

这里写目录标题 一、搜索插入位置(35)二、字符串相乘(43)三、两个相同字符之间的最长子字符串(1624)四、给你一个 有效括号字符串 s,返回该字符串的 s 嵌套深度 一、搜索插入位置(35…

linux高级篇基础理论二(详细文档、LAMP、SHELL、sed正则表达式)

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技…

C#委托与事件

在C#中,委托(Delegates)和事件(Events)是用于实现事件驱动编程的关键组件。 委托(Delegates) 委托是一种特殊的类型,它定义了方法的签名(即方法的返回类型和参数类型&a…

layui的layer.confirm获取按钮焦点

因为ayer.confirm的按钮并非采用button,而是a标签,所以获取按钮焦点获取不到,要采用别的方法,下面介绍在ie11中和ie8中不同的写法 在ie11中 layer.confirm(确定取消这个弹窗吗?,{btn: [确定, 取消],success:function…

海康Visionmaster-环境配置:VB.Net 二次开发环境配 置方法

Visual Basic 进行 VM 二次开发的环境配置分为三步。 第一步,使用 VS 新建一个框架为.NET Framework 4.6.1,平台去勾选首选 32 为的工程,重新生成解决方案,保证工程 Debug 下存在 exe 文件,最后关闭新建工程&#xff1…

按键精灵中的日志、分辨率、找色逻辑、线程

1. 开启输出日志 // 开启日志 Log.Open TracePrint "你好"TracePrint "世界"// 关闭日志 Log.Close // 输出日志 TracePrint GetTempDir()// 当前脚本第4行:你好 // 当前脚本第6行:世界2. 设置分辨率 在写脚本的时候&#xff0c…

【MATLAB源码-第79期】基于蚯蚓优化算法(EOA)的栅格路径规划,输出做短路径图和适应度曲线。

操作环境: MATLAB 2022a 1、算法描述 蚯蚓优化算法(Earthworm Optimisation Algorithm, EOA)是一种启发式算法,灵感来源于蚯蚓在自然界中的行为模式。蚯蚓优化算法主要模仿了蚯蚓在寻找食物和逃避天敌时的行为策略。以下是蚯蚓…

【Android】使用XML资源文件存储配置项:降低代码耦合性并提高可重用性

前言 在Android开发中,我们经常需要存储一些配置项。 例如在创建Retrofit实例时,需要指定baseUrl。如果需要修改替换整个项目中的baseUrl,那将会是一件很痛苦的事情。 为了方便管理和维护这些配置项,我们可以使用资源文件来存储…

ubuntu 无法获得锁的解决

在输入sudo apt-get update后发现终端提示: E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用) E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it? 解决方案一: 先找…

【Kingbase FlySync】命令行:同步软件安装部署,并实现KES到KES实现同步迁移

概述 Kingbase FlySync是面向同城/异地灾备、数据库平滑升级替换、数据集中共享与分发、应用上云迁移、数据库负载均衡等场景的数据同步产品。该产品基于增量日志解析技术,性能高、时延低、资源占用极少,能够实现异构数据源之间大规模增量数据的任意方向…

破解tomcat密码并上传webshell

tomcat基础认证爆破 暴力破解 进入vulnhub的tomcat8目录,启动环境 由于tomcat密码默认最大尝试错误次数为5次,需要修改server.xml,修改下面字段 failureCount"10000000000" lockOutTime"0"tomcat默认界面,…

Skywalking流程分析_8(拦截器插件的加载)

前言 在之前的文章中我们将,静态方法、构造方法、实例方法的增强逻辑都分析完毕,但在增强前,对于拦截类的加载是至关重要的,下面我们就来详细的分析 增强插件的加载 静态方法增强前的加载 //clazz 要修改的字节码的原生类 Sta…

实用篇-ES-RestClient查询文档

一、快速入门 上面的查询文档都是依赖kibana,在浏览器页面使用DSL语句去查询es,如何用java去查询es里面的文档(数据)呢 我们通过match_all查询来演示基本的API,注意下面演示的是 match_all查询,也叫基础查询 首先保证你已经做好了…

【flutter】使用getx下的GetMaterialApp创建路由和使用时间选择器国际化问题

GetMaterialApp是啥 网上解释说是 MaterialApp Getx properties GetMaterialApp 问题 在使用showDateRangePicker组件的时候, 一直报错 No MaterialLocalizations found 我就愁思是不是GetMaterialApp跟MaterialApp方法不一样的问题,结果不是&#…

Spark数据倾斜_产生原因及定位处理办法_生产环境

在最近的项目中,历史和实时数据进行关联平滑时出现了数据倾斜,产生了笛卡尔积,具体现象如下:运行内存175GB,核数64,运行代码时,查看SparkUI界面的active jobs ,数据输入是1G&#xf…

java初探之代理模式

代理模式 代理模式一般有三种角色: 没有使用代理模式的话可能就会直接去操作真实的对象 加入代理模式就是加入了 隔离 把我们的真实对象与调用者隔离了一下(代理对象) 代理对象的好处? 使用者(client)跟真实的对象是没有直接的交集的。不会直接操作到…

Bash openldap同步AD组织数据

将AD的ou同步到openldap(可支持全量同步和增量同步) 整体思路如下: 从ad导出所有的数据,然后进行参数替换以及处理,处理后的文件称为A;从openldap导出所有的数据,然后进行参数替换以及处理&am…

国内crm解决方案的主要提供商有哪些?对比7家

目前国内CRM服务商1410家,今年1-7月CRM服务商新注册19家。如何从众多服务商中挑选出合适的一家,无疑是一项耗时耗力的大工程。为此,本文将为根据国内外知名机构、媒体、网站发布、百度指数、行业知名度等维度考量,选择出7大CRM系统…