Tensor及其基本操作完整版链接
https://zhuanlan.zhihu.com/p/36233589
Use tensor.item() to convert a 0-dim tensor to a Python number
输出:
torch.sum() #返回总和
torch.mean() #返回平均值
torch.unique(input, sorted=False) #返回唯一的数值,每个数值返回一次.
>>> output = torch.unique(torch.tensor([1, 3, 2, 3], dtype=torch.long))
>>> output
tensor([ 2, 3, 1])
y_hat = torch.tensor([[0.1, 0.3, 0.6], [0.3, 0.2, 0.5]])
y = torch.LongTensor([0, 2])
print(y_hat.gather(1, y.view(-1, 1)))
# 定义损失函数 (交叉熵损失函数有一个负号)
def cross_entropy(y_hat, y):
return - torch.log(y_hat.gather(1, y.view(-1, 1)))
print(cross_entropy(y_hat, y))
a = cross_entropy(y_hat, y)
print(a.sum())
print(a.sum().item())
输出
tensor([[0.1000],
[0.5000]])
tensor([[2.3026],
[0.6931]])
tensor(2.9957)
2.995732307434082
y = torch.LongTensor([0, 2])
print(y.shape)
print(y.shape[0])
输出
torch.Size([2])
2
y是一个一维向量,y.shape[0] 得到的是这个一维向量中元素的个数。