Vscode keras intellisense(建议)无法正常工作

问题描述 投票:0回答:7

智能感知在导入短语时效果很好

image1

但是当使用链接方法时,它会显示不同的建议

image2

Python 和 Pylance 扩展已安装。

python visual-studio-code autocomplete
7个回答
13
投票

来自 github 上的这个问题 尝试将其添加到您的

tensorflow/__init__.py
的底部(对我来说是
.venv/Lib/site-packages/tensorflow

# Explicitly import lazy-loaded modules to support autocompletion.
# pylint: disable=g-import-not-at-top
if _typing.TYPE_CHECKING:
  from tensorflow_estimator.python.estimator.api._v2 import estimator as estimator
  from keras.api._v2 import keras
  from keras.api._v2.keras import losses
  from keras.api._v2.keras import metrics
  from keras.api._v2.keras import optimizers
  from keras.api._v2.keras import initializers
# pylint: enable=g-import-not-at-top

问题是因为 keras 是一个特殊的类,可以实现延迟加载,而不是一个普通的模块。

编辑:通过更新 tf、vscode 或其他内容,我不再遇到此问题,并且不再需要使用上述修复。我只需使用

keras = tf.keras
而不是
from tensorflow import keras
,我现在就可以使用 Intellisense 了。


1
投票

试试这个

不要这样直接导入

import tensorflow as tf
import tensorflow.keras as keras

相反做

import tensorflow as tf
keras = tf.keras

此更改后,一切都得到修复并开始显示更好的建议,包括功能文档


0
投票

您是否尝试清除系统上的缓存?


0
投票

tensorflow.python.keras
仅供开发人员使用,不应该使用,但我认为用作“类型”就可以了。我还读到它是与
tensorflow.keras
不同的版本,所以请记住这一点。

# Those are the imports, that actualy load the correct code
import tensorflow.keras as tfk
import tensorflow.keras.layers as layers

# This is for typehinting and intllisense
import tensorflow.python.keras as _tfk
import tensorflow.python.keras.layers as _layers

# This gets highlighted as error by my linter, but it runs
tfk: _tfk
layers: _layers

# from now on, the intellisense and docstrings work
# ...

0
投票

虽然

keras = tf.keras
可以解决问题,但我很惊讶我的家用机器上的 IntelliSense 无法工作。事实证明,由于窗口重新加载或其他原因,我使用的 Jupyter 笔记本没有使用正确的 Python 解释器(带有 tf 和 keras 的 conda 环境@
2.11.0
)。


0
投票

这对我使用 conda 与 cuda 和 tensoflow 有用:

import tensorflow as tf 

from tensorflow import keras

from keras.api._v2 import keras as KerasAPI


KerasAPI.applications.ResNet50() 

0
投票

对于

tensorflow/__init__.py
中的张量流 2.16.2 放置:

# Explicitly import lazy-loaded modules to support autocompletion.
# pylint: disable=g-import-not-at-top
if _typing.TYPE_CHECKING:
  from tensorflow_estimator.python.estimator.api._v2 import estimator as estimator
  from tensorflow import keras
  import keras.api.losses
  import keras.api.metrics
  import keras.api.optimizers
  import keras.api.initializers
# pylint: enable=g-import-not-at-top
© www.soinside.com 2019 - 2024. All rights reserved.