Python 如何正确使用Keras LSTM批量输入大小
我正在使用Python 如何正确使用Keras LSTM批量输入大小,python,tensorflow,keras,keras-layer,Python,Tensorflow,Keras,Keras Layer,我正在使用Keras框架构建一个堆叠的LSTM模型,如下所示: model.add(layers.LSTM)(单位=32, 批次输入形状=(1100,64), 有状态的, 返回(序列=真) add(layers.LSTM(units=32,stateful=True,return\u sequences=True)) add(layers.LSTM(units=32,stateful=True,return\u sequences=False)) 模型。添加(层。密集(1)) compile(l
Keras
框架构建一个堆叠的LSTM
模型,如下所示:
model.add(layers.LSTM)(单位=32,
批次输入形状=(1100,64),
有状态的,
返回(序列=真)
add(layers.LSTM(units=32,stateful=True,return\u sequences=True))
add(layers.LSTM(units=32,stateful=True,return\u sequences=False))
模型。添加(层。密集(1))
compile(loss='mean\u squared\u error',optimizer='adam')
模型拟合(训练数据集,
列车标签,
纪元=1,
验证_分割=0.2,
verbose=1,
批次大小=1,
洗牌(错误)
知道mode.fit
、model.predict
和model.evaluate
的默认batch\u size
为32,该模型强制我将此默认batch\u size
更改为batch\u input\u shape(batch\u size,time\u steps,input\u dims)
中使用的值
我的问题是:
将批大小传递到
batch\u input\u shape
或进入模型。是否适合李>
我是否可以使用批大小进行培训,比如说10次,并在单个批上进行评估(而不是
10批)如果我将批大小
传递到
LSTM
通过batch\u input\u shape
分层
创建Sequential()
模型时,它被定义为支持任何批量大小。特别是在TensorFlow 1.*
中,输入是一个占位符,其第一个维度为None
:
将tensorflow导入为tf
model=tf.keras.models.Sequential()
添加(tf.keras.layers.density(单位=2,输入形状=(2,))
打印(model.inputs[0].get_shape().as_list())35;[None,2]当lstm层处于有状态模式时,批大小必须给定,不能为无。
这是因为lstm是有状态的,需要知道如何将隐藏状态从t-1时间步批处理连接到t时间步批处理