在PyTorch里,可以在tensor里找到min, max, mean, sum 等aggregation值。
直接上代码
import torch
x = torch.arange(0, 100, 10)
print(x)
print(f"Minimum: {x.min()}")
print(f"Minimum: {torch.min(x)}")
print(f"Maximum: {x.max()}")
print(f"Maximum: {torch.max(x)}")
print(f"Mean: {x.type(torch.float32).mean()}")
print(f"Mean: {torch.mean(x.type(torch.float32))}")
print(f"Sum: {x.sum()}")
print(f"Sum: {torch.sum(x)}")
# 结果如下
tensor([ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90])
Minimum: 0
Minimum: 0
Maximum: 90
Maximum: 90
Mean: 45.0
Mean: 45.0
Sum: 450
Sum: 450
可以在tensor里找到最大值和最小值的位置,用到 torch.argmax()
和 torch.argmin()
。
print(f"Index where max value occurs: {x.argmax()}")
print(f"Index where min value occurs: {x.argmin()}")
# 结果如下
Index where max value occurs: 9
Index where min value occurs: 0
在深度学习中,会经常出现的问题是tensor的数据类型不对。如果一个tensor的数据类型是 torch.float64
,而另一个tensor的数据类型是 torch.float32
,运行起来就出错了。
要改变tensor的数据类型,可以使用 torch.Tensor.type(dtype=None)
其中的 dtype 参数是你想用的数据类型。
代码如下:
tensor = torch.arange(10., 100., 10.)
print(tensor.dtype)
tensor_float16 = tensor.type(torch.float16)
print(tensor_float16)
tensor_int8 = tensor.type(torch.int8)
print(tensor_int8)
# 输出
torch.float32
tensor([10., 20., 30., 40., 50., 60., 70., 80., 90.], dtype=torch.float16)
tensor([10, 20, 30, 40, 50, 60, 70, 80, 90], dtype=torch.int8)
看到这里了,给个赞呗~
标签:10,机器,tensor,dtype,torch,数据类型,aggregation,PyTorch,print From: https://blog.csdn.net/BSCHN123/article/details/136765210