前言
最近这几天在跑分类的相关程序,因为实验效果不好,就想着在数据预处理部分进行一个随机的数据增强来提升一下效果。可能我的这个数据增强方法比较新,所以与模型结合起来问题比较多。刚好在其中遇到了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()
总结
希望对大家有所帮助。