pytorch如何对image和label同时进行随机翻转
更新时间:2023年09月09日 11:38:29 作者:叫我小二吧
这篇文章主要介绍了pytorch如何对image和label同时进行随机翻转问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
pytorch对image和label同时进行随机翻转
在使用pytorch进行数据增广时碰到一个坑,对image和label分别进行增广,网络训练结果一直很差,查了很久才找到,原来分别image和label进行随机翻转操作时,是不同步的,记录之,防止以后再犯。
所以在对数据进行随机增广操作时,需要指定的参数,
代码如下:
image_path = '/home/org/19.bmp' label_path = '/home/mask/19.png' image = Image.open(image_path) print(image.size) label = Image.open(label_path) plt.figure() plt.subplot(2, 2, 1) plt.imshow(image) plt.subplot(2, 2, 2) plt.imshow(label) p = np.random.choice([0, 1])#在0,1二者中随机取一个, print(p) transform = transforms.Compose([ transforms.RandomHorizontalFlip(p),#指定是否翻转 transforms.ToTensor() ]) img = transform(image) lab = transform(label) unloader = transforms.ToPILImage() img = unloader(img) lab = unloader(lab) # print(img.shape) plt.subplot(2, 2, 3) plt.imshow(img) plt.subplot(2, 2, 4) plt.imshow(lab) plt.show()
结果如下:
pytorch image to tensor
from PIL import Image import os.path as osp import os from torchvision.transforms import ToTensor test_path = '../dataset/BSD500/images/test' images_ls = os.listdir(test_path) images_all_path = [] for image in images_ls: s_images_path = osp.join(test_path, image) images_all_path.append(s_images_path) # print(images_all_path) image = Image.open(images_all_path[0]).convert('YCbCr') # image.show() # print(image) y, cb, cr = image.split() print(y) print(cb) print(cr) # y.show() # cb.show() image_to_tensor = ToTensor() y = image_to_tensor(y) print(y.shape)
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
这篇文章主要介绍了Python面向对象程序设计之静态方法、类方法、属性方法,结合实例形式分析了Python静态方法、类方法、属性方法相关概念、原理、用法及相关操作注意事项,需要的朋友可以参考下2020-03-03Python 中pandas索引切片读取数据缺失数据处理问题
pandas是一个Python软件包,提供快速,灵活和富于表现力的数据结构,旨在使使用“关系”或“标记”数据既简单又直观。这篇文章主要介绍了pandas索引切片读取数据缺失数据处理,需要的朋友可以参考下2019-10-10pandas.DataFrame删除/选取含有特定数值的行或列实例
今天小编就为大家分享一篇pandas.DataFrame删除/选取含有特定数值的行或列实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-11-11
最新评论