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

预测值和训练损失如下

mnist_acc_loss.png
pred_mnist.png
emnist_acc_loss.png
pred_emnist.png
kmnist_acc_loss.png
pred_kmnist.png

开源协议

Apache License 2.0

你可能感兴趣的:(TensorFlow2.0分类的正确用法)