一、Pytorch简介
Pytorch是Meta(前Facebook)的框架,前身是Torch,支持动态图,而且提供了Python接口。是一个以Python优先的深度学习框架,不仅能够实现强大的GPU加速,同时还支持动态神经网络。
出生地:FaceBook特点:生态强大、入门爽歪歪、代码量少(重点)
主要调包语言:Python、C/C++评价:入门很快、速度有点慢、学术界的霸主
入门推荐:想要做学术的同学绝对首选,几乎现在顶会论文的代码都是这个框架写的。
二、环境安装
1.在anaconda新建一个虚拟环境
conda creat -n torch39 python=3.9
conda activate torch39
2.安装pytorch-cpu版本
pip install torch=2.1.0
3.pycharm配置环境
在pycharm中的设置中选择当前虚拟环境。(详见B站讲解)
三、张量的基本使用
1.张量的概念
张量,英文为Tensor,是机器学习的基本构建模块,是以数字方式表示数据的形式。PyTorch就是将数据封装成张量(Tensor)来进行运算的。PyTorch中的张量就是元素为同一种数据类型的多维数组。在PyTorch中,张量以"类"的形式封装起来,对张量的一些运算、处理的方法被封装在类中。
0维张量:将标量转化为张量得到的就是0维张量
1维张量:将向量转化为张量得到的就是1维张量
2维张量:将矩阵转化为张量得到的就是2维张量
多维张量:将多维数组转化为张量得到的就是多维张量
2.张量的创建
张量的基本创建方式
import torch
import numpy as np
# torch.tensor根据已有的数据创建张量
# torch.Tensor根据形状创建张量,也可以用来创建指定数据的张量
# torch.IntTensor创建一个整数张量,torch.FloatTensor创建一个浮点数张量,torch.DoubleTensor创建一个双精度浮点数张量
# 1.根据已有数据创建张量
def test1():
# 1.1 创建标量张量
data = torch.tensor(10)
print(data)
# 1.2 numpy创建张量
data = np.random.randn(2, 3) # 2行3列
data = torch.tensor(data)
print(data)
# 1.3 列表
data = [[10., 20., 30.], [40., 50., 60.]]
data = torch.tensor(data)
print(data)
# 2.根据形状创建张量
def test2():
# 2.1 创建一个形状为(2,3)的张量
data = torch.Tensor(2, 3)
print(data)
# 2.2 如果传递列表,则创建包含列表元素的张量
data = torch.Tensor([10])
print(data)
data = torch.Tensor([[10], [20]])
print(data)
def test3():
# 3.1 创建一个形状为(2,3)的整数张量
data = torch.IntTensor(2, 3)
print(data)
# 3.2 创建一个形状为(2,3)的浮点数张量
data = torch.FloatTensor(2, 3)
print(data)
# 3.3 创建一个形状为(2,3)的双精度浮点数张量
data = torch.DoubleTensor(2, 3)
print(data)
if __name__ == '__main__':
test1()
test2()
test3()
输出结果: