使用虚拟环境的好处,是可以为这个项目单独安装依赖的库,不用担心为了学一个什么东西而把系统中的 Python 搞得乱七八糟。直接打开 PyCharm 中的 Terminal,就可以进入这个项目的虚拟环境,在这个 Terminal 中运行的命令,默认就在这个项目的虚拟环境中执行。我们可以在这个 Terminal 中运行
pip3 install命令安装所有需要的库。在 PyCharm 中使用pip3 install命令时,有一个令人头痛的问题,那就是从国外的源下载的速度太慢,我们可以替换成国内的源。我太懒,都是使用临时替换,只需要添加-i 源地址参数就可以了。例如,要安装 numpy,并且选择从阿里云下载,就使用pip3 install numpy -i upload/201812191537446064.png" style="border: 0px; max-width: 100%; height: auto;" alt="" />常用的国内源有:
- 清华:upload/201812191537451401.png" style="border: 0px; max-width: 100%; height: auto;" alt="" />
PyCharm 最大的优势当然是它的自动代码提示了。不管是写一个
.py文件,还是直接使用 PyCharm 中的 Python Console,就是有非常好的代码提示的。Python Console 还有一个非常棒的功能,就是可以观察每一个变量的值,真的是太方便了。如下图:
而在系统的终端中直接运行 Python3,我们是得不到这么好的辅助功能的。如下图:

可以看到,这个神经网络达到了 98.9% 的精度。下面,我自己手写一个数字测试一下。先打开 Inkscape,自己随便写一个数字,如下图:

保存为
~/test.png。然后,用下面的代码把该图片读入内存,并更改大小为 28×28 像素,最后转化为灰度图像。这些操作都使用 PIL 完成。PIL 操作图像那是相当的方便。from PIL import Image image = Image.open('/home/youxia/test.png').resize((28,28)).convert('L')然后,将该图像转化为 numpy 的数组,并将其中的数据处理为 0 到 1 之间的浮点数。
import numpy as np im = np.array(image) im = 255 - im im = im.astype('float32') / 255.0可以使用 matplotlib 查看一下该图像,代码如下:
import matplotlib.pyplot as plt plt.imshow(im, cmap=plt.cm.binary)这是我们处理好之后的图像是下面这个效果,和 MNIST 自带的图像基本基本一致:

下面使用我们前面训练的神经网络来识别该图片,使用 predict 函数即可。识别时,需要将图像数据的 shape 更改为 (1,784):
network.predict(im.reshape(1,784))返回的值是一个包含是个数字的列表,代表该图片可能为数字 0-9 的概率,可以看到,其中第 6 项,也就是为数字 5 的概率最大,接近于 1:
array([[2.19245143e-11, 7.56166017e-13, 2.06190620e-10, 3.12406366e-04, 1.12510295e-13, 9.99686599e-01, 8.85503199e-11, 2.70172443e-11, 2.85677032e-07, 7.55779013e-07]], dtype=float32)如果不想自己用眼睛去判断哪个概率值最大,可以使用 numpy 的 argmax 函数,如下:
np.argmax(network.predict(im.reshape(1,784)))返回结果为几,就说明识别出的数字为几,如下:
5关键字:
- 清华:upload/201812191537451401.png" style="border: 0px; max-width: 100%; height: auto;" alt="" />
青岛软件培训
可能你正在寻找一家靠谱的IT培训机构,
渴望突破职业瓶颈,
找一份得体的工作。
恰巧万码学堂正在寻找像你这样不甘平凡的追光者!
我们拒绝纸上谈兵,直接参与真实开发流程!
现在行动,未来可期
立即拨打0532-85025005,预约免费职业规划咨询
前20名咨询者赠送《2025高薪技术岗位白皮书》!
你不是在报名课程,而是在投资五年后的自己!
