2 回答

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊
Lambda 沒(méi)有 Keras 可以自省的有效名稱屬性,因此在序列化過(guò)程中會(huì)造成混淆。請(qǐng)改用命名函數(shù)。
from tensorflow.keras.activations import relu
def lrelu(x):
return relu(x, alpha=0.01)
model = Sequential()
model.add(Dense( 10, activation=lrelu, input_dim=12 ))
以機(jī)智:
>>> lrelu1 = lambda x: 0
>>> def lrelu2(x):
... return 0
...
>>> lrelu1.__name__
'<lambda>'
>>> lrelu2.__name__
'lrelu2'
>>>

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
這是包裝激活函數(shù)的另一種方法
model = Sequential()
model.add(Dense( 10, input_dim=12 ))
model.add(Lambda( lambda x: tf.keras.activations.relu( x, alpha=0.01 ) ))
這與執(zhí)行 model.add(Activation('...')) 的概念相同,但具有自定義修改的激活
用于保存和加載:
model.save( 'model.h5' )
loaded = tf.keras.models.load_model( 'model.h5' )
我使用它保存和加載模型沒(méi)有問(wèn)題https://colab.research.google.com/drive/1K-4_nt66AH5PQDv9Fn-l69-eu5S6Y5EU?usp=sharing
添加回答
舉報(bào)