我正在使用FANN来使用神经网络。(FANN链接)
我需要在训练网络后获取权重矩阵,但我没有在文档中找到相关信息。(文档链接)
你知道如何获取那个矩阵吗?
谢谢你!
回答:
你需要使用fann_get_connection_array()
函数。它会返回一个struct fann_connection
的数组,而struct fann_connection
包含一个weight
字段,这就是你想要的。
你可以像这样来打印你的权重矩阵:
int main(void){ struct fann *net; /* 你的训练好的神经网络 */ struct fann_connection *con; /* 权重矩阵 */ unsigned int connum; /* 连接数量 */ size_t i; /* 在这里插入你的网络分配和训练代码 */ ... connum = fann_get_total_connections(net); if (connum == 0) { fprintf(stderr, "错误:连接数量为0\n"); return EXIT_FAILURE; } con = calloc(connum, sizeof(*con)); if (con == NULL) { fprintf(stderr, "错误:无法分配内存\n"); return EXIT_FAILURE; } /* 获取权重矩阵 */ fann_get_connection_array(net, con); /* 打印权重矩阵 */ for (i = 0; i < connum; ++i) { printf("从 %u 到 %u 的权重: %f\n", con[i].from_neuron, con[i].to_neuron, con[i].weight); } free(con); return EXIT_SUCCESS;}
详细信息:
[1] fann_get_connection_array()
[3] fann_type(权重类型)