我一直在修改来自Caffe深度学习库的 C++示例程序,并注意到第234行上的这段代码似乎没有被再次引用。 ::google::InitGoogleLogging(argv[0]); 提供的参数是一个prototxt文件,它定义了我调用的深度学习模型的参数。让我困惑的是,这一行的结果去哪里了?我知道它们最终会在程序中被使用,因为如果我在prototxt文件中犯了一个错误,程序就会崩溃。然而,我很难看到数据如何传递给执行分类任务的类。
首先,argv[0] 不是你传递给可执行文件的第一个参数,而是 可执行文件名。 因此,您将可执行文件名传递给 ::google::InitGoogleLogging 而不是 prototxt 文件。 'glog' 模块(即 google 日志记录)使用这个名字来修饰它输出的日志条目。其次,caffe 使用 google 日志记录 (又名 'glog') 作为其日志记录模块,因此必须在运行 caffe 时初始化此模块。这就是为什么您会看到这个代码:::google::InitGoogleLogging(argv[0]); 在你的代码中。
initGoogleLogging
的参数是在命令行上传递给应用程序的第一个参数。这通常是正在执行的程序文件的路径(几乎总是但仍不保证)。您应该从Google Logging库的文档开始阅读。 - Captain Obvlious