从 caffe 二进制库调用 python 时获取 caffe 中间结果

Get caffe intermediate result when calling python from caffe binary lib

我正在使用 python caffe 的界面。在层实现文件 softmax_loss_layer.cu 中,mini-batch 中每个样本的损失将被相加并除以 batch size。所以 "softmaxlosslayer" 的输出是小批量的平均损失。

我想要的是获取存储在 *loss_data 中的每个样本的损失,但是当我尝试使用 std::coutfstream 时,没有任何反应。所以我认为事情变成了从 python.

调用 c++ 时如何从 c++ 二进制库中获取输出

非常感谢!

caffe 正在使用 库进行日志记录。如果你想输出一些东西,你应该需要使用glog的宏。例如:

GLOG(INFO) << "something to be printed";

当 运行 编译您的代码时,您需要确保环境变量 GLOG_minloglevel 设置为包含您想要的日志级别。也就是说,如果你写了一个级别为INFO的日志,那么你需要设置GLOG_minloglevel=1(或0,但不能超过)

有关 日志记录的详细信息,请参阅 此 "how to" 页面


注意:您正在尝试从 softmax_loss_layer.cu 代码获取输出:此代码在 GPU 上是 运行,因此您可能预计从中获取输出会遇到一些困难。如果你只是调试,你可以考虑调整 softmax_loss_layer.cpp 代码而不是 运行 在 CPU 模式:即设置 caffe.set_mode_cpu()