[RNN]tensorflow中lstm和gru的输入输出到底是什么???

说出我的看法,欢迎分享,因为我自己也不确定,,,不知道该如何解释。。。

先贴一下我看的文章:

  1. 如何理解lstm的输入输出:https://www.jianshu.com/p/c66369cfa0c7

例如这样一个数据集合,总共100条句子,每个句子20个词,每个词都由一个80维的向量表示。在lstm中,单个样本即单条句子输入下(shape是 [1 , 20, 80]),假如设定每一个time step的输入是一个词(当然这不一定,你也可以调成两个词或者更多个数的词),则在t0时刻是第一个时间步,输入x0则为代表一条句子(一个样本)中第1个词的80维向量,t1是第二个时间步,x1表示该句子中第2个词的80维向量,依次类推t19输入是最后一个词即第20个词的向量表示。
常见的tf或者keras中lstm的参数(samples, timestep, input_dim),samples是指批量训练样本的数量, timestep是时间步(这个时间步可自己设置)比如上面说的20,input-dim是每个time step的输入shape

  1. lstm输入输出参数你懂了吗:https://blog.csdn.net/ssswill/article/details/88429794

  2. 官方api:https://www.tensorflow.org/api_docs/python/tf/keras/layers/GRU?version=nightly

  3. 参数源码:https://segmentfault.com/a/1190000020603328?utm_source=tag-newest

最后说一下自己的见解,输入的3d为(batch_size,time_step,input_dim),分别为:

 batch_size:同时输入的一批样本。(=1则就是只输入一条样本)
 time_step:可以简单理解为lstm一层的单元数量。(一句话里一个词对应一个lstm)
 input_dim:表示一个特征的向量维数。(表示一个词的向量的维数)

初始化GRU时传入的units:可以理解为一个lstm单元中输出的向量维数。()
输出的2d为(batch_size,units),分别为:

 batch_size:同时输入的一批样本。(=1则就是只输入一条样本)
 units:一个lstm单元中向量维度。

我现在只能这么理解,但是感觉还是怪怪的,期待以后的改进,,,,
在这里插入图片描述
来个大佬给分享一下看法哇呀呀呀呀呀

发布了71 篇原创文章 · 获赞 70 · 访问量 21万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章