Могу ли я установить 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 вещей), но в итоге у меня все равно было то же самое ошибки, т. е. некоторые вещи не были распознаны и недоступны (особенно из-за зерновых) (см. ниже).
Одной из ошибок является

ошибка 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
Ответить

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

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

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

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

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