Tensorflow 培训后如何输入不同的辍学p值?

Tensorflow 培训后如何输入不同的辍学p值?,tensorflow,keras,Tensorflow,Keras,在Tensorflow中,我会有一个占位符,这样我可以根据需要将其提供给网络: self.dropout\u keep\u prob=tf.placeholder(tf.float32,name=“dropout\u keep\u prob”) # ... #加辍学 使用tf.name_范围(“辍学”): self.h_drop=tf.nn.drop(self.h_pool_flat,self.drop_keep_prob) 但是,我不知道如何在Keras中做到这一点: #in_dropout

在Tensorflow中,我会有一个
占位符
,这样我可以根据需要将其提供给网络:

self.dropout\u keep\u prob=tf.placeholder(tf.float32,name=“dropout\u keep\u prob”)
# ...
#加辍学
使用tf.name_范围(“辍学”):
self.h_drop=tf.nn.drop(self.h_pool_flat,self.drop_keep_prob)
但是,我不知道如何在Keras中做到这一点:

#in_dropout=tf.placeholder(tf.float32,name=“dropout\u keep\u prob”)
in_dropout=Input(shape=(1),name='dropout')
# ..
#加滴管
辍学=辍学(in_Dropout)(max_pool)#这当然不起作用

在keras
中,退出层在培训和测试阶段表现不同,这是其在培训阶段唯一启用的层

要在整个培训/测试阶段使用辍学,您必须使用keras后端的
dropout
功能将辍学层替换为
Lambda

from keras.layers.core import Lambda
from keras import backend as K

model.add(Lambda(lambda x: K.dropout(x, level=0.5)))

更多参考资料请查阅:。

太棒了,谢谢。尽管它在文档中不知何故我不明白它实际上在测试时没有被使用。