小白学习之pytorch框架(1)-torch.nn.Module+squeeze(unsqueeze)
我学习pytorch框架不是从框架开始,从代码中看不懂的pytorch代码开始的
可能由于是小白的原因,个人不喜欢一些一下子粘贴老多行代码的博主或者一些弄了一堆概念,导致我更迷惑还增加了畏惧的情绪(个人感觉哈),我觉得好像好多人都是喜欢给说的明明白白的,难听点就是嚼碎了喂我们。这样也行啊(有点恶心哈),但是有些东西即使嚼碎了我们也弄不明白,毕竟有一些知识是很难的(嚼碎后的知识我们都难以理解)
我知道了这些,也在尽力写博客时写的容易理解,但是自身实力有限,还做不到写博客写的既有条理又容易理解,请谅解,若有什么好的意见或者博客中的错误,欢迎指出,毕竟自己也是借助别人的博客和实践中的代码,写的更适于自己的理解
参考博客:https://blog.csdn.net/e01528/article/details/84075090 https://blog.csdn.net/qq_27825451/article/details/90550890
torch.nn.Module:所有网络的基类(官方文档),即我们自己定义网络或层,需要继承Module。常用的继承方法是:super(GraphConvolution, self).__init__(),其中GraphConvolution是自己定义的类或者模型或者说layer。其实nn.Module中无模型和层之分,层也当成一个模型来计算。
在GraphConvolution中的构造函数中需要自己定义可学习的参数和可学习的参数层(卷积层、全连接层),参数封装成parameter类型。因为训练模型需要的参数类型是parameter
forward(self,x)函数:前向传播函数,实现模型,即各个层的连接逻辑(哪个层接哪个层)。其输入可以是一个或多个variable变量,对x的任何操作也是variable变量。不需要写反向传播函数,因为torch.nn.Module可以利用autograd自动实现反向传播。
调用规则:调用layer(input)即可得到input对应的结果。就是输入函数所需的参数函数会给返回一个结果。规则:layers.__call__(input),在__call__函数中,主要调用的是layer.forward(x),就是layer(x)=layer.forward(x)
torch.mul(a,b)即矩阵a和矩阵b元素对应相乘,又叫Hadamard乘积。torch.mm(a,b):矩阵a乘以矩阵b。x.mm(a):矩阵x和矩阵a乘积。
torch常用函数可参考
https://www.jianshu.com/p/d678c5e44a6b https://www.jianshu.com/p/54708c840ec4
torch.range(start,end,step):返回一个以start开始以end结束,以step为公差的等差数列。输出时end包含在内。step可以省略,但是必须有start和end。返回的值是float32类型
torch.range(1,5):结果:tensor([1.,2.,3.,4.,5.]) torch.range(1,5,2):结果:tensor([1.,3.,5.])
torch.arange(start,end,step):返回一个以start开始以end结束,以step为公差的等差数列。输出时不包含end。end、step都可以省略。返回的值是int64类型
torch.arange(5):结果:tensor([1,2,3,4])
torch.squeeze():压缩张量维度;torch.unsqueeze():扩张张量维度
参考博客,感谢博主 https://blog.csdn.net/flysky_jay/article/details/81607289
https://www.cnblogs.com/Archer-Fang/p/10647986.html#4449096
小白学习之pytorch框架(1)-torch.nn.Module+squeeze(unsqueeze)的更多相关文章
- 小白学习之pytorch框架(4)-softmax回归(torch.gather()、torch.argmax()、torch.nn.CrossEntropyLoss())
学习pytorch路程之动手学深度学习-3.4-3.7 置信度.置信区间参考:https://cloud.tencent.com/developer/news/452418 本人感觉还是挺好理解的 交 ...
- 小白学习之pytorch框架(2)-动手学深度学习(begin-random.shuffle()、torch.index_select()、nn.Module、nn.Sequential())
在这向大家推荐一本书-花书-动手学深度学习pytorch版,原书用的深度学习框架是MXNet,这个框架经过Gluon重新再封装,使用风格非常接近pytorch,但是由于pytorch越来越火,个人又比 ...
- 小白学习之pytorch框架(3)-模型训练三要素+torch.nn.Linear()
模型训练的三要素:数据处理.损失函数.优化算法 数据处理(模块torch.utils.data) 从线性回归的的简洁实现-初始化模型参数(模块torch.nn.init)开始 from torc ...
- 小白学习之pytorch框架(7)之实战Kaggle比赛:房价预测(K折交叉验证、*args、**kwargs)
本篇博客代码来自于<动手学深度学习>pytorch版,也是代码较多,解释较少的一篇.不过好多方法在我以前的博客都有提,所以这次没提.还有一个原因是,这篇博客的代码,只要好好看看肯定能看懂( ...
- 小白学习之pytorch框架(6)-模型选择(K折交叉验证)、欠拟合、过拟合(权重衰减法(=L2范数正则化)、丢弃法)、正向传播、反向传播
下面要说的基本都是<动手学深度学习>这本花书上的内容,图也采用的书上的 首先说的是训练误差(模型在训练数据集上表现出的误差)和泛化误差(模型在任意一个测试数据集样本上表现出的误差的期望) ...
- 小白学习之pytorch框架(5)-多层感知机(MLP)-(tensor、variable、计算图、ReLU()、sigmoid()、tanh())
先记录一下一开始学习torch时未曾记录(也未好好弄懂哈)导致又忘记了的tensor.variable.计算图 计算图 计算图直白的来说,就是数学公式(也叫模型)用图表示,这个图即计算图.借用 htt ...
- PyTorch里面的torch.nn.Parameter()
在刷官方Tutorial的时候发现了一个用法self.v = torch.nn.Parameter(torch.FloatTensor(hidden_size)),看了官方教程里面的解释也是云里雾里, ...
- 深度学习框架PyTorch一书的学习-第四章-神经网络工具箱nn
参考https://github.com/chenyuntc/pytorch-book/tree/v1.0 希望大家直接到上面的网址去查看代码,下面是本人的笔记 本章介绍的nn模块是构建与autogr ...
- [PyTorch 学习笔记] 3.1 模型创建步骤与 nn.Module
本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson3/module_containers.py 这篇文章来看下 ...
随机推荐
- 转载:HTTP 请求头中的 X-Forwarded-For,X-Real-IP
转载:https://www.cnblogs.com/diaosir/p/6890825.html X-Forwarded-For 在使用nginx做反向代理时,我们为了记录整个的代理过程,我们往往 ...
- python刷LeetCode:28. 实现 strStr()
难度等级:简单 题目描述: 实现 strStr() 函数. 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 ( ...
- 【剑指Offer】面试题22. 链表中倒数第k个节点
题目 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点.例如,一个链表有6个节点,从头节点开始,它们的值依次是1.2.3.4.5.6. ...
- UVA - 11400 Lighting System Design(照明系统设计)(dp)
题意:共有n种(n<=1000)种灯泡,每种灯泡用4个数值表示.电压V(V<=132000),电源费用K(K<=1000),每个灯泡的费用C(C<=10)和所需灯泡的数量L(1 ...
- Java算法练习——字符串转换整数 (atoi)
题目链接 题目描述 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们寻找到的第一个非空字符为正或者负 ...
- 67.ORM查询条件:range的使用,使用make_aware将navie time 转换为aware time
模型的定义,models.py文件中示例代码如下: from django.db import models # 在定义模型的类时,一定要继承models.Model class Category(m ...
- 四个因素决定Essay写作段落长度
段落是一篇Essay的基石,写好Essay应从写好段落开始.那么Essay写作中一个段落多长为好?英语和修辞学教授理查德·诺德奎斯特著文介绍了一些专家的观点.从以下的译文可以看到,段落长度虽然没有固定 ...
- 查看 vps 进程网络流量
弄好了 vps 以后,感觉网络流量走的有点多,决定查查看到底什么情况. 首先安装 sar 来看看各个设备消耗的流量 apt-get install sysstat sar 的参数 DEV 表示网口, ...
- i春秋-web-爆破3
首先,是PHP代码审计,看懂就能解出来题. <?php error_reporting(0); session_start(); require('./flag.php'); if(!isset ...
- ACwing算法基础课听课笔记(第一章,基础算法二)(差分)
前缀和以及二维前缀和在这里就不写了. 差分:是前缀和的逆运算 ACWING二维差分矩阵 每一个二维数组上的元素都可以用(x,y)表示,对于某一元素(x0,y0),其前缀和就是以该点作为右下角以整 ...