From 54cc31a1efdaefedf374a4cb6ba4ae56233ea479 Mon Sep 17 00:00:00 2001 From: Emiliana <38952746+emilianavt@users.noreply.github.com> Date: Tue, 1 Sep 2020 18:50:56 +0200 Subject: [PATCH] Added support for probability inference in `ThunderSVMWrapper`. --- Source/ThunderSVMWrapper.cpp | 6 ++++++ Unity/Plugins/ThunderSVMWrapper.dll | Bin 27136 -> 28160 bytes 2 files changed, 6 insertions(+) diff --git a/Source/ThunderSVMWrapper.cpp b/Source/ThunderSVMWrapper.cpp index 4d14542..6743ebb 100644 --- a/Source/ThunderSVMWrapper.cpp +++ b/Source/ThunderSVMWrapper.cpp @@ -149,6 +149,12 @@ extern "C" { instances.clear(); for (int r = 0; r < rows; r++) predictions[r] = (float)predicted[r]; + if (probabilities != NULL && sw->param.probability) { + vector probs = sw->model->get_prob_predict(); + for (int r = 0; r < rows; r++) + for (int c = 0; c < sw->classes; c++) + probabilities[c + r * sw->classes] = probs[c + r * sw->classes]; + } predicted.clear(); return; diff --git a/Unity/Plugins/ThunderSVMWrapper.dll b/Unity/Plugins/ThunderSVMWrapper.dll index 14e121190eb48885bb003b290418a90076e8e36e..ff85cdb347f53bb6632935ce318a62cccce9481f 100644 GIT binary patch delta 7434 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 z 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 s`B}*iLIJTH`QgTSj{Gz`1fJtIkPb&#a(Bd