问题描述
我试图了解如何应用遮罩,并确保我的输出被遮罩。我使用以下模型来掩盖输入:
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 (将#修改为@)