目录

张量的定义

张量的概念

访问元素

张量常用数据类型

张量的创建及其数据类型转换

张量的简单创建

张量的数据类型转换

常用的基础函数



张量的定义

张量的概念

张量(Tensor)是Pytorch、TensorFlow等深度学习框架的基础运算单位,与python中Numpy工具包的ndarray类似。不同的是GPU可以很好地支持加速计算,而Numpy仅支持CPU计算,这样可以哒哒地加快运算速度。张量为包含单一数据类型的元素的多维矩阵(没有轴只有大小的标量可以视为零阶张量,有一个轴既有大小又有方向的矢量可以视为一阶张量,有两个轴的矩阵可以视为二阶张量,具有两个轴以上的张量没有特殊的数学名称)。

访问元素

张量常用数据类型

Tensor在Pytorch中常用的基本数据类型:

torch.FloatTensor    #Tensor默认数据类型32位浮点型
torch.DoubleTensor   #64位浮点型
torch.LongTensor     #64位整型
torch.IntTensor      #32位整型
torch.ShortTensor    #16位整型

不常用数据类型:

torch.BoolTensor    #布尔类型
torch.ByteTensor    #byte类型
torch.HalfTensor    #半精度浮点类型
torch.CharTensor    #char类型

张量的创建及其数据类型转换

张量的简单创建

torch.tensor---只创建torch.FloatTensor类型的张量(可以说是torch.empty的特例)

常用参数

data    :张量的初始数据,可以是列表、元组、numpy.ndarray、标量等类型

dtype   :返回张量所需数据类型,默认值为None,推断data数据类型

device :返回张量的所需设备,默认值为None,使用当前设备作为默认张量类型。(cpu/gpu)

a = torch.tensor([[0.1, 1.2], [2.2, 3.1], [4.9, 5.2]])

a: tensor([[0.1000, 1.2000],
        [2.2000, 3.1000],
        [4.9000, 5.2000]]) 
 a.dtype: torch.float32 
 a.device: cpu

b = torch.tensor([[0.11111, 0.222222, 0.3333333]],dtype=torch.float64,device=torch.device('cuda:0'))

tensor([[0.1111, 0.2222, 0.3333]], device='cuda:0', dtype=torch.float64)

​​​​​​torch.empty()---创建任意数据类型的张量

常用参数

size   :定义tensor的shape

dtype:指定返回tensor的数据类型

out    :  把A张量赋给该张量,具体请看下面demo

a = torch.empty([3, 4], dtype=torch.int8)

输出(每次输出均不同):

tensor([[   0,  109,  -31,  -90],
            [  60,    2,    0,    0],
            [-128,   72,   43,  114]], dtype=torch.int8)

demo1:

a = torch.ones(3,4)
print(a)b = torch.empty([4,4],out=a)
print(b, '\n', a)

out会把前面已创建的张量元素赋值给该张量,并使之前张量变为该张量。

tensor([[1., 1., 1., 1.],
        [1., 1., 1., 1.],
        [1., 1., 1., 1.]])
tensor([[1.0000e+00, 1.0000e+00, 1.0000e+00, 1.0000e+00],
        [1.0000e+00, 1.0000e+00, 1.0000e+00, 1.0000e+00],
        [1.0000e+00, 1.0000e+00, 1.0000e+00, 1.0000e+00],
        [8.9082e-39, 8.9082e-39, 9.1837e-39, 1.0653e-38]]) 
 tensor([[1.0000e+00, 1.0000e+00, 1.0000e+00, 1.0000e+00],
        [1.0000e+00, 1.0000e+00, 1.0000e+00, 1.0000e+00],
        [1.0000e+00, 1.0000e+00, 1.0000e+00, 1.0000e+00],
        [8.9082e-39, 8.9082e-39, 9.1837e-39, 1.0653e-38]])

张量的数据类型转换

tensor.type()(XXXXTensor去掉Tensor)

例如:tensor.long()

把默认floattensor转换为longtensor

tensor = torch.randn(2,2)# torch.long() 将tensor转换为long类型
long_tensor = tensor.long()

torch.FloatTensor
torch.LongTensor

常用的基础函数

torch.numel()---返回张量中元素的个数

参数

input :输入张量

a = torch.randn(1, 2, 3, 4, 5)#返回填充正态分布中随机数的五维张量
torch.numel(a)                #返回张量中元素的数量
120b = torch.zeros(4,4)          #创建一个4*4的零矩阵
torch.numel(b)                #返回张量中元素的数量
16

torch.randn()---从均值为0方差为1的正态分布(标准正态分布)中返回一个填充随机数的张量。

常用参数

size :定义输出张量形状的整数序列。可以是可变数量的参数或像列表或元组这样的集合。

torch.randn(4)
tensor([-0.8278,  0.5125, -0.5062, -0.5426])torch.randn(2,3)
tensor([[ 0.2056,  0.3492, -0.0945],[ 0.0401, -0.1669,  1.2944]])torch.randn(2,3,4)
tensor([[[-0.4541, -0.8035,  1.0739,  0.4186],[-0.6344, -0.9139, -0.1677,  0.0961],[-0.7515, -0.6628,  1.6266,  1.1239]],[[ 1.3485,  0.4935,  0.8326, -0.1125],[-0.4228,  0.4704, -2.5847, -0.1034],[ 0.2142, -0.2088, -0.0864, -1.1074]]])

待更!

pytorch--初识张量与常见基础函数(1)相关推荐

  1. pytorch基础函数学习

    深度学习框架,似乎永远离不开哪个最热哪个最实用的话题,自己接触甚浅,尚不敢对齐进行大加评论,这里也只是初步接触.目前常见的有TensorFlow,pytorch,Keras等,至于目前哪个做好用,就像 ...

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

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

  3. 神经网络与深度学习(二) pytorch入门——张量

    本文章通过参考飞桨AI Studio - 人工智能学习与实训社区  教程进行pytorch相关学习. 目录 一. 概念:张量.算子 二. 使用pytorch实现张量运算 1.2.1 创建张量 1.2. ...

  4. [源码解析] PyTorch 流水线并行实现 (1)--基础知识

    [源码解析] PyTorch 流水线并行实现 (1)–基础知识 文章目录 [源码解析] PyTorch 流水线并行实现 (1)--基础知识 0x00 摘要 0x01 历史 1.1 GPipe 1.2 ...

  5. c++将小写转换为大写函数_必须掌握的基础函数组合应用技巧,提高效率,准时下班...

    点击上方"Excel函数公式"免费订阅 货币,生活中必不可少的东西,是物品价值等的直接体现,在实际的工作中也经常遇到,如果给定的数据中,要对其进行格式的设置,你会怎么做? 一.Do ...

  6. 【数据库】第二章 基础函数、聚合函数、条件查询、子查询和多表查询

    [数据库]第二章 基础函数.条件查询.聚合函数.多表查询和子查询 文章目录 [数据库]第二章 基础函数.条件查询.聚合函数.多表查询和子查询 一.基础函数 二.聚合函数 1.COUNT 2.MAX/M ...

  7. Java常见基础笔试+面试题

    Java常见基础面试题总结 原:https://blog.csdn.net/qq_16633405/article/details/79211002 1.什么是Java虚拟机?为什么Java被称作是& ...

  8. Pytorch中tensor.view().permute().contiguous()函数理解

    Pytorch中tensor.view().permute().contiguous()函数理解 yolov3中有一行这样的代码,在此记录一下三个函数的含义 # 例子中batch_size为整型,le ...

  9. GaussDB数据库基础函数介绍-上

    目录 一.函数在数据库中的作用 二.GaussDB常用基础函数介绍与示例 1.数字操作函数 2.时间和日期处理函数 3.类型转换函数 4.数组函数 5.范围函数 6.窗口函数 7.聚集函数 8.安全函 ...

最新文章

  1. 中消协:警惕以治病为噱头的保健品虚假宣传行为
  2. 【论文解读】PFLD:高精度实时人脸关键点检测算法
  3. 计算机应用基础电大答案2015,2015电大形考计算机应用基础_Windows7操作系统_客观题(答案).doc...
  4. Maven for Eclipse 第二章 ——安装 m2eclipse插件
  5. [C# 项目实战]: 制作一个备忘录(经典)
  6. mysql远程访问 linux_Linux中开启mysql远程访问功能
  7. java 正则表达式学习
  8. 秒懂文件路径 / 和 ./ 和 ../ 和 ../../
  9. 授权windows客户端用户连接Linux mysql命令
  10. 在Hadoop集群实施成功后再次格式化名称节点,datanode无法加入集群的处理办法...
  11. 1.4补充 三态缓存(tristate buffer)与 多路复用器(Multiplexers)
  12. MSDEV.EXE-应用程序错误解决办法(转)
  13. angular7.0+ngx-weui公众号开发,开发及框架搭建(一)
  14. 安装MySQL8.0+,数据库初始化失败错误解决办法
  15. WINCC 常见问题
  16. $q -- AngularJS中的服务
  17. 重定向与请求转发的区别及什么时候使用
  18. 汽车诊断协议,(K线/CAN总线、kwp2000、ISO14230、ISO1575...)
  19. 调试Kubernetes集群中的网络停顿问题
  20. 网管软件哪家比较好用

热门文章

  1. 数组排序之冒泡法和选择法
  2. Unity 版本更新
  3. pwnable.kr-passcode
  4. 7月26日 select单表查询基础语句
  5. python字典中的值不允许重复_python字典中值不允许重复的原因
  6. 《Charles配置教程之Mac》
  7. 微信图片怎么添加竖排文字_怎样在手机上给微信图片上添加文字?
  8. 强大的word查找替换功能
  9. 破解PPT密码/改只读为可编辑PPT
  10. 优雅的剥洋葱:浅析 Java Optional 类