我学习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)的更多相关文章

  1. 小白学习之pytorch框架(4)-softmax回归(torch.gather()、torch.argmax()、torch.nn.CrossEntropyLoss())

    学习pytorch路程之动手学深度学习-3.4-3.7 置信度.置信区间参考:https://cloud.tencent.com/developer/news/452418 本人感觉还是挺好理解的 交 ...

  2. 小白学习之pytorch框架(2)-动手学深度学习(begin-random.shuffle()、torch.index_select()、nn.Module、nn.Sequential())

    在这向大家推荐一本书-花书-动手学深度学习pytorch版,原书用的深度学习框架是MXNet,这个框架经过Gluon重新再封装,使用风格非常接近pytorch,但是由于pytorch越来越火,个人又比 ...

  3. 小白学习之pytorch框架(3)-模型训练三要素+torch.nn.Linear()

    模型训练的三要素:数据处理.损失函数.优化算法    数据处理(模块torch.utils.data) 从线性回归的的简洁实现-初始化模型参数(模块torch.nn.init)开始 from torc ...

  4. 小白学习之pytorch框架(7)之实战Kaggle比赛:房价预测(K折交叉验证、*args、**kwargs)

    本篇博客代码来自于<动手学深度学习>pytorch版,也是代码较多,解释较少的一篇.不过好多方法在我以前的博客都有提,所以这次没提.还有一个原因是,这篇博客的代码,只要好好看看肯定能看懂( ...

  5. 小白学习之pytorch框架(6)-模型选择(K折交叉验证)、欠拟合、过拟合(权重衰减法(=L2范数正则化)、丢弃法)、正向传播、反向传播

    下面要说的基本都是<动手学深度学习>这本花书上的内容,图也采用的书上的 首先说的是训练误差(模型在训练数据集上表现出的误差)和泛化误差(模型在任意一个测试数据集样本上表现出的误差的期望) ...

  6. 小白学习之pytorch框架(5)-多层感知机(MLP)-(tensor、variable、计算图、ReLU()、sigmoid()、tanh())

    先记录一下一开始学习torch时未曾记录(也未好好弄懂哈)导致又忘记了的tensor.variable.计算图 计算图 计算图直白的来说,就是数学公式(也叫模型)用图表示,这个图即计算图.借用 htt ...

  7. PyTorch里面的torch.nn.Parameter()

    在刷官方Tutorial的时候发现了一个用法self.v = torch.nn.Parameter(torch.FloatTensor(hidden_size)),看了官方教程里面的解释也是云里雾里, ...

  8. 深度学习框架PyTorch一书的学习-第四章-神经网络工具箱nn

    参考https://github.com/chenyuntc/pytorch-book/tree/v1.0 希望大家直接到上面的网址去查看代码,下面是本人的笔记 本章介绍的nn模块是构建与autogr ...

  9. [PyTorch 学习笔记] 3.1 模型创建步骤与 nn.Module

    本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson3/module_containers.py 这篇文章来看下 ...

随机推荐

  1. 【LeetCode】最长连续序列

    [问题]给定一个未排序的整数数组,找出最长连续序列的长度. 要求算法的时间复杂度为 O(n). 示例: 输入: [, , , , , ] 输出: 解释: 最长连续序列是 [, , , ].它的长度为 ...

  2. CF 767#

    A题的话,用一个priority_queue维护一下,直到最大的符合要求才出来,,(一开始记错了,,2333写成了小根堆...) #include<bits/stdc++.h> #defi ...

  3. Android自定义View——刮刮卡效果

    想要红包的实现效果的可以关注我的博客,仿饿了么红包 下层图片:我们的红包的图片 上层图片:有两部分 一部分是灰色背景 一部分是拥有透明度为0,并且模式为交集的画笔 使用滑动监听,滑动时,用透明度为0的 ...

  4. JavaEE--JNDI(上,简介)

    参考:https://blog.csdn.net/yan372397390/article/details/50450332 https://www.landui.com/help/show-6158 ...

  5. torch文档学习笔记

    下面为官方文档学习笔记    http://pytorch.org/docs/0.3.0/index.html 1.torch.Tensor from __future__ import print_ ...

  6. openstack trove weekly meeting时间即将更改

    为了平衡英国.巴黎.德国.美国和中国开发者的作息习惯,openstack trove项目组在5月18日的weekly meeting上开始讨论新的开会时间. 当前的开会时间是,周三 UTC 18:00 ...

  7. Vue编程式路由跳转传递参数

    Vue 有时在路由跳转时需要用到一些原页面里的数据,用以下方法: 1.在跳转页的方法里写下query参数 TableChange(scope){ this.$router.push({ path:'d ...

  8. 从 relu 的多种实现来看 torch.nn 与 torch.nn.functional 的区别与联系

    从 relu 的多种实现来看 torch.nn 与 torch.nn.functional 的区别与联系 relu多种实现之间的关系 relu 函数在 pytorch 中总共有 3 次出现: torc ...

  9. swoole怎么连接数据库

    异步连接到MySQL服务器. $serverConfig为MySQL服务器的配置,必须为关联索引数组 $callback连接完成后回调此函数 swoole连接数据库实例: 推荐学习:swoole教程 ...

  10. unable to execute /bin/mv: Argument list too long

    四种解决”Argument list too long”参数列表过长的办法 转自 http://hi.baidu.com/cpuramdisk/item/5aa49ce00c0757aecf2d4f2 ...