当前位置:网站首页>Pytorch框架学习记录3——Transform的使用
Pytorch框架学习记录3——Transform的使用
2022-07-30 03:54:00 【柚子Roo】
Pytorch框架学习记录3——Transform的使用
1. 导入
from torchvision import transforms
2.ToTensor的用法
作用:将PIL图像或者numpy转换成tensor格式

from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
from PIL import Image
img_path = "C:\\Users\\hp\\PycharmProjects\pythonProject\\Pytorch_Learning\\flower_data\\train\daisy\\5547758_eea9edfd54_n.jpg"
img = Image.open(img_path)
tensor = transforms.ToTensor()
tensor_img = tensor(img)
writer = SummaryWriter("logs")
writer.add_image("tensor_img", tensor_img, 1)
writer.close()

3. Normalize的用法
用均值和标准差归一化张量图像,参数:mean, std;输入图像类型为tensor,输出类型为tensor
o u t p u t [ c h a n n e l ] = ( i n p u t [ c h a n n e l ] − m e a n [ c h a n n e l ] ) / s t d [ c h a n n e l ] output[channel] = (input[channel] - mean[channel]) / std[channel] output[channel]=(input[channel]−mean[channel])/std[channel]
# Normalize
transform_normal = transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
img_normal = transform_normal(img_tensor)
print(type(img_normal))
writer.add_image("Normalize", img_normal, 1)

4. RandomCrop 的用法
随机裁剪,参数size表示随机裁剪图片的大小,输入的图像类型为PIL类型,输出的类型也为PIL类型。
下面的这个例子是随机对图像剪裁10次,每次剪裁后的图像大小为32*32
# RandomCrop
transform_randomCrop = transforms.RandomCrop((32, 32))
for i in range(0, 10):
img_randomCrop = transform_randomCrop(img_PIL)
# print(type(img_randomCrop))
img_randomCrop = transform_tensor(img_randomCrop)
writer.add_image("RandomCrop", img_randomCrop, i)

5. Resize的用法
将输入的PIL图像裁剪成指定大小,输入参数为size(int类型或者turple类型),输出为PIL图像
# Resize
transform_resize = transforms.Resize((128, 128))
img_resize = transform_resize(img_PIL)
img_resize = transform_tensor(img_resize)
writer.add_image("Resize", img_resize, 1)

6. Compose的用法
该方法将所有方法集合到一起,按照顺序依次执行,用法示例如下:
# Compose
transform_compose = transforms.Compose([transform_resize, transform_tensor])
img_resize_2 = transform_compose(img_PIL)
writer.add_image("Compose", img_resize_2, 1)
writer.close()
7. 所有代码
from torch.utils.tensorboard import SummaryWriter
from PIL import Image
from torchvision.transforms import transforms
img_path = "C:\\Users\\hp\\PycharmProjects\pythonProject\\Pytorch_Learning\\flower_data\\train\daisy\\5547758_eea9edfd54_n.jpg"
writer = SummaryWriter("logs")
img_PIL = Image.open(img_path)
# ToTensor
transform_tensor = transforms.ToTensor()
img_tensor = transform_tensor(img_PIL)
# Normalize
transform_normal = transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
img_normal = transform_normal(img_tensor)
print(type(img_normal))
writer.add_image("Normalize", img_normal, 1)
# RandomCrop
transform_randomCrop = transforms.RandomCrop((32, 32))
for i in range(0, 10):
img_randomCrop = transform_randomCrop(img_PIL)
# print(type(img_randomCrop))
img_randomCrop = transform_tensor(img_randomCrop)
writer.add_image("RandomCrop", img_randomCrop, i)
# Resize
transform_resize = transforms.Resize((128, 128))
img_resize = transform_resize(img_PIL)
img_resize = transform_tensor(img_resize)
writer.add_image("Resize", img_resize, 1)
# Compose
transform_compose = transforms.Compose([transform_resize, transform_tensor])
img_resize_2 = transform_compose(img_PIL)
writer.add_image("Compose", img_resize_2, 1)
writer.close()
边栏推荐
猜你喜欢

vscode 调试和远程

OpenFeign implementation downgrade

Problems caused by List getting the difference

进程优先级 nice

Nacos集群分区

Nacos命名空间

小程序毕设作品之微信积分商城小程序毕业设计成品(5)任务书

Mini Program Graduation Works WeChat Points Mall Mini Program Graduation Design Finished Work (5) Task Book

forward与redirect的区别

小程序毕设作品之微信二手交易小程序毕业设计成品(2)小程序功能
随机推荐
逆向理论知识3【UI修改篇】
Nacos命名空间
小程序毕设作品之微信二手交易小程序毕业设计成品(4)开题报告
Mini Program Graduation Works WeChat Points Mall Mini Program Graduation Design Finished Products (1) Development Overview
Process priority nice
Basic introduction to protect the network operations
Sentinel Traffic Guard
Nacos achieves high availability
阿里巴巴按关键字搜索新品数据 API
Chapter 51 - Knowing the request header parameter analysis【2022-07-28】
Send it to your friends and let TA treat you to fried chicken!
List获取差集产生的问题
Let's learn the layout components of flutter together
进程优先级 nice
微服务进阶 Cloud Alibaba
flutter 记录学习不一样的动画(二)
小程序毕设作品之微信二手交易小程序毕业设计成品(2)小程序功能
Wechat second-hand transaction small program graduation design finished product (1) Development overview
一直空、一直爽,继续抄顶告捷!
SDL播放器实战