【Pytorch】

本文介绍了PyTorch中三个实用的深度学习工具:torch.linspace用于生成线性间距向量;torch.cuda.amp.autocast利用Tensor Core加速GPU计算;torch.meshgrid则用于创建坐标网格。了解这些工具能帮助提升PyTorch代码的效率和灵活性。
摘要由CSDN通过智能技术生成

1. torch.linspace

线性间距向量,torch.linspace(start, end, steps=100, out=None) → Tensor,返回一个1维张量,包含在区间start和end上均匀间隔的step个点。
输出张量的长度由steps决定。

参数:
start (float) - 区间的起始点
end (float) - 区间的终点
steps (int) -> 在start和end间生成的样本数
out (Tensor, optional) - 结果张量

#生成0到10的4个数构成的等差数列
a = torch.linspace(0,10,steps=4)
print(a)
#生成0到10的5个数构成的等差数列
b = torch.linspace(0,10,steps=5)
print(b)
#out:tensor([ 0.0000,  3.3333,  6.6667, 10.0000])
#out:tensor([ 0.0000,  2.5000,  5.0000,  7.5000, 10.0000])

2. torch.cuda.amp.autocast

介绍
torch.cuda.amp 的名字意味着这个功能只能在cuda上使用,事实上,这个功能正是NVIDIA的开发人员贡献到PyTorch项目中的。而只有支持Tensor core的CUDA硬件才能享受到AMP的好处(比如2080ti显卡)。Tensor Core是一种矩阵乘累加的计算单元,每个Tensor Core每个时钟执行64个浮点混合精度操作(FP16矩阵相乘和FP32累加),英伟达宣称使用Tensor Core进行矩阵运算可以轻易的提速,同时降低一半的显存访问和存储。

初始化

try:
    #自动混合精度
    autocast = torch.cuda.amp.autocast
except:
    # dummy autocast for PyTorch < 1.6
    class autocast:
        def __init__(self, enabled):
            pass
        def __enter__(self):
            pass
        def __exit__(self, *args):
            pass

使用

# run the feature network
with autocast():
    out = net(in_)

参考:PyTorch的自动混合精度(AMP)

3. torch.meshgrid()

torch.meshgrid() 的功能是生成网格,可以用于生成坐标。函数输入两个数据类型相同的一维张量,两个输出张量的行数为第一个输入张量的元素个数,列数为第二个输入张量的元素个数,当两个输入张量数据类型不同或维度不是一维时会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LocalMinima

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值