先记录一下一开始学习torch时未曾记录(也未好好弄懂哈)导致又忘记了的tensor、variable、计算图

计算图

计算图直白的来说,就是数学公式(也叫模型)用图表示,这个图即计算图。借用 https://hzzone.io/cs231n/%E7%90%86%E8%A7%A3-PyTorch-%E8%AE%A1%E7%AE%97%E5%9B%BE%E3%80%81Autograd-%E6%9C%BA%E5%88%B6%E5%92%8C%E5%AE%9E%E7%8E%B0%E7%BA%BF%E6%80%A7%E6%8B%9F%E5%90%88.html 一张图 ,红色圈里就是计算图

Tensor应该是好懂的,就是一张量,百度一下就可以的。torch.tensor和numpy.ndarray可以相互转换,

Variable本质上和Tensor一样,Variable是对Tensor的封装,操作和tensor基本一致,但是既然封装了,肯定加了东西,加了什么呢?每个Variable被构建时都含三个属性,1、tensor本身的.data(可取出Variable中tensor数值);2、对应tensor的梯度.grad(反向传播的梯度);3、grad_fn属性,如何得到的Variable的操作,如加减乘除。

  detach()方法,官网解释是从当前计算图中分离的Variable,意思是通过此方法把requires_grad设置为False了,然后返回一个新的Variable,数据存放位置未变。

在博客 https://www.cnblogs.com/JadenFK3326/p/12072272.html 说了torch.mm()(正常矩阵相乘)和torch.mul()(矩阵对应值相乘)    参考博客 https://blog.csdn.net/da_kao_la/article/details/87484403 感谢博主   还有tensor乘法是torch.matmul()、torch.bmm()

  补充一下,torch.mm()是矩阵相乘,输入的tenso维度只能两维;torch.matmul()可以说是torch.mm()的boradcast版本,可以进行大于2维的tensor乘法。多个矩阵并行计算 官网解释如下(看不懂英语自己在谷歌浏览器上打开官网,自动翻译):

torch.bmm(),两个三维张量相乘,分别为(b*n*m)和(b*m*p),其中b代表batch_size,输出为(b*n*p)

  torch.max(input,dim,keepdim=False,out=None):按维度dim返回最大值

  torch.max(input,other,out=None):两个tensor:input和other元素相比较,返回大的那个

下面的多层感知机和激活函数都比较简单,就说一下其公式了

多层感知机

  即含有至少一个隐藏层的由全连接层组成的神经网络,且每个隐藏层的输出通过激活函数进行变换。

$ H = \varnothing (XW_{h})+b_{h} $

$ O = HW_{o}+b_{o} $

其中,$ \varnothing$表示激活函数

ReLU函数

$ ReLU(x) = max(x,0) $

Sigmoid函数

$ sigmoid(x) = \frac{1}{1 + exp(-x)} $

tanh函数

$ tanh(x) = \frac{1 - exp(-2x)}{1 + exp(-2x)} $

小白学习之pytorch框架(5)-多层感知机(MLP)-(tensor、variable、计算图、ReLU()、sigmoid()、tanh())的更多相关文章

  1. 小白学习之pytorch框架(1)-torch.nn.Module+squeeze(unsqueeze)

    我学习pytorch框架不是从框架开始,从代码中看不懂的pytorch代码开始的 可能由于是小白的原因,个人不喜欢一些一下子粘贴老多行代码的博主或者一些弄了一堆概念,导致我更迷惑还增加了畏惧的情绪(个 ...

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

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

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

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

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

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

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

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

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

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

  7. keras多层感知机MLP

    肯定有人要说什么多层感知机,不就是几个隐藏层连接在一起的吗.话是这么说,但是我觉得我们首先要自己承认自己高级,不然怎么去说服(hu nong)别人呢 from keras.models import ...

  8. gluon 实现多层感知机MLP分类FashionMNIST

    from mxnet import gluon,init from mxnet.gluon import loss as gloss, nn from mxnet.gluon import data ...

  9. 多层感知机MLP的gluon版分类minist

    MLP_Gluon .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { bord ...

随机推荐

  1. Apache使用mod_jk/mod_proxy模块实现代理、负载均衡的配置

    转载自:https://blog.csdn.net/yuanyuan_186/article/details/51290518 192.168.1.123/192.168.1.121为后端tomcat ...

  2. python3 --- unittest单元测试框架

    1.unittest结构 1.单元测试的框架 unittest(python自带,无需额外安装)+接口2.文件,命名时,千万不要写成unittest这样的模块名,会报错的3.功能测试 1)写用例 Te ...

  3. 倍增求LCA(最近公共祖先)

    P3379 [模板]最近公共祖先(LCA) 题目描述: 读入一棵以1为根的树,q次询问,每次给定x和y,问x和y的最近公共祖先是哪一个节点. 树的读入格式:n-1行每行两个整数x.y,表示一条连接x和 ...

  4. tensorflow--建立一个简单的小网络

    In [19]:           import tensorflow as tf import numpy as np # #简单的数据形网络 # #定义输入参数 # X=tf.constant( ...

  5. Windows环境安装与搭建node.js环境

    参考文章:https://www.cnblogs.com/zhouyu2017/p/6485265.html 一.下载node.js,直接下一步至安装完成.https://nodejs.org/en/ ...

  6. 洛谷 P2370 yyy2015c01的U盘

    题目传送门 解题思路: 先将每个文件按照占空间从小到大排序,然后跑背包,当到了某一个文件时,价值够了,那么当前文件的体积就是答案. 其实本题是可以二分答案的,但是写挂了... AC代码: #inclu ...

  7. 10 —— node —— 获取文件在前台遍历

    思想 : 前台主动发起获取 => ajax 1,前台文件 index.html <!DOCTYPE html> <html lang="en"> &l ...

  8. 大数据高可用集群环境安装与配置(08)——安装Ganglia监控集群

    1. 安装依赖包和软件 在所有服务器上输入命令进行安装操作 yum install epel-release -y yum install ganglia-web ganglia-gmetad gan ...

  9. ng-options用法详解

    ng-options属性可以在表达式中使用数组或对象来自动生成一个select中的option列表.ng-options与ng-repeat很相似,很多时候可以用ng-repeat来代替ng-opti ...

  10. 数据库之存储过程Procedure

    数据库之存储过程 一.概述 SQLserver中视图通过简单的select查询来解决复杂的查询,但是视图不能提供业务逻辑功能,而存储过程可以办到. 二.什么是存储过程 存储过程procedure是一组 ...