torch.linspace(start, end, steps=100, out=None) → Tensor
返回一个1维张量,包含在区间start和end上均匀间隔的step个点。
输出张量的长度由steps决定。
$\mathrm{(start,start+\frac{end-start}{steps-1},\ldots,start+(steps-2)*\frac{end-start}{steps-1},end)}$
>>> torch.linspace(3, 10, steps=5)
tensor([ 3.0000, 4.7500, 6.5000, 8.2500, 10.0000])
>>> torch.linspace(-10, 10, steps=5)
tensor([-10., -5., 0., 5., 10.])
>>> torch.linspace(start=-10, end=10, steps=5)
tensor([-10., -5., 0., 5., 10.])
>>> torch.linspace(start=-10, end=10, steps=1)
tensor([-10.])
torch.cumsum(*input*, *dim*, ***, *dtype=None*, *out=None*) → [Tensor](<https://pytorch.org/docs/stable/tensors.html#torch.Tensor>)
返回维度dim中输入元素的累计和。
$y_i=x_1+x_2+x_3+\cdots+x_i$
>>> a = torch.randn(10)
>>> a
tensor([-0.8286, -0.4890, 0.5155, 0.8443, 0.1865, -0.1752, -2.0595,
0.1850, -1.1571, -0.4243])
>>> torch.cumsum(a, dim=0)
tensor([-0.8286, -1.3175, -0.8020, 0.0423, 0.2289, 0.0537, -2.0058,
-1.8209, -2.9780, -3.4022])
Pytorch自动混合精度的计算:torch.cuda.amp.autocast-CSDN博客
torch.cuda.amp.autocast是PyTorch中一种混合精度的技术(仅在GPU上训练时可使用),可在保持数值精度的情况下提高训练速度和减少显存占用。
# 导入相关库
import torch
from torch.cuda.amp import autocast
# 定义一个模型
class MyModel(torch.nn.Module):
def __init__(self):
super(MyModel, self).__init__()
self.linear = torch.nn.Linear(10, 1)
def forward(self, x):
with autocast():
x = self.linear(x)
return x
# 初始化数据和模型
x = torch.randn(1, 10).cuda()
model = MyModel().cuda()
# 进行前向传播
with autocast():
output = model(x)
# 计算损失
loss = output.sum()
# 反向传播
loss.backward()
沿着一个新维度对输入张量序列进行连接。 序列中所有的张量都应该为相同形状。
把多个2维的张量凑成一个3维的张量;多个3维的凑成一个4维的张量…以此类推,也就是在增加新的维度进行堆叠。
outputs = torch.stack(inputs, dim=0) → Tensor
A = torch.tensor([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
B = torch.tensor([[12, 22, 33],
[44, 55, 66],
[77, 88,99]])
第0维