本地图像存放情况一览

本地图像的存储路径:C:\Users\22130\Learning_Pytorch\shallow
具体存放形式:
image.png
“health_shallow”里存放着健康的毛细血管图像;”hypertension_shallow”里存放着高血压患者的毛细血管图像。其中”health_shallow”里面存放着170张图片,”hypertension_shallow”里面存放着252张图片,故图片总数共422张。”health_shallow”文件夹大小为47.4MB,”hypertension_shallow”文件夹大小为70.3MB,一共117.7MB。
随便打开一个”health_shallow”文件夹看看:
image.png

随便查看一个图像的属性,得知是png格式,分辨率是400*400,大小283KB。
再打开”hypertension_shallow”文件夹看看:
image.png
可以看出健康的和患有高血压的毛细血管肉眼看去没什么区别。

加载本地数据集代码

我们希望将图像统统导入,Pytorch自动识别文件夹名字即为下辖所有图像的标签。我们还希望将这么多的图像自动作一个数据集切分,其中80%是训练集,20%是测试集。至于训练集中健康图像与患病图像之间的比例暂时不设要求。

下面开始加载这种图片存放形式的数据集。了解具体加载原理及其他存放形式的数据集加载方法需查看:Pytorch加载本地图像数据集的方法

  1. #下面的代码需要用到的库
  2. import torch
  3. from torchvision import datasets, transforms
  4. from torch.utils.data import DataLoader
  5. num_workers = 0
  6. transforms = transforms.Compose([
  7. transforms.RandomResizedCrop(size=256, scale=(0.8, 1.0)),
  8. transforms.RandomRotation(degrees=15),
  9. transforms.ColorJitter(),
  10. transforms.RandomResizedCrop(224),
  11. transforms.RandomHorizontalFlip(),
  12. transforms.ToTensor(),
  13. transforms.Normalize(mean=[0.485, 0.456, 0.406],
  14. std=[0.229, 0.224, 0.225]),
  15. ])
  16. full_data = datasets.ImageFolder('./shallow/',transform=transforms)
  17. train_size = int(0.8 * len(full_data))
  18. print(train_size)
  19. test_size = len(full_data) - train_size
  20. train_dataset, test_dataset = torch.utils.data.random_split(full_data, [train_size, test_size])
  21. train_loader = DataLoader(train_dataset,batch_size=64,shuffle=True,num_workers=num_workers)
  22. test_loader = DataLoader(test_dataset,batch_size=64,shuffle=False,num_workers=num_workers)