1

完成Andrew ng课程中触发词检测的作业后。我做了一些训练示例并尝试了相同的模型,但尽管准确度为 0.88(考虑到数据的偏度,这并不是很好),但模型在预测时表现非常糟糕。背景音频给出的概率为 0.44,而任何其他声音的概率都低于这个值。

形状(trainx)=(100,5511,101)

形状(训练)=(100,1375,1)

模型:

def model(input_shape):    
    X_input = Input(shape = input_shape)
    X = Conv1D(filters=196,kernel_size=15,strides=4)(X_input)  
    X = BatchNormalization()(X)                                
    X = Activation("relu")(X)                        
    X = Dropout(rate=0.8)(X)                         
    if tf.test.is_gpu_available():
      X=tf.keras.layers.CuDNNGRU(units=128, return_sequences=True)(X)
    else:
      X=GRU(units=128,return_sequences=True)(X)                               
    X = Dropout(rate=0.8)(X)                                 
    X = BatchNormalization()(X)                             
    if tf.test.is_gpu_available():
      X=tf.keras.layers.CuDNNGRU(units=128, return_sequences=True)(X)
    else:
      X=GRU(units=128,return_sequences=True)(X)    
    X = Dropout(rate=0.8)(X) # dropout (use 0.8)
    X = BatchNormalization()(X)                               
    X = Dropout(rate=0.8)(X)                                
    X =TimeDistributed(Dense(1, activation = "sigmoid"))(X)
    model = Model(inputs = X_input, outputs = X)

    return model

培训是否通过

history=model.fit(trainx,trainy, validation_split=0.30, epochs=500, batch_size=5,callbacks= 
                [cp_callback])

预言

我检查了似乎没有任何错误的训练标签。在训练时,我的验证准确度比训练准确度提高得非常快,这也令人困惑。任何人,请解释一下发生了什么错误。提前致谢 :)

4

0 回答 0