如何验证是否正确应用了掩膜? LSTM性能随短序列而下降

问题描述

我试图了解如何应用遮罩,并确保我的输出被遮罩。我使用以下模型来掩盖输入:

def tdcnn2d_bilstm_mask():
    with tf.device('/gpu:2'):
        inputlayer1 = Input(shape = input_shape1)
        x = TimeDistributed(Conv2D(4,kernel_size=(3,3),padding='same',activation='relu'))(inputlayer1)
        x = TimeDistributed(MaxPooling2D(pool_size=(2,2)))(x)
        x = TimeDistributed(Conv2D(8,activation='relu'))(x)
        x = TimeDistributed(MaxPooling2D(pool_size=(2,2)))(x)
        x = TimeDistributed(Flatten())(x)
        mask = Masking(mask_value=0.)(x)
        x = Bidirectional(LSTM(64,dropout=0.5,return_sequences=True))(mask)
        out1 = TimeDistributed(Dense(num_class,activation='softmax'))(x)
        model = keras.Model(inputs = [inputlayer1],outputs = [out1])#,out2,out3])
        opt = Adam(lr=1e-3,decay=1e-3 / 200)
        model.compile(loss = 'categorical_crossentropy',optimizer=opt,metrics = ['accuracy'])
        return model

我的问题是:

  • 如何检查我的输入是否被LSTM适当屏蔽?
  • softmax图层是否输出掩盖值的预测?
  • 如何比较屏蔽输出和非屏蔽输出?

最后一个不相关的问题是:

  • 当我将测试序列划分为较短的序列并尝试对其进行预测时,我的测试性能会下降很多。这可能是什么原因?例如,当我对整个数据序列进行测试(30秒)时,我获得了93%的测试准确度,但是当我将测试数据分成0.2秒的块并尝试对其进行预测时,准确度下降到了75%左右。我该如何克服这个问题? 预先感谢!

最好

Emre

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...