Pytorch张量 - 实践

在conda的环境中安装Jupyter及其他软件包

Pytorch 建立在张量(tensor)之上,Pytorch张量是一个 n 维数组,类似于 NumPy 数组。专门针对GPU设计,可以运行在GPU上以加快计算效率。换句话说,Pytorch张量是可以运行在GPU上的多维数据。

目录

基础语法

定义张量数据类型

默认数据类型

指定数据类型

改变张量数据类型

张量与Numpy数组间的转换

将张量转换为 Numpy 数组

将 Numppy 数组转换为张量

在设备间移动张量

默认在CPU上定义张量

定义CUDA设备

将张量移动到CUDA设备

将张量移动到CPU

在任意设备上定义张量


基础语法

Pytorch张量

Numpy数组

torch.ones(.)numpy.ones(.) 创建一个一数组
torch.zeros(.) numpy.zeros(.)创建一个零数组
 torch.rand(.)numpy.random.rand(.)创建随机数组
torch.tensor(.)numpy.array(.) 从给定值创建数组
x.shape or x.size()x.shape获取数组形状

定义张量数据类型

默认数据类型

默认张量数据类型为 torch.float32

import torch
x = torch.ones(2, 2)
print(x)
print(x.dtype)

指定数据类型

x = torch.ones(2, 2, dtype=torch.int8)
print(x)
print(x.dtype)

改变张量数据类型

先定义一个张量,打印其数据类型

x=torch.ones(1)
print(x.dtype)

 通过".type()"命令改变数据类型

x=x.type(torch.torch.uint8)
print(x.dtype)

 可以看到数据类型由torch.float32改变为了torch.uint8

张量与Numpy数组间的转换

将张量转换为 Numpy 数组

 定义一个随机张量

x=torch.rand(2,2)
print(x)
print(x.dtype)

通过".numpy()"命令转换为numpy数组

y=x.numpy()
print(y)
print(y.dtype)


将 Numppy 数组转换为张量

定义一个numpy数组

import numpy as np
x=np.zeros((2,2),dtype=np.float32)
print(x)
print(x.dtype)

用".from_numpy()"命令转换为张量

y=torch.from_numpy(x)
print(y)
print(y.dtype)

在设备间移动张量

一般情况下,Pytorch 张量存储在 CPU 上,张量运行在 GPU上 以加快计算速率,这是张量的主要优势。为了有效利用这个优势,需要将张量移动到 CUDA 设备,可以使用 .to 方法将张量移动到相应设备上。 

默认在CPU上定义张量

使用".tensor()"命令,张量一般默认定义在CPU上

x=torch.tensor([1, 1.5])
print(x)
print(x.device)

定义CUDA设备

if torch.cuda.is_available():
device=torch.device("cuda:0")
torch.cuda.current_device()

将张量移动到CUDA设备

x = x.to(device)
print(x)
print(x.device)

将张量移动到CPU

device = torch.device("cpu")
x = x.to(device)
print(x)
print(x.device)

在任意设备上定义张量

device = torch.device("cuda:0")
x = torch.ones(2,2, device=device)
print(x)

posted on 2025-07-30 21:20  ljbguanli  阅读(15)  评论(0)    收藏  举报