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

一、利用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))


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




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值