Keras掩蔽输出层

2024-04-19 01:58:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Keras中有以下型号:

main_input = Input(shape=(None, 2, 100, 100), dtype='float32', name='input')

hidden = ConvLSTM2D(filters=16, 
                    kernel_size=(5, 5),  
                    padding='same', 
                    return_sequences=False, 
                    data_format='channels_first')(main_input)

output = Conv2D(filters=1, 
                kernel_size=(1, 1), 
                padding='same',
                activation='sigmoid',
                kernel_initializer='glorot_uniform',
                data_format='channels_first',
                name='output')(hidden)

sgd = SGD(lr=0.002, momentum=0.0, decay=0.0, nesterov=False)

我想把一个2d数组的输出乘以一个掩码(每个例子都有一个单独的掩码)。我怎么能在Keras做到这一点?在


Tags: namefalseformatinputdatasizemainkernel
2条回答

创建一个新输出并将旧输出用作第二个隐藏层。在

你想在你的“旧输出”上做第二次卷积(用一个特殊的掩码)来得到你的新输出

希望对你有帮助

我认为你应该同时把每个样本的掩码输入模型。在

以下是建议的代码:

from keras.layers import Multiply

main_input = Input(shape=(None, 2, 100, 100), dtype='float32', name='input')

mask=Input(shape=(1, 100, 100), dtype='float32', name='mask')

hidden = ConvLSTM2D(filters=16, 
                    kernel_size=(5, 5),  
                    padding='same', 
                    return_sequences=False, 
                    data_format='channels_first')(main_input)

output = Conv2D(filters=1, 
                kernel_size=(1, 1), 
                padding='same',
                activation='sigmoid',
                kernel_initializer='glorot_uniform',
                data_format='channels_first',
                name='output')(hidden)
output_with_mask=Multiply()([output, mask])

model=Model([main_input, mask], output_with_mask)

总结如下:

^{pr2}$

相关问题 更多 >