飞码网-免费源码博客分享网站

点击这里给我发消息

使用Neptune跟踪Jupyter笔记本中的深度学习实验

飞码网-免费源码博客分享网站 爱上飞码网—https://www.codefrees.com— 飞码网-matlab-python-C++ 爱上飞码网—https://www.codefrees.com— 飞码网-免费源码博客分享网站
首先,让我们在Neptune中创建一个实验。Neptune可以帮助你进行实验管理,或者跟踪实验元数据(如代码版本、数据版本、超参数、环境和指标)。
neptune.create_experiment(
    name = 'experiment-example',
    params={'learning_rate':0.1}
)

当指标因新发现或新规格而变化时,尽可能多地记录指标将为将来的自我节省很多麻烦。 

不同的评估指标包括分类准确性,对数损失,混淆矩阵,曲线下面积,F1得分,平均绝对误差,均方误差。跟踪这些内容可以帮助您评估机器学习算法和模型的性能。 

例如,您的DL模型可以为您提供适当的准确性得分,对数损失不佳Neptune可以为每个实验很好地组织所有这些指标。 

您可以使用Neptune记录一个简单的指标,例如准确性:

neptune.log_metric('classification_accuracy', 0.99)
您还可以记录更复杂的指标,如混淆矩阵。
neptune.log_metric('diagnostics', 'confusion_matrix.png')
DL in notebooks Neptune
现在,让我们通过一个深度学习的例子,我们在每个批次和epoch之后记录指标。

更高级的DL模型会经历数百个epoch。在每个epoch之后手动跟踪准确率、批次损失和其他指标是不可能的。

如果你的模型性能不是很好,你必须弄清楚你是否需要更多的数据,降低模型的复杂性,或者找到其他解决方案。

为了确定下一步,你必须知道你的模型是否存在偏差或方差问题。如果确实如此,我们可以使用数据预处理技术来排除故障。

学习曲线显示了训练集大小和所选评估指标之间的关系,对于诊断模型性能非常有用。Neptune会在模型训练时自动生成学习曲线,并在每个纪元或批次后记录指标。

但首先,你必须创建一个 NeptuneLogger 回调。
from tensorflow.keras.callbacks import Callback
class NeptuneLogger(Callback):
   def on_batch_end(self, batch, logs={}):
       for log_name, log_value in logs.items():
           neptune.log_metric(f'batch_{log_name}', log_value)
   def on_epoch_end(self, epoch, logs={}):
       for log_name, log_value in logs.items():
           neptune.log_metric(f'epoch_{log_name}', log_value)
接下来,创建一个实验,给它起个名字,并记录一些超参数。

在这里,我们把时代大小定为7,批次大小定为40。 
EPOCH_NR = 7
BATCH_SIZE = 40
neptune.create_experiment(name='keras-metrics',
                         params={'epoch_nr': EPOCH_NR,
                                 'batch_size': BATCH_SIZE},
                         tags=['advanced'],
                         )
最后,将Neptune记录器传递给Keras回调。
history = model.fit(x=x_train,
                   y=y_train,
                   epochs=EPOCH_NR,
                   batch_size=BATCH_SIZE,
                   validation_data=(x_test, y_test),
                   callbacks=[NeptuneLogger()])
在Neptune内部,你可以监控你的学习曲线,因为他们的训练,这是一个独特的功能,让你很容易观察效率。
DL in notebooks Neptune monitoring

Jupyter笔记本是机器学习的好工具,但最好的工作方式是使用Neptune这样的平台。
飞码网-免费源码博客分享网站 爱上飞码网—https://www.codefrees.com— 飞码网-matlab-python-C++ 爱上飞码网—https://www.codefrees.com— 飞码网-免费源码博客分享网站
赞 ()

相关推荐

内容页底部广告位3
留言与评论(共有 0 条评论)
   
验证码: