Я использую caffe для Windows и получаю ошибки сегментации, которые я не могу определить. Это происходит, когда программа выходит, и WinDbg сказал scalar deleting destructor
, не знаю, где была выделена память. Мой полный код (в настоящее время фиктивный код пытается сузить ее, но это происходит только иногда):Ошибка сегментации с помощью caffe
#include <string>
#include <vector>
#include "boost/algorithm/string.hpp"
#include "google/protobuf/text_format.h"
#include <stdio.h>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include "caffe/blob.hpp"
#include "caffe/common.hpp"
#include "caffe/net.hpp"
#include "caffe/proto/caffe.pb.h"
#include "caffe/util/db.hpp"
#include "caffe/util/format.hpp"
#include "caffe/util/io.hpp"
using caffe::Blob;
using caffe::Caffe;
using caffe::Datum;
using caffe::Net;
using std::string;
namespace db = caffe::db;
int main(int argc, char** argv) {
// Initialize logging with program call. First thing that needs to be done
::google::InitGoogleLogging(argv[0]);
cv::Mat mean_;
// Set Caffe to run in CPU only mode
Caffe::set_mode(caffe::Caffe::CPU);
std::vector<std::string> labels_;
/*std::shared_ptr<Net<float>> caffe_test_net;*/
Net<float>* caffe_test_net;
caffe_test_net = new Net<float>("D:\\Development\\caffe-windows\\models\\bvlc_reference_caffenet\\deploy.prototxt", caffe::Phase::TEST);
caffe_test_net->CopyTrainedLayersFrom("D:\\Development\\caffe-windows\\models\\bvlc_reference_caffenet\\bvlc_reference_caffenet.caffemodel");
delete caffe_test_net;
return 1;
}
я испытал с caffe_net в уникальном или shared_ptr, но это не имеет никакого значения вообще. Я не понимаю, как найти проблему.
Хорошо, я сделал это сейчас, и я получаю в основном ошибку 'INVALID HEAP ARGUMENT: выделен оператором new, освобожденный со свободным replace_free', но тот, который я бы предположил, является последним гвоздем в гробу, UNADDRESSABLE ACCESS за пределами границ кучи: запись 4 байт (ов) ', но код, создающий этот неадресационный доступ, выглядит для меня прекрасным. – SinisterMJ
Хорошо, исправил. Спасибо за ваш вклад, это заставило исправить ситуацию :) – SinisterMJ