pytorch--初识张量与常见基础函数(1)
目录
张量的定义
张量的概念
访问元素
张量常用数据类型
张量的创建及其数据类型转换
张量的简单创建
张量的数据类型转换
常用的基础函数
张量的定义
张量的概念
张量(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)相关推荐
- pytorch基础函数学习
深度学习框架,似乎永远离不开哪个最热哪个最实用的话题,自己接触甚浅,尚不敢对齐进行大加评论,这里也只是初步接触.目前常见的有TensorFlow,pytorch,Keras等,至于目前哪个做好用,就像 ...
- PyTorch | (2)PyTorch 入门-张量
PyTorch | (1)初识PyTorch PyTorch | (2)PyTorch 入门-张量 PyTorch 是一个基于 Python 的科学计算包,主要定位两类人群: NumPy 的替代品,可 ...
- 神经网络与深度学习(二) pytorch入门——张量
本文章通过参考飞桨AI Studio - 人工智能学习与实训社区 教程进行pytorch相关学习. 目录 一. 概念:张量.算子 二. 使用pytorch实现张量运算 1.2.1 创建张量 1.2. ...
- [源码解析] PyTorch 流水线并行实现 (1)--基础知识
[源码解析] PyTorch 流水线并行实现 (1)–基础知识 文章目录 [源码解析] PyTorch 流水线并行实现 (1)--基础知识 0x00 摘要 0x01 历史 1.1 GPipe 1.2 ...
- c++将小写转换为大写函数_必须掌握的基础函数组合应用技巧,提高效率,准时下班...
点击上方"Excel函数公式"免费订阅 货币,生活中必不可少的东西,是物品价值等的直接体现,在实际的工作中也经常遇到,如果给定的数据中,要对其进行格式的设置,你会怎么做? 一.Do ...
- 【数据库】第二章 基础函数、聚合函数、条件查询、子查询和多表查询
[数据库]第二章 基础函数.条件查询.聚合函数.多表查询和子查询 文章目录 [数据库]第二章 基础函数.条件查询.聚合函数.多表查询和子查询 一.基础函数 二.聚合函数 1.COUNT 2.MAX/M ...
- Java常见基础笔试+面试题
Java常见基础面试题总结 原:https://blog.csdn.net/qq_16633405/article/details/79211002 1.什么是Java虚拟机?为什么Java被称作是& ...
- Pytorch中tensor.view().permute().contiguous()函数理解
Pytorch中tensor.view().permute().contiguous()函数理解 yolov3中有一行这样的代码,在此记录一下三个函数的含义 # 例子中batch_size为整型,le ...
- GaussDB数据库基础函数介绍-上
目录 一.函数在数据库中的作用 二.GaussDB常用基础函数介绍与示例 1.数字操作函数 2.时间和日期处理函数 3.类型转换函数 4.数组函数 5.范围函数 6.窗口函数 7.聚集函数 8.安全函 ...
最新文章
- 中消协:警惕以治病为噱头的保健品虚假宣传行为
- 【论文解读】PFLD:高精度实时人脸关键点检测算法
- 计算机应用基础电大答案2015,2015电大形考计算机应用基础_Windows7操作系统_客观题(答案).doc...
- Maven for Eclipse 第二章 ——安装 m2eclipse插件
- [C# 项目实战]: 制作一个备忘录(经典)
- mysql远程访问 linux_Linux中开启mysql远程访问功能
- java 正则表达式学习
- 秒懂文件路径 / 和 ./ 和 ../ 和 ../../
- 授权windows客户端用户连接Linux mysql命令
- 在Hadoop集群实施成功后再次格式化名称节点,datanode无法加入集群的处理办法...
- 1.4补充 三态缓存(tristate buffer)与 多路复用器(Multiplexers)
- MSDEV.EXE-应用程序错误解决办法(转)
- angular7.0+ngx-weui公众号开发,开发及框架搭建(一)
- 安装MySQL8.0+,数据库初始化失败错误解决办法
- WINCC 常见问题
- $q -- AngularJS中的服务
- 重定向与请求转发的区别及什么时候使用
- 汽车诊断协议,(K线/CAN总线、kwp2000、ISO14230、ISO1575...)
- 调试Kubernetes集群中的网络停顿问题
- 网管软件哪家比较好用