【发布时间】:2021-03-18 15:05:45
【问题描述】:
我正在使用 TensorFlow 2 和 tensorflow.keras.layers 的功能 API 来构建模型。
我有一个形状为 [batch_size, length, dim] 的输入张量 (in_1),我想沿 length 维度计算平均值并获得输出张量 (out_1),形状为 [batch_size, dim]。
我应该使用哪一个来做到这一点? (就输出形状和训练而言,所有这些选项都有效)
out_1 = Lambda(lambda x: tf.math.reduce_mean(x, axis=1))(in_1)
out_1 = Lambda(lambda x: tf.keras.backend.mean(x, axis=1))(in_1)
out_1 = tf.math.reduce_mean(in_1, axis=1)
最后一个会自动创建一个TensorFlowOpLayer,这是应该避免的吗?
还有其他方法吗?
tf.math.reduce_mean 和 tf.keras.backend.mean 有什么区别,应该用哪个?
我知道应该在 Lambda 层内调用自定义函数,但是对于 TensorFlow 函数(例如 tf.math.reduce_mean)是否也可以“一举”处理张量?如果我需要指定参数(例如轴),我应该如何调用它们?
【问题讨论】:
标签: python tensorflow keras model tensor