12.常见的transforms(一)
输入类型重点关注三种输入格式PIL格式使用Image.open()读取Tensor格式使用ToTensor()转换numpy数组使用cv.imread()读取输出类型不同Transform的输出格式可能不同需要特别注意作用每个Transform都有特定的图像处理功能内置函数call的作用python中__call__的作用__call__通过类的实例的调用来执行可以直接如下调用类的实例它会显示__call__需要传入的参数。ToTensorNormalizetransforms.Normalize 是 PyTorch torchvision.transforms 模块中用于‌图像数据标准化Normalization‌的关键预处理步骤。计算公式参数要求mean各通道均值序列std各通道标准差序列对于RGB图像需要提供3个值根据如上normalize的计算方法我们可以得出如果我们传递[0.5,0.5,0.5],[0.5,0.5,0.5]作为normalize的参数那么结果是2*input - 1归一化效果验证原始值0.8275 → 变换后0.6549计算过程终端中输入命令tensorboard --logdirsrc/logs查看归一化可视化的结果。代码示范如下fromtorch.utils.tensorboardimportSummaryWriterimportnumpyasnpfromPILimportImagefromtorchvisionimporttransforms writerSummaryWriter(logs)image_path../imgs/dog.pngimg_PILImage.open(image_path)img_arraynp.array(img_PIL)trans_totensortransforms.ToTensor()img_tensortrans_totensor(img_PIL)writer.add_image(Totensor,img_tensor)print(img_tensor[0][0][0])trans_normtransforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])img_normtrans_norm(img_tensor)print(img_norm[0][0][0])writer.add_image(Normalize,img_norm)writer.close()