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