2.Numpy
2.17 dtype, astype
1 | a = np.array([-1, 1]) |
另外如果从浮点数用astype转换成整数或者无符号整数如下:
1 | a = np.array([-1.23]) |
3. enumerate(), Python的内置函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
enumerate(sequence, [start=0])
1 | list1 = ["这", "是", "一个", "测试"] |
enumerate用于统计文件行数
1 | # method 1 |
4. Deep Learning From Scratch
4.1 Mnist数据集初体验
经过一段时间的Numpy的学习,上一周又回到书本上,把之前学过的数据集的内容又看了一遍。第一遍的时候,不知所云,主要是因为Numpy知识的缺乏,第二遍后,终于理解了书中代码的内容。下面是书中源码的备注和自己的理解。
第一个源码:mnist.py 目的是下载训练和测试数据,并转化为数组,然后保存在本地pickle文件里面
1 | # coding: utf-8 |
第二个源码:neuralnet_mnist.py 目的是利用训练好的数据,测试判断手写字的准确率
1 | # coding: utf-8 |
第三个源码:neuralnet_mnist_batch.py 目的是对数据进行批量处理
1 | # coding: utf-8 |
初体验以及遗留的问题:
- 如果没有Numpy基础理解这些源代码会比较难。
- 识别手写字是个很神奇的事情,也可以通过数组之间的运算来实现。
- 问题1:怎么设置frombuffer函数的offset参数,在源码中要设置为16或者8呢?
- 问题2:为什么MNIST的神经网络中隐藏层的神经元个数要设置成50和100,而不设置成其他?
- 问题3:怎么通过第一层每个神经元的像素值输入就可以判断数字是什么,这是什么原理?