Artelnics / opennn

OpenNN - Open Neural Networks Library
http://www.opennn.net
GNU Lesser General Public License v3.0
1.12k stars 354 forks source link

Avx compiler flag bug #291

Open Logrus12 opened 5 months ago

Logrus12 commented 5 months ago

I am trying to begin with simple example,but, when i compile with optimisations (-march=native -mtune=natve -mavx2)(processor supports avx2) such program, in runtime it outputs: double free or corruption (out) Aborted (core dumped) Without optimisations, all is ok. Is it compiler bug, or library needs some configurations on cmake build?

include

include

include

include

include

include

include <opennn/opennn.h>

define inn 3

define hdn 6

define onn 1

using namespace std;using namespace opennn; int main(){srand(static_cast(time(nullptr))); DataSet DS("data.csv",' ',false); NeuralNetwork NN(NeuralNetwork::ProjectType::Classification, {inn,hdn,onn}); TrainingStrategy TS(&NN,&DS); TS.set_loss_method(TrainingStrategy::LossMethod::MEAN_SQUARED_ERROR); TS.set_optimization_method(TrainingStrategy::OptimizationMethod::QUASI_NEWTON_METHOD); TS.perform_training(); const TestingAnalysis TA(&NN, &DS); const Tensor<Index, 2>confusion = TA.calculate_confusion(); Tensor<type, 2>inputs(4,NN.get_inputs_number()); Tensor<type, 2>outputs(4,NN.get_outputs_number()); Tensor<Index, 1>inputs_dimensions=get_dimensions(inputs); Tensor<Index,1>outputs_dimensions=get_dimensions(outputs); inputs.setValues({{type(5.1),type(3.5),type(1.4)},{type(6.4),type(5.2),type(4.5)},{type(1.3),type(2.7),type(4.9)},{type(3.5),type(5.0),type(6.0)}}); outputs = NN.calculate_outputs(inputs.data(),inputs_dimensions); cout << "\nInputs:\n" << inputs << endl; cout << "\nOutputs:\n" << outputs << endl; cout << "\nConfusion matrix:\n" << confusion << endl; return 0; }