From 6fd23da97fa9700f59c61a966b4bf7d25fa46b34 Mon Sep 17 00:00:00 2001 From: Paul Oliver Date: Thu, 29 Feb 2024 03:15:03 +0100 Subject: initial commit --- SimpleRN.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 SimpleRN.cpp (limited to 'SimpleRN.cpp') diff --git a/SimpleRN.cpp b/SimpleRN.cpp new file mode 100644 index 0000000..0e10c22 --- /dev/null +++ b/SimpleRN.cpp @@ -0,0 +1,35 @@ +#include "SimpleRN.hpp" + +SimpleRN::SimpleRN(unsigned inputCount, unsigned hiddenNodeCount, unsigned outputCount, NodeClass nodeClass, bool zeroed) +: SingleMLP(0, 0, 0, NEURON, true) +{ + m_context.resize(hiddenNodeCount, 0.f); + + m_hiddenLayer = NodeLayer(inputCount + hiddenNodeCount, hiddenNodeCount, nodeClass, zeroed); + m_outputLayer = NodeLayer(hiddenNodeCount, outputCount, nodeClass, zeroed); + + m_inputCount = inputCount; + m_hiddenNodeCount = hiddenNodeCount; + m_outputCount = outputCount; + m_nodeClass = nodeClass; +} + +std::vector SimpleRN::io(const std::vector &inputs) +{ + std::vector response; + + if (inputs.size() != m_inputCount) + { + return response; + } + + response.insert(response.end(), inputs.begin(), inputs.end()); + response.insert(response.end(), m_context.begin(), m_context.end()); + + response = m_hiddenLayer.io(response); + + m_context = response; + response = m_outputLayer.io(response); + + return response; +} -- cgit v1.2.1