Exemplo n.º 1
0
/**
* @brief Deallocate the memory for a backprop neural net object
* @param net Backprop neural net object
*/
void bp_free(bp * net)
{
    int l,i;

    for (i = 0; i < net->NoOfInputs; i++) {
        bp_neuron_free(net->inputs[i]);
        free(net->inputs[i]);
        net->inputs[i] = 0;
    }
    free(net->inputs);
    for (l = 0; l < net->HiddenLayers; l++) {
        for (i = 0; i < net->NoOfHiddens; i++) {
            bp_neuron_free(net->hiddens[l][i]);
            free(net->hiddens[l][i]);
            net->hiddens[l][i] = 0;
        }
        free(net->hiddens[l]);
        net->hiddens[l] = 0;
    }
    free(net->hiddens);

    for (i = 0; i < net->NoOfOutputs; i++) {
        bp_neuron_free(net->outputs[i]);
        free(net->outputs[i]);
        net->outputs[i] = 0;
    }
    free(net->outputs);
}
Exemplo n.º 2
0
static void test_backprop_neuron_init()
{
    bp_neuron n;
    int no_of_inputs=10;
    unsigned int random_seed = 123;

    printf("test_backprop_neuron_init...");

    bp_neuron_init(&n, no_of_inputs, &random_seed);
    bp_neuron_free(&n);

    printf("Ok\n");
}
Exemplo n.º 3
0
static void test_backprop_neuron_save_load()
{
    bp_neuron n1, n2;
    int no_of_inputs=10;
    unsigned int random_seed = 123;
    char filename[256];
    FILE * fp;

    printf("test_backprop_neuron_save_load...");

    /* create neurons */
    bp_neuron_init(&n1, no_of_inputs, &random_seed);
    bp_neuron_init(&n2, no_of_inputs, &random_seed);

    sprintf(filename,"%stemp_deep.dat",DEEPLEARN_TEMP_DIRECTORY);

    /* save the first neuron */
    fp = fopen(filename,"wb");
    assert(fp!=0);
    bp_neuron_save(fp, &n1);
    fclose(fp);

    /* load into the second neuron */
    fp = fopen(filename,"rb");
    assert(fp!=0);
    bp_neuron_load(fp, &n2);
    fclose(fp);

    /* compare the two */
    assert(bp_neuron_compare(&n1, &n2)==1);

    /* free memory */
    bp_neuron_free(&n1);
    bp_neuron_free(&n2);

    printf("Ok\n");
}
Exemplo n.º 4
0
static void test_backprop_neuron_copy()
{
    bp_neuron n1, n2;
    int retval, no_of_inputs=10;
    unsigned int random_seed = 123;

    printf("test_backprop_neuron_copy...");

    bp_neuron_init(&n1, no_of_inputs, &random_seed);
    bp_neuron_init(&n2, no_of_inputs, &random_seed);

    bp_neuron_copy(&n1, &n2);

    retval = bp_neuron_compare(&n1, &n2);
    if (retval != 1) {
        printf("\nretval %d\n", retval);
    }
    assert(retval == 1);

    bp_neuron_free(&n1);
    bp_neuron_free(&n2);

    printf("Ok\n");
}