首页 > 解决方案 > 如何识别加载的 keras 模型特定层的激活函数?

问题描述

在 keras 中加载训练好的模型后,model.summary() 给出了网络层的描述。但它不包含有关层中激活函数的信息。如何识别特定层(最后一层)中使用了哪个激活函数?

标签: pythontensorflowkeras

解决方案


Shankhanil Mitra,您需要访问每一层的 .activation 属性(如果有的话)。试试这个代码示例:

for i, layer in enumerate (model.layers):
    print (i, layer)
    try:
        print ("    ",layer.activation)
    except AttributeError:
        print('   no activation attribute')

输出示例:

0 <tensorflow.python.keras.layers.convolutional.Conv2D object at 0x000001E72A499C88>
     <function relu at 0x000001E727D9E558>
1 <tensorflow.python.keras.layers.pooling.MaxPooling2D object at 0x000001E72A49C388>
   no activation attribute
2 <tensorflow.python.keras.layers.convolutional.Conv2D object at 0x000001E72A49AB48>
     <function relu at 0x000001E727D9E558>
3 <tensorflow.python.keras.layers.pooling.MaxPooling2D object at 0x000001E72A49A3C8>
   no activation attribute
4 <tensorflow.python.keras.layers.core.Flatten object at 0x000001E72A48CD88>
   no activation attribute
5 <tensorflow.python.keras.layers.core.Dropout object at 0x000001E72A484D88>
   no activation attribute
6 <tensorflow.python.keras.layers.core.Dense object at 0x000001E72A484A48>
     <function softmax at 0x000001E727D95E58>

推荐阅读