Tensorflow 是否可以映射数据集';层之间的批大小是多少?

Tensorflow 是否可以映射数据集';层之间的批大小是多少?,tensorflow,keras,Tensorflow,Keras,考虑这一点: import tensorflow as tf from tensorflow.keras.layers import Dense, LSTM model = tf.keras.models.Sequential([ Dense(10, batch_input_shape=(32, None, 100)), LSTM(1, stateful=True) ]) model.summary() ____________________________________

考虑这一点:

import tensorflow as tf
from tensorflow.keras.layers import Dense, LSTM

model = tf.keras.models.Sequential([
    Dense(10, batch_input_shape=(32, None, 100)),
    LSTM(1, stateful=True)
])
model.summary()

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
dense (Dense)                (32, None, 10)            1010      
_________________________________________________________________
lstm  (LSTM)                 (32, 1)                   48        
=================================================================
Total params: 1,058
Trainable params: 1,058
Non-trainable params: 0
_________________________________________________________________
无论这样的模型是否合理,第一层(密集层)上的批处理大小的设置只是因为LSTM具有
stateful=True
,并且它需要批处理大小。提供批量大小的方法是通过第一层。这就是稠密层指定批次大小的原因

我想知道是否有一种方法可以让这一切顺利进行:

import tensorflow as tf
from tensorflow.keras.layers import Dense, LSTM

model = tf.keras.models.Sequential([
    Dense(10, batch_input_shape=(None, 32, 100)),
    #Going from (None, 32, 10) to (32, None, 10)
    LSTM(1, stateful=True)
])

在使用Dataset类方法(map、window、batch)启动模型之前,我知道这是可能的。但是我想知道是否有一种方法可以在层之间做到这一点?

显然,您可以使用Lambda层:

import tensorflow as tf
from tensorflow.keras.layers import Dense, LSTM

model = tf.keras.models.Sequential([
    Dense(10, batch_input_shape=(None, 32, 100)),
    tf.keras.layers.Lambda(lambda x: tf.reshape(x, (32, -1, 10))),
    LSTM(1, stateful=True)
])
model.summary()

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
dense (Dense)                (None, 32, 10)            1010      
_________________________________________________________________
lambda (Lambda)              (32, None, 10)            0         
_________________________________________________________________
lstm   (LSTM)                (32, 1)                   48        
=================================================================
Total params: 1,058
Trainable params: 1,058
Non-trainable params: 0
_________________________________________________________________

谁知道

你试过
tf.keras.layers.reforme(32,-1,10)
?没有。该图层类型无法更改批次大小维度。