开启掘金成长之旅!这是我参与「掘金日新计划 · 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 属性
- item(),当含有一个值时,可以直接获取里面的值,可以忽略其纬度。
- numpy(),直接转numpy。
- size(x),获取形状,可以获取具体某个维度的量
- view([shape]),是一种浅拷贝。拉成一整条,再慢填充。
- dim(),获取维度数。
- max(),获取最大值。(还有min\std)
- t(),获得转置。
- transpose(dim1,dim2),交换两个轴
- permute(dim...),一起打乱轴
- 取值与切片,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的一些基本的认识,了解了这些以后一些基本的代码应该是能看懂了。