tensorflow.keras lstm 部分参数整理units input_size

本文探讨了在TensorFlow.Keras中使用LSTM时,`units`参数代表隐藏状态的维度,是LSTM单元内部隐向量的大小,而`input_size`则涉及输入数据的维度。通过参考不同博客和官方文档,澄清了关于LSTM网络中这些参数的常见误解。
部署运行你感兴趣的模型镜像

参考博客:

(11条消息) 关于LSTM的units参数_LeoRainy的博客-优快云博客_lstm units怎么设置


Keras LSTM的参数input_shape, units等的理解_ygfrancois的博客-优快云博客_keras lstm units

见到过lstm(80)的用法

查到80对应的是units这个参数,由于关于lstm网上的图大多是来自Understanding LSTM Networks -- colah's blog的下面这张图

 所以一开始会以为是这样多个矩阵的连接。注意,这样的理解是错误的。这张图只是为了便于理解lstm cell的工作原理绘制的不同状态cell的图,实际上只有一个cell在不停地更新状态。

对于units的理解,经过查阅博客还有吴恩达老师的讲解后,我认为可以理解为是hidden_state的维度,是lstm cell内部的隐向量的维度,是一个超参数。

还有关于输入维度的参数,官方文档LSTM layer (keras.io)描述如下

  • inputs: A 3D tensor with shape [batch, timesteps, feature]

timestep就是lstm考虑要考虑的时间步,拿前几个时间步的信息分析当下的数据。feature就是特征向量的维度,batch就是批次。在我的项目中,我是用前6个交通流数据预测当下的交通流量。我的timestep是6,feature是1,batch就是几千个由六个时间步信息构成的序列,这和我平时理解的32,64这样的批次不太一样,不知道batch是否可以直接当作样本数量。

看到传输入的方法有:

# 1
model = tf.keras.Sequential([
    LSTM(4),
    Dense(1)
])
#将输入x_train reshape成(sample_number, time_step, feature)的形式

model.fit(x_train, y_train,epochs=100)

# 2
# input_dim 是feature的维度
model_input = Input(shape=(time_steps, input_dim))
x = LSTM(64, return_sequences=True)(model_input)
x = Attention(units=32)(x)
x = Dense(1)(x)
model = Model(model_input, x)
model.compile(loss='mae', optimizer='adam')

batch_size可以不定义 

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值