一、Pytorch简介
PyTorch是一个由Facebook的人工智能研究团队(FAIR)开发的开源深度学习框架。它提供了一个动态、可扩展且易于使用的深度学习平台,广受科研人员和工程师的欢迎。PyTorch的设计哲学强调易读性、简洁性以及开发者的友好性,它使用Python语言编写,并与Python的生态系统无缝集成,这使得它可以被广泛应用在研究项目和生产环境中。
二、环境安装
2.1在anaconda新建一个虚拟环境
conda creat -n torch39 python=3.9
conda activate torch39
2.2安装pytorch-cpu版本
pip install torch=2.1.0
2.3pycharm配置环境
三、张量的基本使用
3.1张量的介绍
张量是深度学习框架PyTorch中的核心数据结构,类似于NumPy中的多维数组。在PyTorch中,张量是所有计算的基础,可以用来表示和计算多维数组的数据。张量的概念来源于线性代数,但它已经被扩展到了多维数组,可以用来表示图像、音频、文本等各种类型的数据。
0维张量:将标量转化为张量得到的就是0维张量;
1维张量:将向量转化为张量得到的就是1维张量;
2维张量:将矩阵转化为张量得到的就是2维张量;
多维张量:将多维数组转化为张量得到的就是多维张量;
3.2张量的几个特性
张量具有以下几个重要的特性:
1.维度:张量是一个n维数组,其中n可以是任何正整数。每个维度代表了张量的一个轴,可以理解为数据的一个维度或者一个方向。例如,一个二维张量可以看作是一个矩阵,一个三维张量可以看作是一个体积数据。
2.数据类型:张量可以包含不同类型的数据,如整数、浮点数、布尔值等。在PyTorch中,张量的数据类型是由一个特定的类表示的,如`torch.int32`、`torch.float64`等。
3. 形状:张量的形状是由一个整数元组表示的,这个元组描述了张量在每个维度上的大小。形状决定了张量中元素的数量以及它们是如何组织在一起的。
4. 内存分配:张量在内存中的存储方式取决于其形状和数据类型。不同形状和数据类型的张量可能会影响计算效率和内存使用。
3.3张量的创建
3.3.1源码
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()