gpt4 book ai didi

c++ - 监控 Caffe 中的培训/验证过程

转载 作者:IT老高 更新时间:2023-10-28 22:18:46 24 4
gpt4 key购买 nike

我正在训练用于对图像进行分类的 Caffe 引用模型。我的工作要求我通过在整个训练集和分别具有 100K 和 50K 图像的验证集上每 1000 次迭代后绘制模型的准确度图来监控训练过程。现在,我采取天真的方法,每 1000 次迭代后制作快照,运行读取原始 JPEG 图像并转发到网络并输出预测标签的 C++ 分类代码。但是,这在我的机器上花费了太多时间(使用 Geforce GTX 560 Ti)

有什么更快的方法可以让我在训练集和验证集上获得快照模型的准确度图?

我正在考虑使用 LMDB 格式而不是原始图像。但是,我找不到有关使用 LMDB 格式在 C++ 中进行分类的文档/代码。

最佳答案

1) 您可以使用 NVIDIA-DIGITS应用程序来监控您的网络。它们提供了一个 GUI,包括数据集准备、模型选择和学习曲线可视化。此外,他们使用允许 multi-GPU training 的 caffe 分发。 .

2) 或者,您可以简单地使用 caffe 中的日志解析器。

/pathtocaffe/build/tools/caffe train --solver=solver.prototxt 2>&1 | tee lenet_train.log

这允许您将火车日志保存到“lenet_train.log”中。然后通过使用:

python /pathtocaffe/tools/extra/parse_log.py lenet_train.log .

您将训练日志解析为两个 csv 文件,其中包含训练和测试损失。然后,您可以使用以下 python 脚本绘制它们

import pandas as pd
from matplotlib import *
from matplotlib.pyplot import *

train_log = pd.read_csv("./lenet_train.log.train")
test_log = pd.read_csv("./lenet_train.log.test")
_, ax1 = subplots(figsize=(15, 10))
ax2 = ax1.twinx()
ax1.plot(train_log["NumIters"], train_log["loss"], alpha=0.4)
ax1.plot(test_log["NumIters"], test_log["loss"], 'g')
ax2.plot(test_log["NumIters"], test_log["acc"], 'r')
ax1.set_xlabel('iteration')
ax1.set_ylabel('train loss')
ax2.set_ylabel('test accuracy')
savefig("./train_test_image.png") #save image as png

关于c++ - 监控 Caffe 中的培训/验证过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31978186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com