http://blog.youkuaiyun.com/linmingan/article/details/50906141
由于工程需要,保存为hdf5的keras权值在c/c++中的读取比较不方便。因此将keras中的权值剥离出来,并保存为二进制文件或者txt文件。在进行代码的编写之前我们必须先知道keras中model类对于每一层的参数如何表示的。以下,我将以加入Batch Normalization的5层神经网络(每层的节点数为[500 400 300 200 100],输入为:39)作为例子,来解读keras的参数表示。
假设我们已经学习好了上述的神经网络,怎么我们可以得到一个包含有各种对象的keras对象:model。model的具体内容如下图(model内部结构的显示由Pycharm调试功能中的观察变量功能得来)。图中有非常多变量,但是我们只关心其中的layers变量。
我们可以展开layers变量,得到下图。从_len_={int} 17,知道我们的模型共有17层(按正常理解应该只有5层,但是在keras中,将上一层的输出乘以该层的权值,以及通过激活函数这两个都看做是一层。因为我们的模型加入了BN操作,所有BN操作也看做一层。这样一来我们理解的一层就扩展到了三层。),接下来的00,01,...16就是里面具体的层的内容了,