mean(): input dtype should be either floating point or complex dtypes. Got Long instead.

在对tensor求均值时报错,代码如下;

x = torch.tensor([[1,2,3],[4,5,6]])
print(x.mean())#求均值

解决方法:
修改数据类型为浮点数

x = torch.tensor([[1,2,3],[4,5,6]],dtype = torch.double)

原因:
在使用tensor()创建张量时,其数据类型是根据值来判定的。因此,要将数据类型转换为float再求均值。

x = torch.tensor([[1,2,3],[4,5,6]])#,dtype = torch.double
print(x, x.dtype)
#print(x.mean())#求均值

y = torch.tensor([[1.0,2.2,3.4],[4.0,5.0,6.0]])
print(y, y.dtype)
print(y.mean())#求均值

输出结果为:

tensor([[1, 2, 3],
        [4, 5, 6]]) torch.int64
tensor([[1.0000, 2.2000, 3.4000],
        [4.0000, 5.0000, 6.0000]]) torch.float32
tensor(3.6000)

你可能感兴趣的:(pytorch报错记录,深度学习,python,人工智能)