本地图像存放情况一览
本地图像的存储路径:C:\Users\22130\Learning_Pytorch\shallow
具体存放形式:
“health_shallow”里存放着健康的毛细血管图像;”hypertension_shallow”里存放着高血压患者的毛细血管图像。其中”health_shallow”里面存放着170张图片,”hypertension_shallow”里面存放着252张图片,故图片总数共422张。”health_shallow”文件夹大小为47.4MB,”hypertension_shallow”文件夹大小为70.3MB,一共117.7MB。
随便打开一个”health_shallow”文件夹看看:
随便查看一个图像的属性,得知是png格式,分辨率是400*400,大小283KB。
再打开”hypertension_shallow”文件夹看看:
可以看出健康的和患有高血压的毛细血管肉眼看去没什么区别。
加载本地数据集代码
我们希望将图像统统导入,Pytorch自动识别文件夹名字即为下辖所有图像的标签。我们还希望将这么多的图像自动作一个数据集切分,其中80%是训练集,20%是测试集。至于训练集中健康图像与患病图像之间的比例暂时不设要求。
下面开始加载这种图片存放形式的数据集。了解具体加载原理及其他存放形式的数据集加载方法需查看:Pytorch加载本地图像数据集的方法。
#下面的代码需要用到的库
import torch
from torchvision import datasets, transforms
from torch.utils.data import DataLoader
num_workers = 0
transforms = transforms.Compose([
transforms.RandomResizedCrop(size=256, scale=(0.8, 1.0)),
transforms.RandomRotation(degrees=15),
transforms.ColorJitter(),
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225]),
])
full_data = datasets.ImageFolder('./shallow/',transform=transforms)
train_size = int(0.8 * len(full_data))
print(train_size)
test_size = len(full_data) - train_size
train_dataset, test_dataset = torch.utils.data.random_split(full_data, [train_size, test_size])
train_loader = DataLoader(train_dataset,batch_size=64,shuffle=True,num_workers=num_workers)
test_loader = DataLoader(test_dataset,batch_size=64,shuffle=False,num_workers=num_workers)