【问题标题】:Custom Layer not supporting serialized custom activation function自定义层不支持序列化自定义激活函数
【发布时间】:2021-08-24 08:55:42
【问题描述】:

自从 Tensorflow 2.6 版发布以来,我遇到了 2.5 版没有的问题。

以下代码可以正常工作:

from tensorflow.keras.utils import get_custom_objects
from tensorflow.keras.layers import Dense

def my_act(x):
  return x

get_custom_objects().update({"my_act": my_act})

dense = Dense(3, activation="my_act")

但是,如果我尝试使用自定义层而不是 Tensorflow 内置层执行相同操作,则会出现错误:

ValueError: Unknown activation function: my_act. Please ensure this object is passed to the `custom_objects` argument. See https://www.tensorflow.org/guide/keras/save_and_serialize#registering_the_custom_object for details.

Here 你有最少的代码可以重现,而且我证明了 2.5 版可以正常工作(你需要重新启动运行时才能运行它)。

【问题讨论】:

    标签: tensorflow tensorflow2.0


    【解决方案1】:

    尝试像这样导入activations

    from tensorflow.keras import activations
    

    而不是from tensorflow.python.keras import activations

    在 tensorflow 2.7 及更高版本中,tensorflow.python 将不再存在,并且在 TF 2.6 中似乎已经与其他一些功能不兼容。

    【讨论】:

      猜你喜欢
      • 2018-04-15
      • 2018-09-30
      • 1970-01-01
      • 1970-01-01
      • 2019-05-09
      • 2021-05-15
      • 2019-01-16
      • 2021-10-29
      • 2020-05-29
      相关资源
      最近更新 更多