在学习卷积神经网络时,我们通常使用的就是公开的数据集,这里,我们不使用公开数据集,直接导入自己的图片数据,下面,就简单写个程序实现批量图片的导入。
import os
from PIL import Image
import numpy as np
import torch
path='E:\\3-10\\cat'
IMG=[]
filenames=[name for name in os.listdir(path)]
for i,filename in enumerate(filenames):
img=Image.open(os.path.join(path,filename))
img=img.resize((28,28))#将图片像素改为28x28
img=np.array(img)#将图像数据转为numpy
img=torch.from_numpy(img)#将numpy转换为tensor张量
img=img.permute(2,0,1)#将H,W,C转换为C,H,W
IMG.append(img)#得到图片列表
IMGEND=torch.stack([ig for ig in IMG],dim=0)#堆叠tensor
>>> IMGEND.size()
torch.Size([5, 3, 28, 28])
借助上述代码,我们便可将我们准备的图片带入计算机,以便开展接下来的任务。
注:对上述代码稍加修改,便可引入标签,修改图片大小,分为训练集和测试集等等操作。