机器学习 - PyTorch一些常用的用法

如果我们要创建2维随机数

python 复制代码
import torch 

random_tensor = torch.rand(size=(3,4))
print(random_tensor)

# 输出
tensor([[0.0137, 0.7773, 0.0150, 0.2406],
        [0.6414, 0.7830, 0.7603, 0.1866],
        [0.8157, 0.8269, 0.0438, 0.0314]])

有时候需要通过加入数字0和数字1到tensor里

python 复制代码
# Create a tensor with all zeros 
zero = torch.zeros(size=(3,4))
print(zero) 

# 输出
tensor([[0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.]])
python 复制代码
# Create a tensor with all ones
one = torch.ones(size=(3,4))
print(one)

# 输出
tensor([[1., 1., 1., 1.],
        [1., 1., 1., 1.],
        [1., 1., 1., 1.]])

想创建一个有范围的tensor,就得需要用到 torch.arange()

python 复制代码
zero_to_ten = torch.arange(start=0, end=10, step=1)
print(zero_to_ten)
# 输出
tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

要想创建一个全部都是0或者是1的tensor

python 复制代码
ten_zeros = torch.zeros_like(input = zero_to_ten)
print(ten_zeros)
ten_ones = torch.ones_like(input = zero_to_ten)
print(ten_ones)

# 输出
tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1])

顺带介绍一下 CUDA.

英伟达的GPUs用了computing toolkit,这个toolkit叫做 CUDA。


Precision is the amount of detail used to describe a number.

在 PyTorch 中,精度 (precision) 值通常情况下,精度值可以是8, 16, 32或64,分别对应unit8, 单精度浮点数 (float32),半精度浮点数 (float16), 双精度浮点数 (float64)。

  • float32 (32位浮点数): 通常用于深度学习中的计算,默认情况下PyTorch中的Tensor类型是float32。它具有较高的精度和范围,适用于大多数深度学习任务。
  • float16 (16位浮点数): 也称为半精度浮点数,它可以显著减少内存占用,加快计算速度,但同时会带来精度损失。在某些情况下,可以使用float16来加速计算,但需要注意潜在的精度损失。
  • float64 (64位浮点数):也称为双精度浮点数,具有更高的精度和范围,但同时也会占有更多的内存空间。在某些情况下需要更高的数值精度时,可以使用float64。

可以自定义一些tensors with specific datatypes. 是用 dtype 这个参数

python 复制代码
float_32_tensor = torch.tensor([1.0, 6.0, 9.0],
                               dtype = None,
                               device = None,
                               requires_grad = False)

print(float_32_tensor.shape, float_32_tensor.dtype, float_32_tensor.device) 

# 结果输出
torch.Size([3]) torch.float32 cpu

通过下面的例子,来介绍什么是 shape, dtype, device

python 复制代码
example_tensor = torch.rand(3,4)
print(example_tensor)
print(f"Shape of tensor: {example_tensor.shape}")
print(f"Datatype of tensor: {example_tensor.dtype}")
print(f"Device tensor is stored on: {example_tensor.device}")

# 输出
tensor([[0.9961, 0.3773, 0.5295, 0.6546],
        [0.7505, 0.5768, 0.8997, 0.7675],
        [0.3681, 0.0447, 0.4344, 0.9033]])
Shape of tensor: torch.Size([3, 4])  
Datatype of tensor: torch.float32
Device tensor is stored on: cpu

都看到这了,给个赞呗~

相关推荐
艾醒(AiXing-w)1 分钟前
大模型原理剖析——拆解预训练、微调、奖励建模与强化学习四阶段(以ChatGPT构建流程为例)
人工智能·chatgpt
币圈菜头2 分钟前
GAEA Carbon-Silicon Symbiotism NFT 解析:它在系统中扮演的角色,以及与空投权重的关系
人工智能·web3·去中心化·区块链
Deepoch4 分钟前
从“飞行相机”到“空中智能体”:无人机如何重构行业生产力
人工智能·科技·机器人·无人机·开发板·具身模型·deepoc
OAK中国_官方5 分钟前
OAK HUB:您通往视觉AI的门户!
人工智能·计算机视觉·depthai
鲨莎分不晴8 分钟前
独立学习 (IQL):大道至简还是掩耳盗铃
人工智能·深度学习·学习
audyxiao0019 分钟前
如何用Gemini“上车”自动驾驶?通过视觉问答完成自动驾驶任务
人工智能·机器学习·自动驾驶·大语言模型·多模态·gemini
free-elcmacom9 分钟前
深度学习<2>从“看单帧”到“懂故事”:视频模型的帧链推理,藏着机器读懂时间的秘密
人工智能·python·深度学习·音视频
wxdlfkj11 分钟前
从算法溯源到硬件极限:解决微小球面小角度拟合与中心定位的技术路径
人工智能·算法·机器学习
高洁0112 分钟前
基于Tensorflow库的RNN模型预测实战
人工智能·python·算法·机器学习·django
鲨莎分不晴15 分钟前
从 10 到 1000:大规模多智能体的可扩展性 (Mean Field & GNN)
人工智能·学习