目录

一、常用操作

1.1:torch库函数

1.2 torch类对象方法

1.3 torch类对象属性

1.4:tensor间的运算

1.5 类对象元素的获取(切片)

1.6:转为numpy对象

二、注意事项

1:关于ndarray对象切片

2、关于numpy和pytorch中,sum()方法的使用

3、矩阵乘法

4、深度学习中常用范数

5、切片问题

三、其他


一、常用操作

python中的“nadrray类”和“tensor类”都是线性代数中数组的体现。

常用库函数、类对象方法、类对象属性、类对象之间运算、类对象元素的获取(切片)

1.1:torch库函数

pytorch库                         numpy库
torch.tensor()

np.array()
torch.ones()    np.ones()
torch.zeros()    np.zeros()
torch.arange()    np.arange()
torch.randn()    np.random.rand()
torch.exp()    np.exp()
注:都是一些常用的函数,可指定dtype,例如dtype=torch.float32,深度学习中常用float32类型数据

1.2 torch类对象方法

假设x是一个tensor对象,常用方法有: x.reshape()    x.numel() (计算X中元素的个数)          len(x)输出第一个轴的维度       x.mean()     x.sum()    x.T

1.3 torch类对象属性

x.shape()

x.dim()

x.size()

1.4:tensor间的运算

加(+)、减(-)、乘(X)、除(÷)、是否相等(=;!=)、点积torch.dot(),  torch.mv(),  torch.mm()

点乘

>>> a = torch.ones(3,4)
>>> a
tensor([[1., 1., 1., 1.],[1., 1., 1., 1.],[1., 1., 1., 1.]])
>>> b = torch.Tensor([1,2,3]).reshape((3,1))
>>> b
tensor([[1.],[2.],[3.]])
>>> torch.mul(a, b)
tensor([[1., 1., 1., 1.],[2., 2., 2., 2.],[3., 3., 3., 3.]])

矩阵乘

torch.mm和torch.matmul两个函数都是用来计算矩阵相乘。mm是处理二维矩阵,超过二维将报错;matmul是处理高维。

# 二维乘二维
>>> a = torch.ones(3,4)
>>> b = torch.ones(4,2)
>>> torch.mm(a, b)
tensor([[4., 4.],[4., 4.],[4., 4.]])
# 二维乘三维
>>> a = torch.ones(3,4)
>>> b = torch.ones(5,4,2)
>>> torch.matmul(a, b).shape
torch.Size([5, 3, 2])
# 三维乘三维
>>> a = torch.ones(5,4,2)
>>> b = torch.ones(5,2,3)
>>> torch.matmul(a, b).shape
torch.Size([5, 4, 3])

线性代数

函数 功能
trace 对角线元素之和(矩阵的迹)
diag 对角线元素
triu/tril 矩阵的上三角/下三角,可指定偏移量
mm/bmm 矩阵乘法,batch的矩阵乘法
addmm/addmm/addmv/addr 矩阵运算
t 转置
dot/cross 内积/外积
inverse 求逆矩阵
svd 奇异值分解

1.5 类对象元素的获取(切片)

切片(用方括号)x[  ]

1.6:转为numpy对象

x.numpy()

总结:深度学习存储和操作数据的主要接口是张量。它提供了各种功能,包括基本数学运算、广播、索引、切片、内存节省和转换其他Python对象。

二、注意事项

1:关于ndarray对象切片

import numpy as np
num = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(num)
print(num[[0, 1], [0, 1]])
结果:

[[1 2 3]
 [4 5 6]
 [7 8 9]]
 
[1 5]
numpy中的切片方式有些奇怪,num[[0, 1], [0, 1]]表示第一行第一列以及第二行第二列两个元素所组成的数组。

2、关于numpy和pytorch中,sum()方法的使用

求和:x.sum(axis=0),含义:沿0轴汇总以生成输出向量。非汇总求和方法:可指定参数 keepdims=True

若沿k轴汇总,则丢失k轴的维数

A.cumsum()函数,汇总函数,此函数不会沿任何轴汇总输入张量。

num.sum(axis=0)
结果:

array([12, 15, 18])

3、矩阵乘法

[两个矩阵的按元素乘法称为 哈达玛积(Hadamard product)(数学符号 ⊙)]

torch.dot()

要点:python和matlab不同,python中 * 的意思是矩阵按元素进行乘法,而matlab中则表示矩阵乘法

torch.mv() 矩阵与向量相乘    torch.mm()  矩阵与矩阵相乘

4、深度学习中常用范数

其中,在 L2 范数中常常省略下标 2,也就是说,∥x∥ 等同于 ∥x∥2,方法:torch.norm(x)

深度学习常用范数,如L2范 L1范数、数和弗罗贝尼乌斯范数。

5、切片问题

matlab:start:step:end

python:start:end:step

三、其他

1、pd.get_dummies(独热编码处理)

思想:将pandas中的数据通过torch.tensor(DataFrame.values())转化为张量

2、导数、梯度、自动求导

梯度和导数的关系?

梯度:函数f(x)相对于x的梯度是一个包含n个偏导数的向量。

导数又分为全导数和偏导数,只有正负,没有方向。

3、概率论基础知识

fair_probs = torch.ones([6]) / 6
counts = multinomial.Multinomial(1000, fair_probs).sample()#模拟掷1000次骰子
Bayes 定理 (Bayes’ theorem)。它如下所示。通过构造,我们有乘法规则, P(A,B)=P(B∣A)P(A)。根据对称性,这也适用于 P(A,B)=P(A∣B)P(B)。假设 P(B)>0, 求解其中一个条件变量,我们得到

0825torch基础入门操作相关推荐

  1. 第一章 ArcMap、ArcCatalog、 ArcToolbox基础入门操作

    文章目录 第一节 ArcMap入门 1 界面的基本介绍 2 加载数据 3 添加图层 4 数据表 5 内容列表 5.1 按绘制顺序 5.2 按源 5.3 按可见性 5.4 按可选性 第二节 ArcCat ...

  2. docke的基础入门

    docker基础入门操作 一.如何安装docker 一.如何安装docker 安装docker命令通过一下命令顺序执行,即可进行安装 校验操作系统内核版本,要求是3.10以上的版本 1)安装一些必要的 ...

  3. Python 文件读写操作-Python零基础入门教程

    目录 一.Python 文件的打开 open 二.Python 文件的关闭 close 三.Python 文件的读取 read 1.read 函数 2.readline 函数 3.readlines ...

  4. WIFI基础入门--802.11--管理操作--9

    WIFI基础入门--802.11--管理操作--9 1.管理结构 2.扫描 2.1 被动扫描 2.2 主动扫描 2.3 扫描报告 3.加入网络 4.隐藏式SSID 5.身份验证 5.1 身份验证 5. ...

  5. 2021最新HarmonyOS鸿蒙系统应用开发之基础入门教程到实战—持续更新(第二节:鸿蒙OS系统分布式操作)

    老罗带你了解鸿蒙,专注于移动端领域技术的研发和推广,助力鸿蒙在国内技术推广和普及. 每篇内容都有视频讲解,可直接点击观看+关注,持续更新中 2021最新HarmonyOS鸿蒙系统应用开发之基础入门教程 ...

  6. MAYA 2022基础入门学习教程

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:3.41 GB |时长:4.5小时 包含 ...

  7. Maya2022基础入门学习教程

    Maya2022基础入门学习教程 Maya 2022 Essential Training Maya2022基础入门学习教程 Maya 2022 Essential Training MP4 |视频: ...

  8. 《Ansible权威指南 》一 第一篇 Part 1 基础入门篇

    本节书摘来自华章出版社<Ansible权威指南 >一书中的第1章,第1.1节,李松涛 魏 巍 甘 捷 著更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第一篇 ...

  9. 零基础入门jQuery视频教程

    零基础入门jQuery最新版开发.NET富客户端应用(选择器.DOM操作.事件和动画.Ajax应用.插件.Mobile) 课程分类:.NET+Jquery 适合人群:初级 课时数量:35课时 用到技术 ...

  10. 零基础入门CV赛事,理论结合实践

    Datawhale干货 作者:阿水,Datawhale成员 本次分享的背景是,Datawhle联合天池发布的学习赛:零基础入门CV赛事之街景字符识别.本文以该比赛为例,对计算机视觉赛事中,赛事理解和B ...

最新文章

  1. 成功解决ModuleNotFoundError: No module named 'torch.utils.tensorboard'
  2. ospf 环回口的路由条目_OSPF的LSA类型
  3. FckEditor的安装与设置
  4. DL HARQ UCI in PUCCH — R16
  5. 启动hbase后hregionserver没有启动
  6. 常见cmd命令,开发人员必备
  7. Java网络编程学习汇总
  8. matlab插值函数截断误差,插值及其误差
  9. php 云片网对接,如何实现php调用云片网接口发送短信
  10. 弘辽科技:如何做好淘宝店铺推广?有什么技巧吗?
  11. matlab信道容量函数,信息论-matlab求信道容量(迭代法)
  12. iphone 计算文件长度
  13. ZOJ 3939 The Lucky Week
  14. 阿里云推出节省计划的每小时承诺消费怎么样?
  15. 抽象类和具体类的区别
  16. 倒是应该看看教科书了
  17. PAT乙级-1051复数乘法(保留两位数-四舍五入)
  18. Android Studio download fastutil-7.2.0.jar下载依赖包超时问题
  19. 仿微博视频边下边播之封装播放器
  20. 项目管理软件有哪些,哪个好用?

热门文章

  1. 用计算机术语写毕业寄语,毕业寄语大全一句话
  2. MATLAB——更换主题颜色
  3. The Little Schemer 中文版
  4. the little schemer 笔记(0)
  5. 成绩造假!你看到400+大佬,有可能是P图!
  6. 交换机端口mtu值最大_mtu出现网络故障案例
  7. Java户籍管理系统的设计与实现
  8. Dojo: Quick Start
  9. Hausdorff 距离
  10. 端午节之苍南懒人游 (*^__^*) ……