进行LSTM小批量培训以用于下一个单词预测应用

时间:2019-10-07 09:51:33

标签: keras lstm recurrent-neural-network mini-batch

首先让我向您展示我正在研究的真实示例数据的简化版本:

$.ajax({
        type: 'POST',
        url: 'http://192.168.52.166:6000/api/2/users/login/',
        dataType: 'json',
        data: JSON.stringify(_serializeForm('#formId')),
        contentType : 'application/json',
        success: function(data) {
            alert(data)
        }
    });

所有这些数字都是我实际样本的大小远大于该角度的角度(约为10 ^ 7)。我在这里想要做的是我想使用一种语言模型(在这种情况下为3-gram模型)来执行下一个单词预测。因此,在训练了神经网络之后,我期望得到如下结果:

fullbatch = [
    ['0', '0', '45'],
    ['90', '135', '135'],
    ['0', '45', '90'],
    ['0', '45', '0'],
    ['0', '45', '45'],
    ['180', '180', '135'],
    ['180', '180', '180'],
    ['180', '180', '180'],
    ['180', '180', '180']
]

这是我尝试使用带有minibatch的LSTM训练3克模型的代码,但失败了:

predict('0', '0') -> output prob of '45' is 1.0
predict('90', '135') -> output prob of '135' is 1.0
predict('0', '45') -> output prob of '90' is  0.33
                   -> output prob of '0' is  0.33
                   -> output prob of '45' is  0.33
predict('180', '180') -> output prob of '135' is 0.25
                      -> output prob of '180' is 0.75

从此代码中,我无法获得预期的问题的结果。我能得到的唯一方法是使用完整的批培训。您有解决此问题的想法吗? 除了小批量训练之外,您还可以向我提出其他建议,但请记住,我对数据的条件是1)我有一个可以生成角度序列的生成器,2)这些角度是生成的具有一定的模式,这意味着组合的数量是有限的,3)组合的数量对于完整的批量训练而言太大。

0 个答案:

没有答案