【Python机器学习基础教程8】神经网络用于手写识别

训练集数据     

http://www.pjreddie.com/media/files/mnist_train.csv

测试集数据 

https://raw.githubusercontent.com/makeyourownneuralnetwork/makeyourownneuralnetwork/master/mnist_dataset/mnist_test_10.csv

说明:每一行数据集第一个数据是正确的数字,其它均为像素值(28 * 28)。一般情况下,对于像素值,0表示黑,255表示白。但是mnist的数据恰好相反,所以后期对于自己手写的字体,要进行处理。

1、第一步,加载数据集,将其映射到0.01 - 1

data = np.loadtxt("mnist_train.csv", delimiter=',')

X_train = data[:, 1:]
X_train_scaled = (X_train / 255.0 * 0.99) + 0.01
y_train = data[:, 0].flatten()

2、第二步,训练

mlp = MLPClassifier(solver='lbfgs', activation='tanh', random_state=0, hidden_layer_sizes=[300])
mlp.fit(X_train_scaled, y_train)

3、第三步,测试训练集

test = np.loadtxt("mnist_test_10.csv", delimiter=',')
x_test = test[:, 1:]
x_test_scaled = (x_test / 255.0 * 0.99) + 0.01
y_test = test[:, 0].flatten()

print("predict:\n", mlp.predict(x_test_scaled))
print("true:\n", y_test)

4、第四步,识别自己手写的训练集

for i in range(0, 10):
    img_array = imageio.imread("pic/" + str(i) + ".png", as_gray=True)

    img_data = 255.0 - img_array.reshape(1, -1)
    img_data_scaled = (img_data / 255.0 * 0.99) + 0.01
    print("predict:" + str(i) + "res:", mlp.predict(img_data_scaled))

5、输出结果(存在一定误差)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值