2015-03-02 6 views

ответ

1

Вам необходимо использовать функцию fann_get_connection_array(). Он дает вам массив struct fann_connection, а struct fann_connection имеет поле weight, так что это то, что вы хотите.

Вы можете сделать что-то подобное, чтобы напечатать ваш вес матрицы:

int main(void) 
{ 
    struct fann *net;    /* your trained neural network */ 
    struct fann_connection *con; /* weight matrix */ 
    unsigned int connum;   /* connections number */ 
    size_t i; 

    /* Insert your net allocation and training code here */ 
    ... 

    connum = fann_get_total_connections(net); 
    if (connum == 0) { 
     fprintf(stderr, "Error: connections count is 0\n"); 
     return EXIT_FAILURE; 
    } 

    con = calloc(connum, sizeof(*con)); 
    if (con == NULL) { 
     fprintf(stderr, "Error: unable to allocate memory\n"); 
     return EXIT_FAILURE; 
    } 

    /* Get weight matrix */ 
    fann_get_connection_array(net, con); 

    /* Print weight matrix */ 
    for (i = 0; i < connum; ++i) { 
     printf("weight from %u to %u: %f\n", con[i].from_neuron, 
       con[i].to_neuron, con[i].weight); 
    } 

    free(con); 

    return EXIT_SUCCESS; 
} 

Подробности:

[1] fann_get_connection_array()

[2] struct fann_connection

[3] fann_type (type for weight)

+0

Я пытался использовать ваш код, но я получаю эта ошибка: ошибка сегментации: 11 :(:( – Teo

+0

У меня нет библиотеки FANN, поэтому этот код является лишь иллюстрацией ответа (над кодом). Поэтому, конечно, этот код может потерпеть неудачу. Во всяком случае, я немного переработал его, попробуйте сейчас. А также обязательно выделите память для переменной 'net' и подготовьте ее перед вызовом следующего кода. –

+0

Извините, я так глуп! Ваш код прав ... Просто я позвонил по-другому в сети, поэтому я использовал пустую сеть до ... – Teo

Смежные вопросы