Я пытаюсь получить доступ RTrees
Узлы и деревья. Имея следующий код:
Ptr<Rtrees> rt = RTrees::create();
...
...
rt->train(data);
vector<DTrees::Split> splits = rt->getSplits();
Я продолжаю получать нарушение доступа к памяти. Обратите внимание, что rt->getSplits()
работает само по себе, и я думаю, что проблема с типом данных splits
,
Кроме того, когда я читаю информацию о тренировочных данных и хочу скопировать ее в переменную:
std::vector<int> catMap;
data->getCapMap().copyTo(catMap);
он копирует мусор в carMap
и я должен скопировать его элемент за элементом вместо использования copyTo
метод.
У вас есть идеи по поводу этих двух вопросов?
Спасибо,
Эта ошибка памяти не выглядит как вызванная типом данных, и тип разбиений является правильным. Если вы сомневаетесь, используйте «авто»
auto splits = rt->getSplits();
Попробуйте другие функции, чтобы увидеть, доступна ли ваша модель RTrees,
auto roots = model.getRoots();
auto nodes = model.getNodes();
Установите точку отладки или сообщение журнала печати, чтобы увидеть, если они пусты, если нет ошибки доступа к памяти во время выполнения
std::cout << "num trees " << roots.size();
std::cout << "num nodes " << nodes.size();
Других решений пока нет …