您的位置:首页 > 理论基础 > 计算机网络

神经网络与深度学习 自制MNIST测试数据供神经网络测试

2017-08-05 18:55 676 查看
一、利用windows自带画图工具



画布大小为28*28,用刷子工具,颜色为黑色,写字并保存。

二、python代码将其转为灰度图

from PIL import Image
import numpy as np

class Data2:
def getTestPicArray(self,filename):
im = Image.open(filename)
x_s = 28
y_s = 28
out = im.resize((x_s, y_s), Image.ANTIALIAS)
im_arr = np.array(out.convert('L'))
num0 = 0
num255 = 0
threshold = 100

for x in range(x_s):
for y in range(y_s):
if im_arr[x][y] > threshold:
num255 = num255 + 1
else:
num0 = num0 + 1

if (num255 > num0):
#print("convert!")
for x in range(x_s):
for y in range(y_s):
im_arr[x][y] = 255 - im_arr[x][y]
if (im_arr[x][y] < threshold):  im_arr[x][y] = 0
# if(im_arr[x][y] > threshold) : im_arr[x][y] = 0
# else : im_arr[x][y] = 255
# if(im_arr[x][y] < threshold): im_arr[x][y] = im_arr[x][y] - im_arr[x][y] / 2

out = Image.fromarray(np.uint8(im_arr))
out.save("C:\\Users\\Administrator\\Desktop\\out\\" + filename)
# print im_arr
nm = im_arr.reshape((1, 784))

nm = nm.astype(np.float32)
nm = np.multiply(nm, 1.0 / 255.0)

# print(nm.reshape((784,1)).shape)
#print(nm.shape)
return nm.reshape((784,1))
#   return nm

#getTestPicArray(r"C:\Users\Administrator\Desktop\2.png")
#Data2().getTestPicArray(r"2.png")


其中用到了第三方库

三、在原神经网络代码中加入自定义测试数据(详细见上一文章)

import mnist_loader
training_data, validation_data, test_data = mnist_loader.load_data_wrapper()
training_data = list(training_data)

import network
net = network.Network([784, 30, 10])
net.SGD(training_data, 30, 10, 2.0, test_data=test_data)

import image_data
import test4
for i in range(0,10):
file = str(i)+".png"
#data = image_data.ImageData().getArrayFromImage(file)
data = test4.Data2().getTestPicArray(file)
print("预测:",file,"的结果为",net.cjtest(data))
print("-----------------------------------------------------------------------")
for i in range(0,10):
file = str(i)+".png"
data = image_data.ImageData().getArrayFromImage(file)
#data = test4.Data2().getTestPicArray(file)
print("预测:",file,"的结果为",net.cjtest(data))


四、运行结果(准确性还有待提升)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐