自 TensorFlow 2.6 起,修正IDE代码自动补全失效的方法
很久没写博文,写这个,只是纯粹为了吐槽tf越升级,问题越多。
自TensorFlow 2.6 至 TensorFlow 2.9.1
各个IDE工具的tf.keras 自动补全失效了。
修正办法:
修改python的tensorflow包初始化文件:
site-packages\tensorflow\_init_.py
将其中的代码:
_keras_module = "keras.api._v2.keras"
keras = _LazyLoader("keras", globals(), _keras_module)
_module_dir = _module_util.get_parent_dir_for_name(_keras_module)
if _module_dir:
_current_module.__path__ = [_module_dir] + _current_module.__path__
setattr(_current_module, "keras", keras)
改为:
import typing as _typing
if _typing.TYPE_CHECKING:
from keras.api._v2 import keras
else:
_keras_module = "keras.api._v2.keras"
keras = _LazyLoader("keras", globals(), _keras_module)
_module_dir = _module_util.get_parent_dir_for_name(_keras_module)
if _module_dir:
_current_module.__path__ = [_module_dir] + _current_module.__path__
setattr(_current_module, "keras", keras)
重启IDE即可。
相关issues见链接:
https://github.com/tensorflow/tensorflow/issues/53144#issuecomment-985179600
看到很多人都转投pytorch了,博主还在坚守tensorflow阵地。
怒其不争,TensorFlow团队能少搞点幺蛾子不~

浙公网安备 33010602011771号