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 <stdexcept>
|
||||
|
||||
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
|
||||
// allocation-free multiple evaluations of a neural net
|
||||
template <typename T>
|
||||
|
|
|
|||
|
|
@ -1,26 +1,14 @@
|
|||
#pragma once
|
||||
|
||||
#include <psemek/ml/neural_net/activation.hpp>
|
||||
#include <psemek/ml/neural_net/error.hpp>
|
||||
#include <psemek/util/span.hpp>
|
||||
|
||||
#include <vector>
|
||||
#include <stdexcept>
|
||||
|
||||
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
|
||||
{
|
||||
|
||||
|
|
|
|||
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/util/to_string.hpp>
|
||||
|
||||
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<double>;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,15 +5,6 @@
|
|||
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<double>;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue