小白学习之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 这篇文章来看下 ...
随机推荐
- String的Split使用方法(以特定字符分隔,提取所需信息)
此处复制一串以空格分隔的数字,提取数字进行排序 int[] a = new int[10]; string input = Console.ReadLine();//获取用户输入的字符串 char[] ...
- C语言拾遗——sscanf
今天写题用到了sscanf,怕忘赶紧记录一下 去百度了一下这玩意的函数原型好像是长这样的,微软上扣下来的 int sscanf( const char *buffer, const char *fo ...
- python 将数组中取某一值的元素全部替换为其他元素的方法
这里的问题是在做House Price Prediction的时候遇到的,尝试对GarageArea做log转化,但是由于有些房子没有车库,所以GarageArea = 0,再通过log转化变成-in ...
- java课程课后作业190502之单词统计续集
第1步:输出单个文件中的前 N 个最常出现的英语单词. 功能1:输出文件中所有不重复的单词,按照出现次数由多到少排列,出现次数同样多的,以字典序排列. 功能2: 指定文件目录,对目录下每一个文件执行统 ...
- 用matplotlib统计数据并画图
用jupyter来统计数据,画出柱状图 import numpy as np import pandas as pd import matplotlib.pyplot as plt import ma ...
- POJ 1887:Testing the CATCHER 求递减序列的最大值
Testing the CATCHER Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 16131 Accepted: 5 ...
- POJ 1663:Number Steps
Number Steps Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 13664 Accepted: 7378 Des ...
- h5-web字体和字体图标
想要使用可以在: https://www.iconfont.cn/webfont?spm=a313x.7781069.1998910419.d81ec59f2#!/webfont/index :是we ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL DELETE 语句
可以使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录. 可以在 mysql> 命令提示符或 PHP 脚本中执行该命令. 语法 以下是 SQL DELETE 语句从 ...
- MySQL索引(一)
1.索引的类型 1) B-Tree索引 (1)概念 人们常说的Mysql索引一般是指B-Tree索引,它使用B-Tree数据结构来存储数据.存储引擎以不同的方式使用B-Tree索引,性能也各有不同,各 ...