Tensorflow2.0中利用keras读取保存的模型时, 产生错误 [ValueError: Unknown activation function:relu6]

在使用已经训练好的mobilenet时候,keras产生错误 [ValueError: Unknown activation function:relu6]

目前博主查到了两种解决办法:

1、查看在建立模型过程中,定义 relu6 激活函数时是否使用了 tf.keras.layers.Activation(tf.nn.relu6),如果有的话,将其更改为:(记住,是所有的,更换前可以按 ctrl + F 键搜索一下当前的代码中是否还有未替换的)

tf.keras.layers.ReLU(6.)

2、如果已经使用了tf.keras.layers.Activation(tf.nn.relu6) 训练好了模型 , 那么在使用时需要用如下方法导入模型:(即在导入时备注之)

model = tf.keras.models.load_model(filepath='my_mobilenet.h5',
                                   custom_objects={'relu6': tf.keras.layers.ReLU(6.),'DepthwiseConv2D':tf.keras.layers.DepthwiseConv2D})

其他版本的keras可参考:
https://blog.csdn.net/Will_Ye/article/details/106554196

posted @ 2020-10-08 20:47  零壹博弈  阅读(457)  评论(0)    收藏  举报