深度学习入门项目之MNIST(DeepLearning4j)

本文通过Deeplearning4j库介绍如何使用MNIST数据集训练一个能识别手写数字的神经网络。内容包括设置超参数、构建神经网络模型,并对训练和测试过程进行了简述。
摘要由CSDN通过智能技术生成




deeplearning4j

MNIST是一个手写数字图像的数据集,每幅图像都由一个整数标记。它主要用于机器学习算法的性能对标。深度学习算法处理MNIST的效果相当好,准确率可达到99.7%以上。

我们将用MNIST来训练一个神经网络,使之能读取每幅图像并预测其中的数字。首先需要安装Deeplearning4j。

MNIST数据集包含一个有6万个样例的训练集和一个有1万个样例的测试集。训练集用于让算法学习如何准确地预测出图像的整数标签,而测试集则用于检查已训练网络的预测有多准确。

这在机器学习领域中被称为有监督学习,因为我们已经知道图像预测所应该得出的正确答案。训练集能起到监督和指导的作用,在神经网络预测错误时予以纠正。




deeplearning4j

我们将在这个文件中配置神经网络,训练模型,评估结果。建议您结合其中的代码来学习本教程。


设置变量

final int numRows = 28; // 矩阵的行数。
    final int numColumns = 28; // 矩阵的列数。
    int outputNum = 10; // 潜在结果(比如0到9的整数标签)的数量。
    int batchSize = 128; // 每一步抓取的样例数量。
    int rngSeed = 123; // 这个随机数生成器用一个随机种子来确保训练时使用的初始权重维持一致。下文将会说明这一点的重要性。
    int numEpochs = 15; // 一个epoch指将给定数据集全部处理一遍的周期。

在我们的示例中,每一幅MNIST图像的大小是28x28像素,这意味着输入数据是2 8 numRows x 28 numColumns 的矩阵(矩阵是深度学习的基本数据结构)。其次,MNIST包含10种可能出现的结果(0到9的数字标签),即o utputNum

batchSize 和 numEpochs必须根据经验选择,而经验则需要通过实验来积累。每批次处理的数据越多,训练速度越快;epoch的数量越多,遍历数据集的次数越多,准确率就越高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值