Keras 具有Lambda层的GlobalAveragePoolg1d等价性

Keras 具有Lambda层的GlobalAveragePoolg1d等价性,keras,Keras,GlobalAveragePoolg1d层是否与使用自定义Lambda层计算平均值相同 数据是暂时的,因此x具有形状(批次、时间、特征) 相比 x=GlobalAveragePooling1D()(x) 由于我的结果差异很大,似乎缺少了一些东西 有什么想法吗?你可以自己测试一下 X = np.random.uniform(0,1, (32,24,10)).astype('float32') x_lambda = Lambda(lambda x: tf.keras.backend.mean(x

GlobalAveragePoolg1d层是否与使用自定义Lambda层计算平均值相同

数据是暂时的,因此x具有形状(批次、时间、特征)

相比

x=GlobalAveragePooling1D()(x)
由于我的结果差异很大,似乎缺少了一些东西


有什么想法吗?

你可以自己测试一下

X = np.random.uniform(0,1, (32,24,10)).astype('float32')

x_lambda = Lambda(lambda x: tf.keras.backend.mean(x, axis=1))(X)
x_pool = GlobalAveragePooling1D()(X)

tf.reduce_all(x_lambda == x_pool)
# <tf.Tensor: shape=(), dtype=bool, numpy=True>
X=np.random.uniform(0,1,(32,24,10)).astype('float32'))
x_lambda=lambda(lambda x:tf.keras.backend.mean(x,axis=1))(x)
x_pool=globalaveragepoolg1d()(x)
tf.reduce_all(x_lambda==x_pool)
# 

它们是相同的

是的,我忘记了我的网络中有一个屏蔽,它由池层使用,但不与Lambda层一起使用。。。
X = np.random.uniform(0,1, (32,24,10)).astype('float32')

x_lambda = Lambda(lambda x: tf.keras.backend.mean(x, axis=1))(X)
x_pool = GlobalAveragePooling1D()(X)

tf.reduce_all(x_lambda == x_pool)
# <tf.Tensor: shape=(), dtype=bool, numpy=True>