PyTorch基础

  • 1. PyTorch与TensorFlow的区别
  • 2. PyTorch基本数学形式
  • 3. 关于Tensor

1. PyTorch与TensorFlow的区别

PyTorch和TensorFlow的底层都是由C++编写的, 所以运行起来都比较快,那么二者的区别是什么呢?以一个基本的运算为例:

a = x*y;
b = a + z;
c = ∑(b);

该运算的运算图为:

TensorFlow的实现代码为:

PyTorch的实现代码为:

二者最大的区别是:

  • TensorFlow是先生成静态运算图,然后在进行运算,而且运算图是静态的,一经生成无法更改。
  • PyTorch生成的运算图是动态的,可以一边生成动态运算图,一边进行运算
    详细的区别入下图所示:

2. PyTorch基本数学形式

神经网络最核心的部分就是数学运算,在PyTorch中最基本的数学形式有三个:

  • 向量(Vector): 一列数
  • 矩阵(Matrix): “二维向量”
  • 张量(Tensor): “三维向量”或者“三维矩阵”
    神经网络的核心部分是向量、矩阵、张量之间的相乘与相加。
    在PyTorch中生成三种数学形式的代码如下所示:
# 导入torch包
import torch#定义向量
vector = torch.tensor([1,2,3,4])#定义矩阵
matrix = torch.tensor([[1,2],[3,4]])#定义张量
tensor = torch.tensor([[[1,2],[3,4]],[[1,2],[3,4]]])

3. 关于Tensor

Tensor是PyTorch中重要的数据结构,可认为是一个高维数组。Tensor和numpy的ndarrays类似,但是Tensor可以使用GPU加速。需要注意的是,Tensor和numpy对象共享内存,所以他们之间的转换很快,而且几乎不会消耗资源。这意味着,如果其中一个变了,另外一个也会随之改变。
PyTorch中新建的Tensor方法有很多,具体为:

Tensor有不同的数据类型,如下表所示:

对于tensor的常用逐元素操作如下表所示:

对于tensor的常用归并操作如下表所示:

PyTorch入门(一)--PyTorch基础相关推荐

  1. PyTorch | (2)PyTorch 入门-张量

    PyTorch | (1)初识PyTorch PyTorch | (2)PyTorch 入门-张量 PyTorch 是一个基于 Python 的科学计算包,主要定位两类人群: NumPy 的替代品,可 ...

  2. 干货|《深度学习入门之Pytorch》资料下载

    深度学习如今已经成为了科技领域中炙手可热的技术,而很多机器学习框架也成为了研究者和业界开发者的新宠,从早期的学术框架Caffe.Theano到如今的Pytorch.TensorFlow,但是当时间线来 ...

  3. 深度学习入门之PyTorch学习笔记:卷积神经网络

    深度学习入门之PyTorch学习笔记 绪论 1 深度学习介绍 2 深度学习框架 3 多层全连接网络 4 卷积神经网络 4.1 主要任务及起源 4.2 卷积神经网络的原理和结构 4.2.1 卷积层 1. ...

  4. 深度学习入门之PyTorch学习笔记:多层全连接网络

    深度学习入门之PyTorch学习笔记 绪论 1 深度学习介绍 2 深度学习框架 3 多层全连接网络 3.1 PyTorch基础 3.2 线性模型 3.2.1 问题介绍 3.2.2 一维线性回归 3.2 ...

  5. 深度学习入门之PyTorch学习笔记:深度学习介绍

    深度学习入门之PyTorch学习笔记:深度学习介绍 绪论 1 深度学习介绍 1.1 人工智能 1.2 数据挖掘.机器学习.深度学习 1.2.1 数据挖掘 1.2.2 机器学习 1.2.3 深度学习 第 ...

  6. [pytorch] Pytorch入门

    Pytorch入门 简单容易上手,感觉比keras好理解多了,和mxnet很像(似乎mxnet有点借鉴pytorch),记一记. 直接从例子开始学,基础知识咱已经看了很多论文了... import t ...

  7. 基于pytorch实现图像分类——理解自动求导、计算图、静态图、动态图、pytorch入门

    1. pytorch入门 什么是PYTORCH? 这是一个基于Python的科学计算软件包,针对两组受众: 替代NumPy以使用GPU的功能 提供最大灵活性和速度的深度学习研究平台 1.1 开发环境 ...

  8. pytorch入门_PyTorch入门

    pytorch入门 This tutorial aims to familiarize you with the concept of tensors in PyTorch and introduce ...

  9. 网易云课程:深度学习与PyTorch入门实战

    网易云课程:深度学习与PyTorch入门实战 01 深度学习初见 1.1 深度学习框架简介 1.2 pytorch功能演示 2开发环境安装 3回归问题 3.1简单的回归问题(梯度下降算法) 3.3回归 ...

最新文章

  1. 解决Mac安装tesserocr报错问题 Failed building wheel for
  2. [Ynoi2019模拟赛]Yuno loves sqrt technology II
  3. 牛客网数组排序NC140
  4. 别名、浅复制与深复制
  5. socket connec连接超时处理
  6. FLOAT或DOUBLE列与具有数值类型的数值进行比较 问题
  7. C# 在线培训之零基础入门 01:开篇及C#程序、解决方案的结构
  8. 7个等级 容灾等级_在餐厅吃饭竟是7级风险!最新社交风险等级出炉!
  9. jedis的源码理解-基础篇
  10. 如何编写投标项目实施方案
  11. 工程师思维 vs 销售思维
  12. [975]python requests实现HTTPS客户端的证书导入
  13. 1,标准差的计算 2,标准分数z-score
  14. Hacking 基础关
  15. 数据组,请求组,职责,用户关系
  16. 华为超越三星拿下第一!2019年全球5G手机出货量榜单揭晓
  17. 基于K210与STM32的人脸识别门禁 实现掉地仓储,人体雷达检测
  18. @Transactional注解回滚(事物)
  19. 服务器网卡性能下降的原因,网卡的好坏会影响网速吗
  20. 爱奇艺奇秀直播的秒播体验优化实践

热门文章

  1. Linux环境下为普通用户添加sudo权限
  2. oracle怎么查询和插入表,Oracle查询一个表的数据插入到另一个表
  3. c# 计算空格宽度像素_分享计算机视觉之图像处理Python之opencv
  4. 网络规划设计师复习笔记
  5. linux python json,在Python中使用JSON
  6. coreseek/sphinx CentOS6.4下安装
  7. USACO / A Game (经典区间DP)
  8. notifyDataSetInvalidated()和notifyDataSetChanged()有什么区别? (转载)
  9. Android TextView跑马灯效果与设置文字阴影
  10. CSS3 Version