- TrainingListener:这个是对训练过程设定的监听器 。它可以实时反馈每个阶段的训练结果 。这些结果可以用于记录训练过程或者帮助 debug 神经网络训练过程中的问题 。用户也可以定制自己的 TrainingListener 来对训练过程进行监听 。
DefaultTrainingConfig config = new DefaultTrainingConfig(Loss.softmaxCrossEntropyLoss()) .addEvaluator(new Accuracy()) .addTrainingListeners(TrainingListener.Defaults.logging());try (Trainer trainer = model.newTrainer(config)){ // 训练代码}当训练器产生后,我们可以定义输入的 Shape 。之后就可以调用 fit 函数来进行训练 。fit 函数会对输入数据,训练多个 epoch 是并最终将结果存储在本地目录下 。/* * MNIST 包含 28x28 灰度图片并导入成 28 * 28 NDArray 。 * 第一个维度是批大小, 在这里我们设置批大小为 1 用于初始化 。 */Shape inputShape = new Shape(1, Mnist.IMAGE_HEIGHT * Mnist.IMAGE_WIDTH);int numEpoch = 5;String outputDir = "/build/model";// 用输入初始化 trainertrainer.initialize(inputShape);TrainingUtils.fit(trainer, numEpoch, trainingSet, validateSet, outputDir, "mlp");这就是训练过程的全部流程了!用 DJL 训练是不是还是很轻松的?之后看一下输出每一步的训练结果 。如果你用了我们默认的监听器,那么输出是类似于下图:[INFO ] - Downloading libmxnet.dylib ...[INFO ] - Training on: cpu().[INFO ] - Load MXNet Engine Version 1.7.0 in 0.131 ms.Training: 100% |████████████████████████████████████████| Accuracy: 0.93, SoftmaxCrossEntropyLoss: 0.24, speed: 1235.20 items/secValidating: 100% |████████████████████████████████████████|[INFO ] - Epoch 1 finished.[INFO ] - Train: Accuracy: 0.93, SoftmaxCrossEntropyLoss: 0.24[INFO ] - Validate: Accuracy: 0.95, SoftmaxCrossEntropyLoss: 0.14Training: 100% |████████████████████████████████████████| Accuracy: 0.97, SoftmaxCrossEntropyLoss: 0.10, speed: 2851.06 items/secValidating: 100% |████████████████████████████████████████|[INFO ] - Epoch 2 finished.NG [1m 41s][INFO ] - Train: Accuracy: 0.97, SoftmaxCrossEntropyLoss: 0.10[INFO ] - Validate: Accuracy: 0.97, SoftmaxCrossEntropyLoss: 0.09[INFO ] - train P50: 12.756 ms, P90: 21.044 ms[INFO ] - forward P50: 0.375 ms, P90: 0.607 ms[INFO ] - training-metrics P50: 0.021 ms, P90: 0.034 ms[INFO ] - backward P50: 0.608 ms, P90: 0.973 ms[INFO ] - step P50: 0.543 ms, P90: 0.869 ms[INFO ] - epoch P50: 35.989 s, P90: 35.989 s当训练结果完成后,我们可以用刚才的模型进行推理来识别手写数字 。四、最后在这个文章中,我们介绍了深度学习的基本概念,同时还有如何优雅的利用 DJL 构建深度学习模型并进行训练 。
推荐阅读
- 碧螺春的功效与作用,碧螺春的功效,喝碧螺春的好处
- 碧螺春茶叶的作用,碧螺春的品质等级
- 请停止在Python中无休止使用列表
- 石榴怎么剥皮?小妙招是什么?
- 谈谈Nginx和LVS各自的优缺点以及使用
- 求职|2022年“灵活用工”开启社会化智能用工新时代
- 百合红枣泡茶的效果,蒲公英桑叶茶的副作用
- 醋泡黄豆的作用 醋泡黄豆功效介绍
- 白茶常识简介,哪些人不宜食用早茶饼
- 柳尖泡茶功效与作用,荷叶泡茶的功效与作用有哪些
