如何在keras模型中使用自然启发算法(如PSO)作为优化器?

如何在keras模型中使用自然启发算法(如PSO)作为优化器?,keras,deep-learning,particle-swarm,Keras,Deep Learning,Particle Swarm,我正在研究一个keras模型(层次注意网络),将文本分为不同的类别。我目前使用了Adam optimizer。我希望使用自然启发的算法,如PSO、布谷鸟等作为优化器 有关守则如下: word_input = Input(shape=(max_senten_len,), dtype='int32') word = embedding_layer(word_input) word = SpatialDropout1D(0.2)(word) word = Bidirectional(LSTM(128,

我正在研究一个keras模型(层次注意网络),将文本分为不同的类别。我目前使用了Adam optimizer。我希望使用自然启发的算法,如PSO、布谷鸟等作为优化器

有关守则如下:

word_input = Input(shape=(max_senten_len,), dtype='int32')
word = embedding_layer(word_input)
word = SpatialDropout1D(0.2)(word)
word = Bidirectional(LSTM(128, return_sequences=True))(word)
word_out = AttentionWithContext()(word)
wordEncoder = Model(word_input, word_out)

sente_input = Input(shape=(max_senten_num, max_senten_len), dtype='int32')
sente = TimeDistributed(wordEncoder)(sente_input)
sente = SpatialDropout1D(0.2)(sente)
sente = Bidirectional(LSTM(128, return_sequences=True))(sente)
sente = AttentionWithContext()(sente)
preds = Dense(6, activation='sigmoid')(sente)
model = Model(sente_input, preds)
opt = Adam(clipnorm=5.0)

model.compile(loss='binary_crossentropy',
              optimizer=opt,
              metrics=['acc'])

有人能建议我如何将它们指定为优化器/相关代码的帮助吗?

我投票将这个问题作为离题题题来结束,因为这些问题属于可能的重复问题,您需要为任何尚不存在的问题实现您自己的优化器类()。有一些很好的问题,所以已经展示了如何去做这件事。如果需要模板,请查看keras/tensorflow提供的已经实现的优化器