Pytorch框架学习记录3——Transform的使用
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\PycharmProjectspythonProject\Pytorch_Learning\flower_data\traindaisy\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\PycharmProjectspythonProject\Pytorch_Learning\flower_data\traindaisy\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()
上一篇:
JS实现多线程数据分片下载
下一篇:
史上最全架构师知识图谱(纯干货)