Ng的Coursera作业-训练完整的触发词检测模型

时间:2018-09-30 22:50:45

标签: tensorflow machine-learning keras deep-learning rnn

在吴安德(Andrew Ng)的深度学习Coursera课程中,有一个关于触发词检测的作业(例如,不是我的:jupyter notebook)。

在作业中,他们只是提供了经过训练的模型,因为他们声称使用4000多个带有GPU的训练示例进行训练需要花费几个小时。

我不仅使用提供的模型,还尝试使用它们的功能创建自己的训练示例,然后从头开始训练模型。原始音频文件保持不变。有2个背景文件,所以我确保每个背景有2000个训练示例:

n_train_per_bg = 2000
n_train = len(backgrounds)*n_train_per_bg
orig_X_train = np.empty((n_train, Tx, n_freq))
orig_Y_train = np.empty((n_train, Ty , 1))

for bg in range(len(backgrounds)):
    for n in range(n_train_per_bg):
        print("bg: {}, n: {}".format(bg, n))
        x, y = create_training_example(backgrounds[bg], activates, negatives)
        orig_X_train[bg*n_train_per_bg + n, :, :] = x.T
        orig_Y_train[bg*n_train_per_bg + n, :, :] = y.T

np.save('./XY_train/orig_X_train.npy', orig_X_train)
np.save('./XY_train/orig_Y_train.npy', orig_Y_train)

但是,运行一个小时后,我得到的结果令人非常失望。在同一练习中,后面的示例之一显示了它们正常运行的模型,该模型在x轴上的400标记附近检测到触发词“激活”时显示了一个概率峰值:

Correct answer

这是我的,它不仅没有检测到任何东西,而且还很简单!:

After 1 hour training

我所做的唯一修改是:

  • 将Adam优化器的学习率从0.0001更改为0.0010
  • batch_size设置为600

我知道我可能仍需要合并更多的纪元,但令我惊讶的是,输出概率将保持不变。我是在做一些可怕的错误,还是我只需要相信模型会收敛到更有意义的地方?

0 个答案:

没有答案