如何将图片生成为神经网络可训练数据

在学习了神经网络的诸多案例后,很多同学都想实验一下,用神经网络训练自己的数据,使其能够应用于生活当中,但是却因为无法制作自己数据集而困扰,这里分享一下,通过python将数据整理存盘,制作成可训练的数据集。

在python中训练神经网络,以python的数据格式来讲,自己训练的每一份数据都是一个list并且有一个对应的标签【例:[[1231,4564],[1]]】分为训练数据和识别标签。这里我们以图片训练为例,先将一张图片转为单通道——灰度图然后再将图片进行转化为一串数据制作成一个list。

def Pic_change(Picture):   #将传入的二位图片转为一维的list
    Picture = cv2.cvtColor(Picture,cv2.COLOR_BGR2GRAY)
    Picture = cv2.resize(Picture,(200,200))
    list_load = []
    for i in range(200):
        for j in range(200):
            pixel = float(Picture[i][j])/255.0
            list_load.append(pixel)
    arr1 = np.array(list_load)
    return arr1

这里我们首先使用了opencv中的转换函数,使彩色图片转为单通道数据,并将其resize成一个固定大小,为了防止训练图片不一样大,通过循环得到每一个像素的值,用append方法添加到list中,其中除以255.0是为了使数据的取值范围在激励函数的取值范围内【注:灰度图像素取值为0-255,相除后取值在0-1之间,符合激励函数的输出范围】这样就可以得到一张可训练图片的list了

Train = []          #新建一个空的list用于保存图片
list = Pic_change(Picture)#得到Picture的数据
Train.append(list)
Train.append(label) #这样就获得了一个可以训练的拥有标签的list了

关于存储请参考另一篇手记

点赞