Pastebin

New pastes are no longer accepted · Stats

Latest Pastes

#include <cstdio>
#include <time.h>
#include <algorithm>
#include <limits>
#include <vector>

float rand(float min, float max)
{
	return float(std::rand()) / float(std::numeric_limits<unsigned long>::max()) * (max - min) + min;
}

struct Perceptron
{
    struct Neuron
    {
        float weight;
        
        Neuron()
        {
            weight = rand(-1, 1);
        }
    };

    std::vector<Neuron> neurons;
    std::vector<float> input;
    std::vector<float> hidden;
    std::vector<float> output;
    float lrate;

    Perceptron(int i, int h, int o)
    {
        int layer_size[] = { i, h, o };
        input.resize(i);
        hidden.resize(h);
        output.resize(o);
        
        neurons.resize(i * o);
    }

    std::vector<float> process(std::vector<float> data)
    {
        
        return output;
    }

    void present(std::vector<float> data)
    {
        input = data;
        for(std::size_t i = 0; i < input.size(); ++i)
        {
            input[i] = data[i];
            for(std::size_t h = 0; h < hidden.size(); ++h)
            {
                hidden[h] = input[i] * 
            }
        }
    }

    void teach(std::vector<float> data)
    {

    }
};

int main()
{
    puts("Perceptron - testing AND gate\n");
    srand((unsigned) time (NULL));
    Perceptron perc(2, 1, 1);

    std::vector<float> input;
    std::vector<float> correct;
    input.push_back(1); input.push_back(0);
    correct.push_back(0);

    puts("Learning 1 AND 0...");
    perc.present(input);
    for(int i = 0; i < 100; ++i)
    {
        perc.teach(correct);
    }

    float result = perc.process(input);
    printf("Result: %f\n", result);

    return 0;
}