keras中LSTM的units是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keras中LSTM的units是啥意思相关的知识,希望对你有一定的参考价值。

参考技术A 参考 Keras关于LSTM的units参数,还是不理解?

参考文章中说的很明白了,这里我只是再单纯的写一下笔记。

假设,对于一个一层神经网络,此网络层有64个units,即隐藏神经元个数是64个,激活函数为sigmoid。输入X是一个128维的向量X,分类的话,有10个类别。问这个神经网络共有多少个参数?

X.shape() = (128,1),隐藏神经元个数是64,为了能够让W 1 X相乘,那么第一层就要有一个W跟一个b 1 。其中W 1 .shape() = (64,128),,b 1 .shape() = (64,1)

于是再第一层sigmoid激活函数以后以后,得到一个(64,1)的向量,输出有10个类别,也可以认为输出层有10个隐藏单元个数,所以W 1 .shape()=(10,64),,b 2 .shape() = (10,1).

也就是说,第一层运算是sigmoid(W 1 X+b 1 )=A,
第二层运算是softmax(W 2 A+b 2 )。所以共有,(64x128+64)+()10x64+10)个参数。

对,就是这么简单,就是这层的隐藏神经单元个数。

假设units = 64
根据上图,我们可以计算,假设a向量是128维向量,x向量是28维向量,那么二者concat以后就是156维向量,为了能相乘,那么W f 就应该是(64,156),同理其余三个框,也应该是同样的shape。于是,在第一层就有参数64x156x4 + 64x4个。

若是把cell外面的参数也算进去,那么假设有10个类,那么对于最终的shape为(64,1)的输出a t ,还要有一个shape为(10,64)的W跟一个shape为(10,1)的b。

在较新版本的 Keras 中,LSTM 等效于 return_sequence = True

【中文标题】在较新版本的 Keras 中,LSTM 等效于 return_sequence = True【英文标题】:LSTM equivalent of return_sequence = True in newer version of Keras 【发布时间】:2018-05-26 17:48:27 【问题描述】:

我使用 tensorflow 作为 keras 的后端。在 LSTM 的一个教程中,它说

regressor.add(LSTM(units = 50, return_sequence = True, input_shape = Xtrain))

看看它说的新 LSTM 语法

keras.layers.LSTM(units, activation='tanh', recurrent_activation='hard_sigmoid', 
                  use_bias=True, kernel_initializer='glorot_uniform', 
                  recurrent_initializer='orthogonal', bias_initializer='zeros', 
                  unit_forget_bias=True, kernel_regularizer=None, 
                  recurrent_regularizer=None, bias_regularizer=None, 
                  activity_regularizer=None, kernel_constraint=None, 
                  recurrent_constraint=None, bias_constraint=None, dropout=0.0, 
                  recurrent_dropout=0.0, implementation=1, return_sequences=False, 
                  return_state=False, go_backwards=False, 
                  stateful=False, unroll=False)

有人可以在较新版本中提供与上述代码等效的代码吗?

【问题讨论】:

【参考方案1】:

return_sequence 是一个拼写错误的参数,它应该是return_sequences(注意尾随的s)。这个论点在最新版本中仍然存在,甚至在master 中。

input_shape 也支持作为 kw 参数(同义词:input_dim)。

所以只需使用

LSTM(units = 50, return_sequences = True, input_shape = Xtrain)

【讨论】:

以上是关于keras中LSTM的units是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

keras.argmax中axis=-1是啥意思?

Keras关于LSTM的units参数是什么

标准 Keras 模型输出是啥意思? Keras 的时代和损失是啥?

这是一些 Keras 代码。我不明白“(x)”是啥意思

scala的unit是啥意思?

Keras中的LSTM