keras - GlobalAveragePooling1D 与 Lambda 层等价
问题描述
GlobalAveragePooling1D 层是否与使用自定义 Lambda 层计算平均值相同?
数据是时间的,所以 x 具有形状(批次、时间、特征)
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>
他们是一样的
推荐阅读
- python - 为什么我会收到此错误?Pygame.error: 无法打开 block.jpg
- google-apps-script - 为什么谷歌电子表格中的数组交集没有按预期工作?
- css - css :last-child 不影响我的最后一个元素
- php - 在非类帮助文件中添加 Laravel 依赖项
- python - 如何使用 Mac 将 python 脚本交叉编译成可执行文件?
- mysql - 如何在 Laravel 7 中连接 4 个表?
- api - 何时选择 REST 而不是 SOAP API,反之亦然?
- ionic-framework - 如何将 html 页面中的 ts 变量传递给 ts 页面,然后执行一些计算并将其传递回 html 页面?
- qt - QTimer 的替代品是什么?
- python-3.x - 我正在尝试绘制散点图,但结果仅显示 x 个标签。为什么 ylabel 不显示?