Я модифицировал пример программы на C ++ из библиотеки глубокого обучения Caffe, и я заметил этот код на линия 234 на это, кажется, не ссылаются снова.
::google::InitGoogleLogging(argv[0]);
Предоставленный аргумент представляет собой файл с прототипом, который определяет параметры модели глубокого обучения, которую я вызываю. Меня смущает то, куда идут результаты этой строки? Я знаю, что они в конечном итоге используются в программе, потому что, если я сделаю ошибку в файле prototxt, то произойдет сбой программы. Однако я изо всех сил пытаюсь увидеть, как данные передаются в класс, выполняющий задачи классификации.
Прежде всего, argv[0]
является не первый аргумент, который вы передаете в свой исполняемый файл, а скорее имя исполняемого файла. Итак, вы переходите к ::google::InitGoogleLogging
имя исполняемого файла, а не файл prototxt.
'glog'
Модуль (Google Logging) использует это имя для оформления записей журнала, которые он выводит.
Во-вторых, caffe использует google logging (ака 'glog'
) как его модуль регистрации, и, следовательно, этот модуль должен быть инициализирован один раз при запуске caffe. Вот почему у вас есть это
::google::InitGoogleLogging(argv[0]);
в вашем коде.