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时间步批处理