自 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团队能少搞点幺蛾子不~

posted @ 2022-02-06 17:13  cpuimage  阅读(876)  评论(1编辑  收藏  举报