From 0fc209e4e9a43f1ec016f1dd3e12c5ac992e5b8e Mon Sep 17 00:00:00 2001 From: Shin Date: Fri, 13 May 2016 20:20:56 +0200 Subject: [PATCH] activation funcion: delete streaming --- .../ActivationFunction/Sigmoid.h | 12 +++------ .../StreamingActivationFunction.h | 25 ------------------- 2 files changed, 3 insertions(+), 34 deletions(-) delete mode 100644 include/NeuralNetwork/ActivationFunction/StreamingActivationFunction.h diff --git a/include/NeuralNetwork/ActivationFunction/Sigmoid.h b/include/NeuralNetwork/ActivationFunction/Sigmoid.h index e7c2435..47fa4f4 100644 --- a/include/NeuralNetwork/ActivationFunction/Sigmoid.h +++ b/include/NeuralNetwork/ActivationFunction/Sigmoid.h @@ -2,8 +2,7 @@ #include -#include "./StreamingActivationFunction.h" -#include "../../sse_mathfun.h" +#include "./ActivationFunction.h" namespace NeuralNetwork { namespace ActivationFunction { @@ -12,19 +11,14 @@ namespace ActivationFunction { * @author Tomas Cernik (Tom.Cernik@gmail.com) * @brief Class for computing sigmoid */ - class Sigmoid: public StreamingActivationFunction { + class Sigmoid: public ActivationFunction { public: Sigmoid(const float lambdaP = -0.5): lambda(lambdaP) {} + inline virtual float derivatedOutput(const float &, const float &output) const override { return -lambda*output*(1.0f-output); } - inline virtual float operator()(const float &x) const override { return 1.0f / (1.0f +exp(lambda*x) ); }; - inline virtual __m128 operator()(const __m128 &x) const override { - // exp_ps is extremly slow! - return _mm_div_ps(_mm_set1_ps(1.0),_mm_add_ps(exp_ps(_mm_mul_ps(_mm_set1_ps(lambda),x)),_mm_set1_ps(1.0))); - } - virtual ActivationFunction* clone() const override { return new Sigmoid(lambda); } diff --git a/include/NeuralNetwork/ActivationFunction/StreamingActivationFunction.h b/include/NeuralNetwork/ActivationFunction/StreamingActivationFunction.h deleted file mode 100644 index e64b86f..0000000 --- a/include/NeuralNetwork/ActivationFunction/StreamingActivationFunction.h +++ /dev/null @@ -1,25 +0,0 @@ -#pragma once - -#include - -#include "./ActivationFunction.h" - -namespace NeuralNetwork { -namespace ActivationFunction { - - /** - * @author Tomas Cernik (Tom.Cernik@gmail.com) - * @brief Abstract class of activation function with support of SSE - */ - class StreamingActivationFunction : public ActivationFunction { - public: - using ActivationFunction::operator(); - - /** - * @brief Returns value of four outputs - * @param x is float[4], in every array value can be stored - */ - virtual __m128 operator()(const __m128 &x) const=0; - }; -} -} \ No newline at end of file