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)
?没有。该图层类型无法更改批次大小维度。