Pytotch学习
一、Pytorch是什么?
Pytorch是torch的python版本,是由Facebook开源的神经网络框架,专门针对 GPU 加速的深度神经网络(DNN)编程。Torch 是一个经典的对多维矩阵数据进行操作的张量(tensor )库,在机器学习和其他数学密集型应用有广泛应用。与Tensorflow的静态计算图不同,pytorch的计算图是动态的,可以根据计算需要实时改变计算图。但由于Torch语言采用 Lua,导致在国内一直很小众,并逐渐被支持 Python 的 Tensorflow 抢走用户。作为经典机器学习库 Torch 的端口,PyTorch 为 Python 语言使用者提供了舒适的写代码选择。
二、环境安装
1.anaconda新建虚拟环境
conda creat -n torch39 python=3.9
conda activate torch39
2.安装pytorch-cpu版本
pip install torch=2.1.0
3.Pycharm中环境配置
三、张量的基本使用
1.张量的概念
张量是一个多维数组,它是标量、向量和矩阵概念的推广。在深度学习中,张量被广泛用于表示数据和模型参数。具体来说,张量的“张”可以理解为“维度”,张量的阶或维数称为秩。例如,零阶张量是一个标量,一阶张量是一个向量,二阶张量是一个矩阵,三阶及以上的张量则可以看作是高维数组。
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()
运行结果: