详细内容或原文请订阅后点击阅览
如何从头开始在 Tensorflow 中构建自定义的可用于生产的深度学习训练循环
使用检查点和 Tensorboards 可视化在 Tensorflow 和 Python 中构建自定义训练循环
来源:AI夏令营毫无疑问,训练是开发机器学习应用程序最重要的部分。当你开始意识到你的模型是否值得,你的超参数应该是什么样子,以及你需要在你的架构中改变什么时,你就会开始意识到。一般来说,大多数机器学习工程师会花相当多的时间进行训练,尝试不同的模型,调整他们的架构,并发现他们问题的最佳指标和损失。
在本文中,我们将继续“生产中的深度学习”系列,为我们目前使用的分割示例构建一个模型训练器。我认为这次最好不要概述基本主题和软件工程原理,而是逐步完成整个开发生命周期。因此,我们将像在日常工作中一样对整个 Trainer 类进行编程。这也是一个应用我们在本系列中讨论的所有最佳实践的好机会。我们将探索如何实时构建高性能和高度可维护的软件。
为我们的分割示例构建模型训练器所以这次要准备好大量代码。事不宜迟,让我们开始吧。
在 Tensorflow 中构建训练循环
首先。让我们回顾一下到目前为止的代码。到目前为止,我们的 colab 笔记本中只有样板 Keras 代码,其中包括模型编译和拟合。
self.model.compile(optimizer=self.config.train.optimizer.type,
自身 . 模型 . 编译 ( 优化器 = 自身 . 配置 . 训练 . 优化器 . 类型 ,loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
损失 = tf 。 keras 。 损失 。 SparseCategoricalCrossentropy ( from_logits = True ) ,metrics=self.config.train.metrics)
metrics = self . 配置 。 火车 . 指标 )LOG.info('训练已开始')
LOG . 信息 ( '训练已开始' )model_history = self.model.fit(self.train_dataset, epochs=self.epoches,
model_history = self . 模型 . 拟合 ( self . train_dataset , epochs = self . 纪元 ,steps_per_epoch=self.steps_per_epoch,
steps_per_epoch = 。