PyTorch学习笔记|张量的创建和形变
最近准备学习下深度学习,记录下学习内容。
安装PyTorch
建议使用anaconda,然后根据下面代码更新一下anaconda的相关环境。
conda update conda conda update anaconda conda update python conda update --allcpu版本安装
conda install pytorch torchvision torchaudio cpuonly张量的创建和常用方法
张量(tensor)创建和numpy库还是蛮像的,所以我这里简单贴一下代码,大家应该能很好理解,我们常用列表、元组、数组来创建。
import torch import numpy as np t = torch.tensor([1, 2]) a = torch.tensor((1, 2)) n = np.array([1,2]) b = torch.tensor(n)张量的类型和转换
类似数组,都可以调用dtype来返回张量类型,我们这里需要好好记住,在pytorch中类型不一致,和容易报错。
先说结论,默认创建整数是int64,浮点型默认是float32。如果用np数据浮点型默认是float64。
其他类型我放在下面大家可以看看。
我们在创建的时候可以通过dtype参数来指定数据类型。
torch.tensor([1.1, 2.2], dtype = torch.int64) #tensor([1, 2])张量的类型转换是分为隐式和显式。这个也很好理解,隐式就是如果张量元素不一样时候,就是向上转化,然后显式就是通过float()等方法进行转换。
特殊张量
全零张量,全1张量,单位矩阵,对角矩阵,随机矩阵等等,我们简单过一下。
torch.ones([2,2]) torch.eye(5) torch.rand(2,3) torch.randn(2,3) torch.randint(1,10,[2,4])张量的维度与形变
这里的维度和numpy数组也差不多,我上面的例子都是一维的,我们当然可以创建多维的。
flatten可以将任意维度张量转换为一维张量,reshape可以任意变形。
深拷贝和浅拷贝
默认情况是浅拷贝,需要通过clone进行深拷贝。
