Во-первых, я не понимаю, почему мне нужно компилировать библиотеку, поскольку она содержит только заголовок.
Поскольку я уже установил Armadillo (и это было сложно), я подумал, что это будет проще. Большая ошибка.
Я много чего перепробовал. Использование метода find_mlpack(), представленного в mlpack/Cmake/mlpack.cmake, но это не помогло.
Наиболее многообещающим способом было просто использовать target_include_directories в cmake с путем к зерновым, ensmallen, mlpack (к папке включения). Это было странно, потому что я смог правильно #включить их в свои файлы, но когда я попытался скомпилировать, некоторые структуры/модули/функции не были связаны (см. ниже)). В конце концов мне удалось добавить недостающий контекст вручную, но некоторые другие начали появляться, например, структура шаблона, которая, по-видимому, не была шаблоном, что было странно.
Я также пытался использовать vcpkg для установки всего (заняло 20 минут, переустановил все, начиная от компилятора Fortran, OpenMP, lapack, blas (хотя я установил MKL для броненосца) до множества vcpgk вещей), но в итоге у меня все равно было то же самое ошибки, т. е. некоторые вещи не были распознаны и недоступны (особенно из-за зерновых) (см. ниже).
Одной из ошибок является
ошибка C3861: 'CEREAL_NVP': примечание о том, что идентификатор невозможен:
'CEREAL_NVP' : объявление функции doit être disponible, автомобиль
аргументы не зависят от параметров модели. Диагностический
это продукт с функцией 'void
mlpack::Layer::serialize(Archive &,const uint32_t)', созданный
для компилятора. контекст создания модели (le plus
ancien) является частью компиляции модели класса 'mlpack::Layer'
(на английском языке): 'CEREAL_NVP': Объявление функции должно быть
доступным, поскольку ни один из аргументов не зависит от параметра модели.
Диагноз произошел в 'void
mlpack::Layer::serialize(Archive &,const uint32_t)',
созданная компилятором. контекст создания экземпляра модели (самый старый)
при компиляции модели класса 'mlpack::Layer'
Или просто:
фатальная ошибка C1083: невозможно выполнить включение файла :
'cereal/archives/binary.hpp' : такого файла или каталог
(Эту ошибку можно устранить, добавив включение в этот файл, но я подозреваю, что это ненормально и, следовательно, это не лучший способ решения этой проблемы)
Отрывок кода:
Код: Выделить всё
#include
#include
#include
#include
using namespace mlpack;
using namespace arma;
using namespace std;
int main() {
FFN model1(MeanSquaredError(), ConstInitialization(0.9));
// build layers - one linear layer and then the identity activation.
model1.Add(10, 1);// trainData.n_rows is the no. of variables in the regression
/* code */
return 0;
}
Я также рассматриваю возможность клонирования репозитория, но боюсь, что это не сработает, потому что ошибка, похоже, (в основном) связана с хлопьями.
Я просто хочу использовать нейронную сеть на C++ (предпочтительно используя броненосца), и все, что я нашел, это бесконечная борьба. Я мог бы сделать это самостоятельно, но это не было бы гибко, и мне было бы нелегко изменить алгоритм, который я использую.
Что вы предлагаете?
Подробнее здесь: https://stackoverflow.com/questions/798 ... re-broadly
Мобильная версия