深度学习第P1周:
实现mnist手写数字识别
1. mnist数据库
我先查了一下什么叫做mnist原来是nist发布的一个256个手写的数字。
MNIST是什么
我想很多菜鸟和我一样,开始零基础学习机器学习,没办法火啊,为了钱大家都是冲呀。估计很多人开始学习ML,就一头雾水,完全不知道在说什么。因为学习模式和学习其他语言完全不同,我们知道学习其他语言的时候,第一个程序就是打印“Hello World”。
其实机器学习是在某个框架下,使用某种语言,来解决问题。因此对于零基础的菜鸟而言,我们需要先学习好某种语言,可以推荐Python,因为功能强大,而且语法相对简单,也可以使用C++。框架呢,个人推荐是TensorFlow2,因为google的大腿粗啊。
什么是MNIST
建议在了解Python后,开始在TF2的框架下进行。
机器学习的入门就是MNIST。MNIST 数据集来自美国国家标准与技术研究所,是NIST(National Institute of Standards and Technology)的缩小版,训练集(training set)由来自 250 个不同人手写的数字构成,其中 50% 是高中学生,50% 来自人口普查局(the Census Bureau)的工作人员,测试集(test set)也是同样比例的手写数字数据。
获取MNIST
MNIST 数据集可在http://yann.lecun.com/exdb/mnist/获取,图片是以字节的形式进行存储,它包含了四个部分:
Training set images: train-images-idx3-ubyte.gz (9.9 MB, 解压后 47 MB, 包含 60,000 个样本)
Training set labels: train-labels-idx1-ubyte.gz (29 KB, 解压后 60 KB, 包含 60,000 个标签)
Test set images: t10k-images-idx3-ubyte.gz (1.6 MB, 解压后 7.8 MB, 包含 10,000 个样本)
Test set labels: t10k-labels-idx1-ubyte.gz (5KB, 解压后 10 KB, 包含 10,000 个标签)
此数据集中,训练样本:共60000个,其中55000个用于训练,另外5000个用于验证。测试样本:共10000个,验证数据比例相同。
数据集中像素值:
a)使用python读取二进制文件方法读取mnist数据集,则读进来的图像像素值为0-255之间;标签是0-9的数值。
b)采用TensorFlow的封装的函数读取mnist,则读进来的图像像素值为0-1之间;标签是0-1值组成的大小为1*10的行向量。
2. 安装环境
●难度:小白入门⭐
●语言:Python3、Pytorch
gao:
python 和pytorch的版本您用的是什么?
K同学啊:
python3.6.5
1.10.0+cu113
conda create --name k1 python=3.6 -y
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
-
我安装了pycharm2021。然后,创建了一个项目,并创建了一个k2的环境。接下来就是安装cuda和pytorch了。我是用的cuda11.7,我卸载了,然后安装了11.3
-
然后,我就是,安装了env k3
conda create --name k3 python=3.6 -y -
我在env k3中安装pytorch
conda install pytorch1.10.0 torchvision0.11.0 torchaudio==0.10.0 cudatoolkit=11.3 -c pytorch -c conda-forge
我修改了一下.condarc文件。
我设置了国内的源。
Anaconda 镜像使用帮助
Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。
Anaconda 安装包可以到 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 下载。
TUNA 还提供了 Anaconda 仓库与第三方源(conda-forge、msys2、pytorch等,查看完整列表)的镜像,各系统都可以通过修改用户目录下的 .condarc 文件。Windows 用户无法直接创建名为 .condarc 的文件,可先执行 conda config --set show_channel_urls yes 生成该文件之后再修改。
注:由于更新过快难以同步,我们不同步pytorch-nightly, pytorch-nightly-cpu, ignite-nightly这三个包。
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
环境的安装,我参考的是动手学深度学习的安装教程。
安装¶
我们需要配置一个环境来运行 Python、Jupyter Notebook、相关库以及运行本书所需的代码,以快速入门并获得动手学习经验。
安装 Miniconda
最简单的方法就是安装依赖Python 3.x的Miniconda。 如果已安装conda,则可以跳过以下步骤。访问Miniconda网站,根据Python3.x版本确定适合你的系统的版本。
如果你使用macOS,假设你的Python版本是3.8(我们的测试版本),你将下载名称包含字符串“MacOSX”的bash脚本,并执行以下操作:
#