Могу ли я установить mlpack, используя только заголовки, и как установить mlpack в более широком смысле? [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Могу ли я установить mlpack, используя только заголовки, и как установить mlpack в более широком смысле? [закрыто]

Сообщение Anonymous »

Я пытался установить mlpack разными способами.
Во-первых, я не понимаю, почему мне нужно компилировать библиотеку, поскольку она содержит только заголовок.
Поскольку я уже установил 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»