如何找到用作参数的 keras 类 的可用字符串缩写列表?

How can I find the list of available string abbreviations for keras classes used as arguments?

Keras(具体我使用的是 tf.keras)允许您在创建新的 class 实例时使用某些字符串作为参数,并且这些字符串引用其他 Keras classes。例如,tf.keras.layers.Dense(10, activation='elu') 中的 'elu' 是 tf.keras.activations.elu 的快捷方式。

但是,在文档中,我似乎找不到每个参数的任何有效参数的综合列表。有些将是显而易见的,但如果我有一个清单可以使用,那会容易得多。此外,model.compile(..., metrics=['accuracy']) 中的 'accuracy' 等参数的行为似乎过于模棱两可,以至于缺乏描述其行为的文档。

任何人都可以帮助我找到解决此问题的适当资源吗?除了上面提到的'accuracy',我还对tf.keras.callbacks.EarlyStopping的monitor参数特别感兴趣。有谁知道为什么源文档如此缺乏?提前致谢!

遗憾的是,这没有记录,也没有单独的地方存储此类字符串常量。

当 keras 接收到 tf.keras.layers.Dense(10, activation='elu') 时,它将进入激活函数模块,如果激活函数存在于那里,它将按字面意思调用激活函数。因此,activation='elu' 将转换为 tf.keras.activations.elu()

同时意味着你可以使用任意的激活函数名作为字符串。

您可以查看代码 来解决此问题。

这个代码片段就可以了

for k, v in tf.keras.activations.__dict__.items():
    if not k[0].isupper() and not k[0] == "_":
        print(k)
deserialize
elu
exponential
gelu
get
hard_sigmoid
linear
relu
selu
serialize
sigmoid
softmax
softplus
softsign
swish
tanh