Pytorch张量

在conda的环境中安装Jupyter及其他软件包
Pytorch 建立在张量(tensor)之上,Pytorch张量是一个 n 维数组,类似于 NumPy 数组。专门针对GPU设计,可以运行在GPU上以加快计算效率。换句话说,Pytorch张量是可以运行在GPU上的多维数据。

目录

基础语法

定义张量数据类型

默认数据类型

指定数据类型

改变张量数据类型

张量与Numpy数组间的转换

[将张量转换为 Numpy 数组](#将张量转换为 Numpy 数组)

[将 Numppy 数组转换为张量](#将 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)
相关推荐
mqiqe9 分钟前
Python MySQL通过Binlog 获取变更记录 恢复数据
开发语言·python·mysql
AttackingLin11 分钟前
2024强网杯--babyheap house of apple2解法
linux·开发语言·python
哭泣的眼泪40824 分钟前
解析粗糙度仪在工业制造及材料科学和建筑工程领域的重要性
python·算法·django·virtualenv·pygame
珠海新立电子科技有限公司1 小时前
FPC柔性线路板与智能生活的融合
人工智能·生活·制造
湫ccc1 小时前
《Python基础》之基本数据类型
开发语言·python
IT古董1 小时前
【机器学习】机器学习中用到的高等数学知识-8. 图论 (Graph Theory)
人工智能·机器学习·图论
曼城周杰伦1 小时前
自然语言处理:第六十三章 阿里Qwen2 & 2.5系列
人工智能·阿里云·语言模型·自然语言处理·chatgpt·nlp·gpt-3
余炜yw2 小时前
【LSTM实战】跨越千年,赋诗成文:用LSTM重现唐诗的韵律与情感
人工智能·rnn·深度学习
drebander2 小时前
使用 Java Stream 优雅实现List 转化为Map<key,Map<key,value>>
java·python·list
莫叫石榴姐2 小时前
数据科学与SQL:组距分组分析 | 区间分布问题
大数据·人工智能·sql·深度学习·算法·机器学习·数据挖掘