Во-первых, я не понимаю, почему мне нужно компилировать библиотеку, поскольку она содержит только заголовок.
Поскольку я уже установил Armadillo (и это было сложно), я подумал, что это будет проще. Большая ошибка.
Я много чего перепробовал. Использование метода find_mlpack(), представленного в mlpack/Cmake/mlpack.cmake, но это не помогло.
Наиболее многообещающим способом было просто использовать target_include_directories в cmake с путем к зерновым, ensmallen, mlpack (к папке включения). Это было странно, потому что я смог правильно #включить их в свои файлы, но когда я попытался скомпилировать, некоторые структуры/модули/функции не были связаны (см. ниже)). В конце концов я смог добавить недостающий контекст вручную, но некоторые другие начали появляться, например, структура шаблона, которая, по-видимому, не была шаблоном, что было странно.
Я также пытался использовать vcpkg для установки всего (заняло 20 минут, переустановил все, начиная от компилятора Fortran, OpenMP, lapack, blas (хотя я установил MKL для броненосца) до множества vcpgk вещей), но в итоге у меня все равно было то же самое ошибки, т.е. некоторые вещи не были распознаны и недоступны (особенно из-за круп) (см. ниже).
Одна из ошибок:
Код: Выделить всё
error C3861: 'CEREAL_NVP' : identificateur introuvable
note: 'CEREAL_NVP' : la déclaration de fonction doit être disponible, car aucun des arguments ne dépend d'un paramètre de modèle. Le diagnostic s'est produit dans la fonction 'void mlpack::Layer::serialize(Archive &,const uint32_t)' générée par le compilateur. le contexte d’instanciation du modèle (le plus ancien) est lors de la compilation du modèle de classe 'mlpack::Layer'
(in english) :
'CEREAL_NVP': The function declaration must be available, because none of the arguments depend on a model parameter. The diagnosis occurred in the 'void mlpack::Layer::serialize(Archive &,const uint32_t)' function generated by the compiler. the model instantiation context (oldest) is when compiling the class model 'mlpack::Layer'
Код: Выделить всё
fatal error C1083: Impossible d'ouvrir le fichier include : 'cereal/archives/binary.hpp' : No such file or directory
выдержка из кода
Код: Выделить всё
#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
Мобильная версия