数据处理
<>强版1本强>
#数据处理 进口操作系统 进口火炬 从火炬。跑龙套导入数据 从公益诉讼导入图像 进口numpy np #定义自己的数据集合 类DogCat (data.Dataset): def __init__(自我,根): #所有图片的绝对路径 一个=os.listdir(根) self.imgs=[os.path.join(根、k) k的一个 def __getitem__(自我,指数): img_path=self.imgs(指数) #狗→1只猫→0 标签=1如果img_path.split“狗”(“/?[1]0 pil_img=Image.open (img_path) 数组=np.asarray (pil_img) data=https://www.yisu.com/zixun/torch.from_numpy(数组) 返回数据、标签 def __len__(自我): 返回len (self.imgs) 数据集=DogCat(“。/数据/DogCat”) 打印(数据集[0]) >之前输出:
( (0)=215 203 191 206 194 182 211 199 187 & # 8942; 200 191 186 201 192 187 201 192 187 (1)=215 203 191 208 196 184 213 201 189 & # 8942; 198 189 184 200 191 186 201 192 187 (2)=215 201 188 209 195 182 214 200 187 & # 8942; 200 191 186 202 193 188 204 195 190 … (399年)=72 90 32 88 106年48 38 56个0 & # 8942; 158 161 106 36 87 85 105 98 52 (火炬。ByteTensor大小400 x300x3] , 1) >之前<强>上面的数据处理有下面的问题:强>
1。返回的样本的形状大小不一致,每一张图片的大小不一样。这对于需要批训练的神经网络来说很不友好。
2。返回的数据样本数值很大,没有归一化【1】
1对于上面的问题,pytorch torchvision是一个视觉化的工具包,提供了很多的图像处理的工具,其中变换模块提供了对公益诉讼的形象对象和张量对象的常用操作。
<强>对公益诉讼的形象常见的操作如下;强>
调整调整图片的尺寸,长宽比保持不变
CentorCrop、RandomCrop RandomSizeCrop裁剪图片
垫填充
ToTensor将公益诉讼图像转换为张量,会自动将[0255]归一化至[0,1]
<强>对张量的操作如下:强>
规范化标准化,即减均值,除以标准差
ToPILImage将张量转换为公益诉讼对图像象
<>强版本2 强>
#数据处理 进口操作系统 进口火炬 从火炬。跑龙套导入数据 从公益诉讼导入图像 进口numpy np 从torchvision导入转换 变换=transforms.Compose ([ transforms.Resize(224), #缩放图片,保持长宽比不变,最短边的长为224像素, #从transforms.CenterCrop(224),中间切出224 * 224的图片 transforms.ToTensor(), #将图片转换为张量,归一化至[0,1] transforms.Normalize(意味着=[5、5、5],std=[5、5、5]) #标准化至[1] ]) #定义自己的数据集合 类DogCat (data.Dataset): def __init__(自我,根): #所有图片的绝对路径 一个=os.listdir(根) self.imgs=[os.path.join(根、k) k的一个 self.transforms=变换 def __getitem__(自我,指数): img_path=self.imgs(指数) #狗→1只猫→0 标签=1如果img_path.split“狗”(“/?[1]0 pil_img=Image.open (img_path) 如果self.transforms: data=https://www.yisu.com/zixun/self.transforms (pil_img) 其他: pil_img=np.asarray (pil_img) data=torch.from_numpy (pil_img) 返回数据、标签 def __len__(自我): 返回len (self.imgs) 数据集=DogCat(“。/数据/DogCat”) 打印(数据集[0]) >之前输出:
( (0)=-0.2000 - -0.2627 -0.0824 -0.1765 -0.2627 -0.1686… -0.2078 - -0.1765 -0.2863 -0.2392 -0.3098 -0.3176… -0.1137 - -0.0118 -0.2941 -0.3176 -0.2392 -0.2784… …& # 8945;… -0.8196 - -0.8353 -0.8510 -0.7569 -0.5922 -0.1529… -0.8196 - -0.8588 -0.8275 -0.8353 -0.7255 -0.3255… -0.8353 - -0.8824 -0.8196 -0.9373 -0.7647 -0.4510… (1)=-0.0980 - -0.1529 0.0118 -0.0431 -0.1373 -0.0431… -0.0745 - -0.0431 -0.1608 -0.0980 -0.1686 -0.1765… 0.0431 - 0.1529 -0.1451 -0.1686 -0.0902 -0.1373… …& # 8945;… -0.7725 - -0.7961 -0.7961 -0.5529 -0.3804 0.0667… -0.7882 - -0.8275 -0.7804 -0.6314 -0.5137 -0.1137… -0.8039 - -0.8588 -0.7725 -0.7490 -0.5608 -0.2392… … (火炬。FloatTensor大小3 x224x224] , 1)pytorch数据处理:定义自己的数据集合实例