Restored audio simimarity based classifier
This commit is contained in:
@@ -16,3 +16,5 @@ target_link_libraries(lmssom PUBLIC
|
||||
lmsutils
|
||||
)
|
||||
|
||||
set_property(TARGET lmssom PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
|
||||
@@ -201,9 +201,9 @@ Network::getClosestRefVectorPosition(const InputVector& data, InputVector::Dista
|
||||
}
|
||||
|
||||
std::optional<Position>
|
||||
Network::getClosestRefVectorPosition(const std::set<Position>& refVectorsPosition, InputVector::Distance maxDistance) const
|
||||
Network::getClosestRefVectorPosition(const std::unordered_set<Position>& refVectorsPosition, InputVector::Distance maxDistance) const
|
||||
{
|
||||
std::set<Position> neighboursPosition;
|
||||
std::unordered_set<Position> neighboursPosition;
|
||||
for (const Position& refVectorPosition : refVectorsPosition)
|
||||
{
|
||||
if (refVectorPosition.y > 0)
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace SOM
|
||||
class Exception : public LmsException
|
||||
{
|
||||
public:
|
||||
Exception(const std::string& msg) : LmsException(msg) {}
|
||||
using LmsException::LmsException;
|
||||
};
|
||||
|
||||
class InputVector
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
#include <algorithm>
|
||||
#include <cassert>
|
||||
#include <sstream>
|
||||
#include <functional>
|
||||
#include <vector>
|
||||
|
||||
namespace SOM
|
||||
@@ -116,3 +116,20 @@ class Matrix
|
||||
};
|
||||
|
||||
} // ns SOM
|
||||
|
||||
namespace std {
|
||||
|
||||
template<>
|
||||
class hash<SOM::Position>
|
||||
{
|
||||
public:
|
||||
size_t operator()(const SOM::Position& s) const
|
||||
{
|
||||
size_t h1 = std::hash<SOM::Coordinate>()(s.x);
|
||||
size_t h2 = std::hash<SOM::Coordinate>()(s.y);
|
||||
return h1 ^ (h2 << 1);
|
||||
}
|
||||
};
|
||||
|
||||
} // ns std
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include <set>
|
||||
#include <unordered_set>
|
||||
#include <optional>
|
||||
#include <ostream>
|
||||
#include <functional>
|
||||
@@ -70,7 +70,7 @@ class Network
|
||||
Position getClosestRefVectorPosition(const InputVector& data) const;
|
||||
std::optional<Position> getClosestRefVectorPosition(const InputVector& data, InputVector::Distance maxDistance) const;
|
||||
|
||||
std::optional<Position> getClosestRefVectorPosition(const std::set<Position>& refVectorsPosition, InputVector::Distance maxDistance) const;
|
||||
std::optional<Position> getClosestRefVectorPosition(const std::unordered_set<Position>& refVectorsPosition, InputVector::Distance maxDistance) const;
|
||||
|
||||
InputVector::Distance getRefVectorsDistance(const Position& position1, const Position& position2) const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user