From b94fe3e852d340d56e0bbad81063e0783f9d0b29 Mon Sep 17 00:00:00 2001 From: emeric Date: Wed, 3 Mar 2021 17:42:39 +0100 Subject: [PATCH] Construct at least a 2x2 network to classify tracks. fixes #116 --- .../recommendation/impl/features/FeaturesClassifier.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/libs/recommendation/impl/features/FeaturesClassifier.cpp b/src/libs/recommendation/impl/features/FeaturesClassifier.cpp index b28f2160..f0ccf38d 100644 --- a/src/libs/recommendation/impl/features/FeaturesClassifier.cpp +++ b/src/libs/recommendation/impl/features/FeaturesClassifier.cpp @@ -194,7 +194,12 @@ FeaturesClassifier::loadFromTraining(Database::Session& session, const TrainSett for (auto& sample : samples) dataNormalizer.normalizeData(sample); - const SOM::Coordinate size {static_cast(std::sqrt(samples.size() / trainSettings.sampleCountPerNeuron))}; + SOM::Coordinate size {static_cast(std::sqrt(samples.size() / trainSettings.sampleCountPerNeuron))}; + if (size < 2) + { + LMS_LOG(RECOMMENDATION, WARNING) << "Very few tracks (" << samples.size() << ") are being used by the features engine, expect bad behaviors"; + size = 2; + } LMS_LOG(RECOMMENDATION, INFO) << "Found " << samples.size() << " tracks, constructing a " << size << "*" << size << " network"; SOM::Network network {size, size, nbDimensions};