Move neural net errors to a separate file
This commit is contained in:
parent
2f1afc368e
commit
11b2d002ba
6 changed files with 64 additions and 36 deletions
39
libs/ml/include/psemek/ml/neural_net/error.hpp
Normal file
39
libs/ml/include/psemek/ml/neural_net/error.hpp
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <stdexcept>
|
||||||
|
#include <cstddef>
|
||||||
|
|
||||||
|
namespace psemek::ml
|
||||||
|
{
|
||||||
|
|
||||||
|
struct neural_net_error
|
||||||
|
: std::runtime_error
|
||||||
|
{
|
||||||
|
using runtime_error::runtime_error;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct empty_neural_net_error
|
||||||
|
: neural_net_error
|
||||||
|
{
|
||||||
|
empty_neural_net_error();
|
||||||
|
};
|
||||||
|
|
||||||
|
struct wrong_activation_types_count_error
|
||||||
|
: neural_net_error
|
||||||
|
{
|
||||||
|
wrong_activation_types_count_error(std::size_t expected, std::size_t actual);
|
||||||
|
};
|
||||||
|
|
||||||
|
struct wrong_neural_net_input_size
|
||||||
|
: neural_net_error
|
||||||
|
{
|
||||||
|
wrong_neural_net_input_size(std::size_t expected, std::size_t actual);
|
||||||
|
};
|
||||||
|
|
||||||
|
struct wrong_neural_net_output_size
|
||||||
|
: neural_net_error
|
||||||
|
{
|
||||||
|
wrong_neural_net_output_size(std::size_t expected, std::size_t actual);
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -2,17 +2,9 @@
|
||||||
|
|
||||||
#include <psemek/ml/neural_net/neural_net.hpp>
|
#include <psemek/ml/neural_net/neural_net.hpp>
|
||||||
|
|
||||||
#include <stdexcept>
|
|
||||||
|
|
||||||
namespace psemek::ml
|
namespace psemek::ml
|
||||||
{
|
{
|
||||||
|
|
||||||
struct wrong_neural_net_input_size
|
|
||||||
: std::runtime_error
|
|
||||||
{
|
|
||||||
wrong_neural_net_input_size(std::size_t expected, std::size_t actual);
|
|
||||||
};
|
|
||||||
|
|
||||||
// A class that stores temporary data to facilitate
|
// A class that stores temporary data to facilitate
|
||||||
// allocation-free multiple evaluations of a neural net
|
// allocation-free multiple evaluations of a neural net
|
||||||
template <typename T>
|
template <typename T>
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,14 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <psemek/ml/neural_net/activation.hpp>
|
#include <psemek/ml/neural_net/activation.hpp>
|
||||||
|
#include <psemek/ml/neural_net/error.hpp>
|
||||||
#include <psemek/util/span.hpp>
|
#include <psemek/util/span.hpp>
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <stdexcept>
|
|
||||||
|
|
||||||
namespace psemek::ml
|
namespace psemek::ml
|
||||||
{
|
{
|
||||||
|
|
||||||
struct empty_neural_net_error
|
|
||||||
: std::exception
|
|
||||||
{
|
|
||||||
char const * what() noexcept;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct wrong_activation_types_count_error
|
|
||||||
: std::runtime_error
|
|
||||||
{
|
|
||||||
wrong_activation_types_count_error(std::size_t expected, std::size_t actual);
|
|
||||||
};
|
|
||||||
|
|
||||||
namespace detail
|
namespace detail
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
||||||
24
libs/ml/source/neural_net/error.cpp
Normal file
24
libs/ml/source/neural_net/error.cpp
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
#include <psemek/ml/neural_net/error.hpp>
|
||||||
|
|
||||||
|
#include <psemek/util/to_string.hpp>
|
||||||
|
|
||||||
|
namespace psemek::ml
|
||||||
|
{
|
||||||
|
|
||||||
|
empty_neural_net_error::empty_neural_net_error()
|
||||||
|
: neural_net_error("neural net must have at least a single layer")
|
||||||
|
{}
|
||||||
|
|
||||||
|
wrong_activation_types_count_error::wrong_activation_types_count_error(std::size_t expected, std::size_t actual)
|
||||||
|
: neural_net_error(util::to_string("wrong number of activation types: expected ", expected, ", got ", actual))
|
||||||
|
{}
|
||||||
|
|
||||||
|
wrong_neural_net_input_size::wrong_neural_net_input_size(std::size_t expected, std::size_t actual)
|
||||||
|
: neural_net_error(util::to_string("wrong neural net input size: expected ", expected, ", got ", actual))
|
||||||
|
{}
|
||||||
|
|
||||||
|
wrong_neural_net_output_size::wrong_neural_net_output_size(std::size_t expected, std::size_t actual)
|
||||||
|
: neural_net_error(util::to_string("wrong neural net output size: expected ", expected, ", got ", actual))
|
||||||
|
{}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,14 +1,8 @@
|
||||||
#include <psemek/ml/neural_net/evaluator.hpp>
|
#include <psemek/ml/neural_net/evaluator.hpp>
|
||||||
|
|
||||||
#include <psemek/util/to_string.hpp>
|
|
||||||
|
|
||||||
namespace psemek::ml
|
namespace psemek::ml
|
||||||
{
|
{
|
||||||
|
|
||||||
wrong_neural_net_input_size::wrong_neural_net_input_size(std::size_t expected, std::size_t actual)
|
|
||||||
: std::runtime_error(util::to_string("wrong neural net input size: expected ", expected, ", got ", actual))
|
|
||||||
{}
|
|
||||||
|
|
||||||
template struct neural_net_evaluator<float>;
|
template struct neural_net_evaluator<float>;
|
||||||
template struct neural_net_evaluator<double>;
|
template struct neural_net_evaluator<double>;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,15 +5,6 @@
|
||||||
namespace psemek::ml
|
namespace psemek::ml
|
||||||
{
|
{
|
||||||
|
|
||||||
char const * empty_neural_net_error::what() noexcept
|
|
||||||
{
|
|
||||||
return "neural net must have at least a single layer";
|
|
||||||
}
|
|
||||||
|
|
||||||
wrong_activation_types_count_error::wrong_activation_types_count_error(std::size_t expected, std::size_t actual)
|
|
||||||
: std::runtime_error(util::to_string("wrong number of activation types: expected ", expected, ", got ", actual))
|
|
||||||
{}
|
|
||||||
|
|
||||||
template struct neural_net<float>;
|
template struct neural_net<float>;
|
||||||
template struct neural_net<double>;
|
template struct neural_net<double>;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue