pytorch深度神经元网络新手入门
本文旨在介绍如何准备自己的照片数据信息实例,并利用pytorch深度神经元网络进行训练。

图片数据的准备工作
图片数据主要有两种状况:
- 全部图片放到一个文件夹内,此外有个txt文件表明标识。
- 不同类型照片放到不同类型的文件夹内,文件夹便是图形的类型。
对于这两个不同的状况,数据的准备工作也有所不同,第一类状况可以定制一个Dataset,第二类状况可以调用torchvision.datasets.ImageFolder去处理。
全部图片放到一个文件夹内
以mnist数据的10000个test为例,先将test集的10000个图片保存出来,并生成相应的标签txt文档。然后构建一个空文件夹mnist_test,用以储存10000张照片,并运行代码:
import torch
import torchvision
import matplotlib.pyplot as plt
from skimage import io
mnist_test=torchvision.datasets.MNIST('./mnist',train=False,download=True)
print('test set:',len(mnist_test))
f=open('mnist_test.txt','w')
for i,(img,label)in enumerate(mnist_test):
img_path="./mnist_test/"+str(i)+".jpg"
io.imsave(img_path,img)
f.write(img_path+''+str(label)+'n')
f.close()
10000张图片就保存在mnist_test文件夹里了,并在当前目录下生成了一个mnist_test.txt的文件。
不同类别的图片放在不同的文件夹内
以flowers数据集为例,共有五类照片,分别放在5个文件夹下。准备好数据后,直接利用torchvision里面的ImageFolder调用,代码如下:
import torch
import torchvision
from torchvision import transforms,utils
import matplotlib.pyplot as plt
img_data=torchvision.datasets.ImageFolder('D:/bnu/database/flower',
transform=transforms.Compose([
transforms.Scale(256),
transforms.CenterCrop(224),
transforms.ToTensor()])
)
print(len(img_data))
data_loader=torch.utils.data.DataLoader(img_data,batch_size=20,shuffle=True)
print(len(data_loader))
def show_batch(imgs):
grid=utils.make_grid(imgs,nrow=5)
plt.imshow(grid.numpy().transpose((1,2,0)))
plt.title('Batch from dataloader')
for i,(batch_x,batch_y)in enumerate(data_loader):
if(i<4):
print(i,batch_x.size(),batch_y.size())
show_batch(batch_x)
plt.axis('off')
plt.show()
以上就是准备照片数据的过程,接下来就可以利用pytorch深度神经元网络进行训练了。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6894.html
