如何更改 tf.keras 以使 _Merge class 公开可用?
How to change tf.keras to make _Merge class publicly available?
在 Tensorflow 1.14 中,我希望能够继承私有 tf.keras
_Merge
class 以在外部文件中实现自定义 _Merge
层。
之前,在独立的 Keras 中,我更改了文件 .../keras/layers/merge.py
的内容,将所有 _Merge
替换为 Merge
,例如来自
class _Merge(Layer):
(...)
class Add(_Merge):
到
class Merge(Layer):
(...)
class Add(Merge):
因为我现在正在使用调用 tf.keras
的 tf
函数,所以我想从独立的 Keras 切换到 tf.keras
。我以同样的方式更改了同一个文件。此外,我将装饰器添加到 Merge
class,就像 merge.py
中继承自 _Merge
的 classes 所做的那样。
@keras_export('keras.layers.Merge')
class Merge(Layer):
我还添加了
from tensorflow.python.keras.layers.merge import Merge
到 __init__.py
文件,就像对 merge.py
.
中的其他 classes 所做的一样
但是我仍然收到导入错误:
ImportError: cannot import name 'Merge' from 'tensorflow.keras.layers' (unknown location)
我假设 Tensorflow 做了一些我不知道的奇特导出,有人可以向我解释我需要采取哪些进一步的步骤才能使 _Merge
可访问吗?
据我所知,我认为我需要在更改源后重新编译 tensorflow,因为导出用于自动创建文件,稍后所有内容都会从这些文件导入到 python。
在 Tensorflow 1.14 中,我希望能够继承私有 tf.keras
_Merge
class 以在外部文件中实现自定义 _Merge
层。
之前,在独立的 Keras 中,我更改了文件 .../keras/layers/merge.py
的内容,将所有 _Merge
替换为 Merge
,例如来自
class _Merge(Layer):
(...)
class Add(_Merge):
到
class Merge(Layer):
(...)
class Add(Merge):
因为我现在正在使用调用 tf.keras
的 tf
函数,所以我想从独立的 Keras 切换到 tf.keras
。我以同样的方式更改了同一个文件。此外,我将装饰器添加到 Merge
class,就像 merge.py
中继承自 _Merge
的 classes 所做的那样。
@keras_export('keras.layers.Merge')
class Merge(Layer):
我还添加了
from tensorflow.python.keras.layers.merge import Merge
到 __init__.py
文件,就像对 merge.py
.
但是我仍然收到导入错误:
ImportError: cannot import name 'Merge' from 'tensorflow.keras.layers' (unknown location)
我假设 Tensorflow 做了一些我不知道的奇特导出,有人可以向我解释我需要采取哪些进一步的步骤才能使 _Merge
可访问吗?
据我所知,我认为我需要在更改源后重新编译 tensorflow,因为导出用于自动创建文件,稍后所有内容都会从这些文件导入到 python。