前言

最近这几天在跑分类的相关程序,因为实验效果不好,就想着在数据预处理部分进行一个随机的数据增强来提升一下效果。可能我的这个数据增强方法比较新,所以与模型结合起来问题比较多。刚好在其中遇到了Tensor类型之前需要相互转换的问题,就记录一下,顺便分享。


一、数据是原始的图片

因为下面所示方法要求必须是np数组的形式,所以需要先把数据转一下。或者读入的时候就是np数组类型的。

img = cv2.imread('../a.png')#cv2.imread读入图片并将其存为ndarray格式,
#否则需要使用np.array()进行转换。
#转为float类型的tensor
img = torch.FloatTensor(img)
#转为Byte类型的tensor
img = torch.ByteTensor(img)
#转为long类型
img = torch.LongTensor(img)
#转为char类型
img = torch.CharTensor(img)
#转为short类型
img = torch.ShortTensor(img)
#转为double类型
img = torch.DoubleTensor(img)
#转为半精度浮点类型
img = torch.HalfTensor(img)
#转为int类型
img = torch.IntTensor(img)

二、如果变量已经为tensor类型,需要相互转换

代码如下(示例):

#tensor为已知的tensor类型的变量,img是我们的目标类型的变量

# torch.long() 将tensor转换为long类型
img = tensor.long()

# torch.half()将tensor转换为半精度浮点类型
img = tensor.half()

# torch.int()将该tensor转换为int类型
img = tensor.int()

# torch.double()将该tensor转换为double类型
img = tensor.double()

# torch.float()将该tensor转换为float类型
img = tensor.float()

# torch.char()将该tensor转换为char类型
img = tensor.char()

# torch.byte()将该tensor转换为byte类型
img = tensor.byte()

# torch.short()将该tensor转换为short类型
img = tensor.short()

总结

希望对大家有所帮助。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐