lstm timestep一般是多少_LSTM的输入问题,新手请教

拿language model整体理一遍:

-----------------------------------------------------------------------

开始是拿到一堆训练数据,先决定你的词汇大小,也就是你的向量长度。

把高频词汇排序,去掉超过词汇大小的低频词汇,把词汇大小控制住。

再加入起始、结束符号。

-----------------------------------------------------------------------

例:

假如就有5个字:我看了足球,加上句子开始和句子结束符号,并全部编上序号。

开始($):0,我:2,看:3,了:4,足:5,球:6,句号:1

input和output是同一句话,但是output前移一位。

input:   [$我看了足球]---->[023456]

output:  [我看了足球。]---->[234561]

再把序号转成one-hot vector(只有序号的位置是1,其他位置都是0)。

一个句子就变成了一个矩阵:row是词汇数;colum是vector的dimension,也是词汇大小。

输入到网络的时候,一个一个vector输入。LSTM会记住之前的vector的信息。

-----------------------------------------------------------------------

Input layer:

content: a sequence of one-hot vectors

shape:[batch_size, timestep, one-vector dimension]

word embedding layer:

shape:[batch_size, timestep, embedding dimension]

LSTM/GRU:

shape:[batch_size, timestep, embedding dimension]

more LSTM/GRUs

...

softmax output layer:

这里可以输入出整个的矩阵,但一般只需要一个。也就是最后一个词。

-----------------------------------------------------------------------

比如输入信息:[$$我看了足]

输出只要[球]。

而这个球也是一个向量,每一维表示着最后一个字是你词汇中对应字的概率。

可能是[0.03,0.01,0.01,0.05,0.05,0.8,0.05]

-----------------------------------------------------------------------

不知道你的第一个问题是指什么。如果是光看输入的话,输入的句子长度可以不同。

但是任意一层的LSTM的输入和输出一定是长度一致的。

不过也并不意味着你的最终输入和最终输出的句子长度一定相等。比如不同语言之间的翻译模型。

-----------------------------------------------------------------------

记得没错的话就是这么个思路。不过我不是研究这方面的。如有错误请指出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值