不少小伙伴们总是直接找网上的代码就直接使用,其原理一点都不懂,然后洋洋得意啥都会。然后别人一问为什么,啥也不知。
我们今天仅从简单的mnist手写数字开始练练手,网络也使用最简单的LeNet网络结构。
首先是0这个数,28×28像素的尺寸,是单层像素的灰度图。
这里用opencv读取图片的话,shape输出是3层通道,所以用PIL进行读取
import numpy as np
from PIL import Image
img = Image.open('./data/Sample00_train/img00-001.png')
img1 = np.array(img) # 图片1变成numpy类型
np.set_printoptions(threshold=np.inf)
print(img1)
print(img1.shape)
对读取进来的图片查看每个像素值,输出结果如下
这个是一个28×28的二维矩阵,可以看到像素值为0的地方都代表为黑色区域,而有数值的地方,表示0这个