Move neural net stuff to a separate subdirectory of ml
This commit is contained in:
parent
d37edd207b
commit
587a80b0de
6 changed files with 30 additions and 5 deletions
|
|
@ -1,6 +1,6 @@
|
|||
#pragma once
|
||||
|
||||
#include <psemek/ml/neural_net.hpp>
|
||||
#include <psemek/ml/neural_net/neural_net.hpp>
|
||||
|
||||
#include <stdexcept>
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
#pragma once
|
||||
|
||||
#include <psemek/ml/activation.hpp>
|
||||
#include <psemek/ml/neural_net/activation.hpp>
|
||||
#include <psemek/util/span.hpp>
|
||||
|
||||
#include <vector>
|
||||
|
|
@ -40,6 +40,20 @@ namespace psemek::ml
|
|||
return result;
|
||||
}
|
||||
|
||||
template <typename NN, typename Fn>
|
||||
void for_each_layer_impl(NN & nn, Fn && fn)
|
||||
{
|
||||
auto const layer_sizes = nn.layer_sizes();
|
||||
auto const weights = nn.weights();
|
||||
std::size_t offset = 0;
|
||||
for (std::size_t l = 0; l + 1 < layer_sizes.size(); ++l)
|
||||
{
|
||||
std::size_t count = (layer_sizes[l] + 1) * layer_sizes[l + 1];
|
||||
fn(l, util::span{weights.data() + offset, weights.data() + offset + count});
|
||||
offset += count;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
|
|
@ -111,5 +125,16 @@ namespace psemek::ml
|
|||
: neural_net(std::move(args.first), std::move(args.second))
|
||||
{}
|
||||
|
||||
template <typename T, typename Fn>
|
||||
void for_each_layer(neural_net<T> const & nn, Fn && fn)
|
||||
{
|
||||
detail::for_each_layer_impl(nn, fn);
|
||||
}
|
||||
|
||||
template <typename T, typename Fn>
|
||||
void for_each_layer(neural_net<T> & nn, Fn && fn)
|
||||
{
|
||||
detail::for_each_layer_impl(nn, fn);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
#include <psemek/ml/activation.hpp>
|
||||
#include <psemek/ml/neural_net/activation.hpp>
|
||||
|
||||
namespace psemek::ml
|
||||
{
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
#include <psemek/ml/neural_net_evaluator.hpp>
|
||||
#include <psemek/ml/neural_net/evaluator.hpp>
|
||||
|
||||
#include <psemek/util/to_string.hpp>
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
#include <psemek/ml/neural_net.hpp>
|
||||
#include <psemek/ml/neural_net/neural_net.hpp>
|
||||
|
||||
#include <psemek/util/to_string.hpp>
|
||||
|
||||
Loading…
Add table
Reference in a new issue