GlobalAveragePooling1D 层是否与使用自定义 Lambda 层计算平均值相同?
数据是时间序列的,因此 x 的形状为 (batch, time, features)
x=keras.layers.Lambda(lambda x: keras.backend.mean(x, axis=1))(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>
它们是相同的