PyTorch | 对Tensor的认识

143 阅读2分钟

image.png 开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第7天,点击查看活动详情

前言

我们现在的生活都离不开手机软件,现在很多手机软件都得到了人工智能(AI)的支持。那么今天我们就来尝试学习和了解一下AI的搭建的一些基础知识。

正文

目前学术界主流使用的深度学习开发框架是 Facebook 开源的 PyTorch。这是基于Python的一个库,所以在看这篇文章之前一定要有一些Python基础哦。

今天我们先学习和为Tensor(张量),以及Tesnsor的常用方法。

Tensor

tensor就是我们所说的张量,一个数(scaler)就是0阶张量,向量就是一阶的张量,矩阵就是二阶张量,张量其实可以理解成是数表的拓展。

scaler:0阶张量

vector:1阶~

matrix:2阶~

创建tensor

如下:

torch.tensor(x)
torch.rand([3,4]) # 创建的tensor是随机的,随值区间(0,1)
torch.randn([3,4]) # 创建的tensor是随机数,并且随机值服从均值为0,方差为1的正太分布。

并且PyTorch支持将np转到tensor

tensor 属性

  1. item(),当含有一个值时,可以直接获取里面的值,可以忽略其纬度。
  2. numpy(),直接转numpy。
  3. size(x),获取形状,可以获取具体某个维度的量
  4. view([shape]),是一种浅拷贝。拉成一整条,再慢填充。
  5. dim(),获取维度数。
  6. max(),获取最大值。(还有min\std)
  7. t(),获得转置。
  8. transpose(dim1,dim2),交换两个轴
  9. permute(dim...),一起打乱轴
  10. 取值与切片,t[1,2,3],t[1,:,:],t[1,2,3] = 100

tensor的数据类型

tensor.float32等等。torch会把np的数据默认转为float32

值得注意的是,torch.tensor()torch.Tensor这两个构造函数是不一样的。具体原因可以百度。

修改数据类型:直接在tensor后面加.long().float()等。

其他操作

new_ones(tensor),模仿数据的维度,产出全一的tensor。

add_(y),就地修改调用方法的对象。

to(device),迁移数据到不同的处理单元。

device(str),指定数据移到的处理单元。

以上便是tensor的一些基本的认识,了解了这些以后一些基本的代码应该是能看懂了。