"examples/git@developer.sourcefind.cn:OpenDAS/dgl.git" did not exist on "20e1bb455b0304d6d39125b9d4f528fe17947c27"
Unverified Commit e1ac0b43 authored by Adrià Arrufat's avatar Adrià Arrufat Committed by GitHub
Browse files

normalize samples for SVM classifier (#2460)

parent 44621a61
...@@ -295,6 +295,10 @@ try ...@@ -295,6 +295,10 @@ try
std::vector<matrix<float, 0, 1>> features; std::vector<matrix<float, 0, 1>> features;
cout << "Extracting features for linear classifier..." << endl; cout << "Extracting features for linear classifier..." << endl;
features = fnet(training_images, 4 * batch_size); features = fnet(training_images, 4 * batch_size);
vector_normalizer<matrix<float, 0, 1>> normalizer;
normalizer.train(features);
for (auto& feature : features)
feature = normalizer(feature);
// Find the most appropriate C setting using find_max_global. // Find the most appropriate C setting using find_max_global.
auto cross_validation_score = [&](const double c) auto cross_validation_score = [&](const double c)
...@@ -309,7 +313,7 @@ try ...@@ -309,7 +313,7 @@ try
cout << "confusion matrix:\n " << cm << endl; cout << "confusion matrix:\n " << cm << endl;
return accuracy; return accuracy;
}; };
const auto result = find_max_global(cross_validation_score, 1e-4, 10000, max_function_calls(50)); const auto result = find_max_global(cross_validation_score, 1e-3, 1000, max_function_calls(50));
cout << "Best C: " << result.x(0) << endl; cout << "Best C: " << result.x(0) << endl;
// Proceed to train the SVM classifier with the best C. // Proceed to train the SVM classifier with the best C.
...@@ -346,6 +350,8 @@ try ...@@ -346,6 +350,8 @@ try
compute_accuracy(features, training_labels); compute_accuracy(features, training_labels);
cout << "\ntesting accuracy" << endl; cout << "\ntesting accuracy" << endl;
features = fnet(testing_images, 4 * batch_size); features = fnet(testing_images, 4 * batch_size);
for (auto& feature : features)
feature = normalizer(feature);
compute_accuracy(features, testing_labels); compute_accuracy(features, testing_labels);
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment