【发布时间】:2019-09-20 19:01:32
【问题描述】:
我想在训练时从 Sequential Keras 模型中的每一个批次的 dropout 层中提取并存储 dropout 掩码 [1/0 数组]。我想知道在 Keras 中是否有一种直接的方法可以做到这一点,或者我是否需要切换到 tensorflow (How to get the dropout mask in Tensorflow)。
不胜感激!我对 TensorFlow 和 Keras 很陌生。
有几个函数(dropout_layer.get_output_mask()、dropout_layer.get_input_mask())用于我尝试使用但在调用上一层后得到None 的dropout 层。
model = tf.keras.Sequential()
model.add(tf.keras.layers.Flatten(name="flat", input_shape=(28, 28, 1)))
model.add(tf.keras.layers.Dense(
512,
activation='relu',
name = 'dense_1',
kernel_initializer=tf.keras.initializers.GlorotUniform(seed=123),
bias_initializer='zeros'))
dropout = tf.keras.layers.Dropout(0.2, name = 'dropout') #want this layer's mask
model.add(dropout)
x = dropout.output_mask
y = dropout.input_mask
model.add(tf.keras.layers.Dense(
10,
activation='softmax',
name='dense_2',
kernel_initializer=tf.keras.initializers.GlorotUniform(seed=123),
bias_initializer='zeros'))
model.compile(...)
model.fit(...)
【问题讨论】:
标签: python tensorflow keras