没有tf.keras.后端的lambda层函数定义(Python Keras Package)



tf.keras.layers.Lambda文档解释了如何在lambda层中定义函数。该文档提供了以下功能作为示例,

def antirectifier(x):
x -= K.mean(x, axis=1, keepdims=True)
x = K.l2_normalize(x, axis=1)
pos = K.relu(x)
neg = K.relu(-x)
return K.concatenate([pos, neg], axis=1)
model.add(Lambda(antirectifier))

但据此,tf.keras.backend必须用于对输入张量对象进行操作。

有什么方法可以使用默认的python包和用户定义的函数来定义lambda函数的步骤。

如果可能的话,请提供一些例子。

如果您不使用import tensorflow及其功能,则绝对没有问题。

代码是完美的,仅此而已。

只是import keras.backend as K

示例rounded = K.round(x)


这是 Keras 独立文档:https://keras.io/layers/core/#lambda

不需要这样使用tf.keras.backend你给keras.layers.Lambda((的函数可以用输入张量做任何你想做的事情。

但是,大多数"默认python包"根本无法使用Tensor对象(例如,正如您在评论中指出的那样,round(x)不适用于它(。

您可以在张量x上使用大多数 Python 语言结构(例如x*2x+y等( - 张量对象实现这些。同样,您可以调用一些"常规"python库,只要它们仅使用张量支持的操作即可。对于其他所有内容,您将需要使用张量对象的方法或适当的 Keras 库函数 - 或者编写自己的函数。

最新更新