TensorFlow2.0分类的正确用法
Author:Shiyipaisizuo
CODE
TensorFlow-MNIST
这是TensorFlow v2.0的MNIST数据集的分类,其中不仅包括公共MNIST数据集,还KMNIST(日语数据集),EMNIST(高级MNIST),FASHION_MNIST(fashion dataset),等等。在模型中,我们定义了很多模型,但是我们都只在这些数据集中使用lenet-5神经网络。因为我觉得这就够了。Top1的准确率达到99.8%。
准备工作
要求
pip install requirements.txt
您将安装此项目所需的所有软件包。
机器要求
- GPU: 泰坦V或更高版本。
- 磁盘:128G SSD。
- Python版本:python3.5或更高版本。
- CUDA: cuda10。
- CUDNN: cudnn7.4.5或更高版本。
- Tensorflow-gpu: 2.0.0-alpla0。
数据集介绍
MNIST
MNIST手写数字数据库(可从本页获得)包含一组60,000个示例的训练集和一组10,000个示例的测试集。
它是NIST提供的更大集合的子集。数字的大小已经标准化,并以固定大小的图像为中心。
它是一个很好的数据库,对于那些想要在实际数据上尝试学习技术和模式识别方法,同时在预处理和格式化上花费最少精力的人来说。
本网站提供四个文件:
train-images-idx3-ubyte.gz:训练集图像(9912422字节)
train-labels-idx1-ubyte.gz:训练集标签(28881字节)
t10k-images-idx3-ubyte.gz:测试集图像(1648877字节)
t10k-labels-idx1-ubyte.gz:测试集标签(4542字节)
KMNIST
KMNIST数据集是Kuzushiji数据集的改版,是MNIST数据集的一个替代。如果您的软件可以读取MNIST数据集,那么通过更改设置来测试KMNIST数据集是很容易的。我们提供三种类型的数据集,即Kuzushiji-MNIST、Kuzushiji-49、Kuzushiji-Kanji,用于不同的目的。
KMNIST数据集是由日本国立文学研究所(National Institute of Japanese Literature)的Kuzushiji数据集为基础,由ROIS-DS Center for Open Data in the Humanities (CODH)创建的。请参阅许可证。
GitHub: Kuzushiji-MNIST、Kuzushiji-49和Kuzushiji-Kanji存储库
introduction_kmnist.png关于Kuzushiji研究的信息可在第二届CODH研讨会上获得:Kuzushiji挑战-机器识别和人类转录的未来和Kuzushiji挑战!此外,Kaggle有许多关于如何使用dataset的例子。
Kaggle: Kuzushiji-MNIST | Kaggle
EMNIST
EMNIST数据集是从NIST特殊数据库19派生出来的一组手写字符数字,并转换为直接匹配MNIST数据集的28x28像素图像格式和数据集结构。关于数据集内容和转换过程的进一步信息,可以在本文中找到https://arxiv.org/abs/1702.05373v1。
格式
数据集以两种文件格式提供。数据集的两个版本包含相同的信息,并且完全是为了方便而提供的。第一个数据集以Matlab格式提供,可以通过Matlab和Python(使用sci .io)访问。loadmat功能)。数据集的第二个版本以与原始MNIST数据集相同的二进制格式提供,如http://yann.lecun.com/exdb/mnist/所述。
数据总结
这个数据集中提供了六种不同的分割。数据集的简要摘要如下:
-
EMNIST ByClass: 814,255个字符。62个不平衡类。
-
EMNIST ByMerge: 814,255个字符。47个不平衡类。
-
EMNIST平衡:131,600个字符。47个不平衡类。
-
EMNIST字母:145,600个字符。26个不平衡类。
-
EMNIST数字:280,000个字符。10个不平衡类。
-
EMNIST MNIST: 70000个字符。10个不平衡类。
NIST特殊数据库19的完整补充在ByClass和ByMerge拆分中可用。EMNIST平衡数据集包含一组字符,每个类具有相同数量的样本。EMNIST字母数据集将一组平衡的大写字母和小写字母合并到一个26类任务中。EMNIST数字和EMNIST MNIST数据集提供了与原始MNIST数据集直接兼容的平衡手写数字数据集。
有关数据集结构的详细信息,请参阅EMNIST文件[PDF BIB]。
训练
打印帮助
python train.py -h
快速使用
python train.py --name lenet --dir training_checkpoint
您将快速训练一个分类MNIST数据集的模型。
可选项:
-
使用其他数据
python train.py --dataset emnist --classes 62 --name lenet --dir training_checkpoint
-
使用特定的训练迭代
python train.py --epochs 10 --dataset emnist --classes 62 --name lenet --dir training_checkpoint