pycharm 中的 Tensorflow.keras.layers“未解析参考”

use*_*140 6 python pycharm tensorflow

我刚刚安装了 tensorflow,并且正在尝试让基础知识发挥作用。但是,导入语句以红色下划线标出,并带有消息“未解析的引用'层'”。不过代码确实运行正常。

我已经尝试了这个问题中的一些建议:PyCharm 显示了有效代码的未解析引用错误

但是,这个问题与我的具体错误无关,我想知道我的错误的原因是什么,以及它是否只是 pycharm 级别错误的一部分,还是与 tensorflow 相关的问题。

我的代码是:

import tensorflow as tf;
from tensorflow.keras import layers;
Run Code Online (Sandbox Code Playgroud)

它在“图层”下方的红色锯齿下划线上给出了错误“未解析的参考‘图层’”,但没有说明如何解决它。

jia*_*mmy 5

Pycharm 可能just recognize the sub-package

\n\n


\n\n

(1)package tensorflow\'s structure :

\n\n
  \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 tensorflow\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 _api\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 compiler\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 contrib\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 core\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 examples\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 include\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 python\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 tools\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 __init__.py\n
Run Code Online (Sandbox Code Playgroud)\n\n

您可以以绝对方式导入图层

\n\n

from tensorflow._api.v1.keras import layers

\n\n

然后你就会进入no unresolved reference mark你的pycharm。

\n\n


\n\n

(2) 在tensorflow包中 __init__.py

\n\n
  \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 tensorflow\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 _api\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 compiler\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 contrib\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 core\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 examples\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 include\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 python\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 tools\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 __init__.py\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后,你可以简单地layers导入from tensorflow.keras import layers

\n\n

但 packagekeras不是 的子包tensorflow,所以 pycharm 将其标记为unresolved reference,这不是错误

\n


小智 5

如果您使用的是 Tensorflow 2.0,请尝试使用此代码来加载它们,而不是使用“from”和“import”

import tensorflow
example_model = tensorflow.keras.Sequential()
BatchNormalization = tensorflow.keras.layers.BatchNormalization
Conv2D = tensorflow.keras.layers.Conv2D
MaxPooling2D = tensorflow.keras.layers.MaxPooling2D
Activation = tensorflow.keras.layers.Activation
Flatten = tensorflow.keras.layers.Flatten
Dropout = tensorflow.keras.layers.Dropout
Dense = tensorflow.keras.layers.Dense

##Testing Purpose On PyCharm##
example_model.add(Conv2D(64, (3, 3), activation='relu', padding='same', input_shape=(100, 100, 1)))
example_model.add(MaxPooling2D((2, 2)))
example_model.add(Flatten())
example_model.summary()
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以直接使用以下命令导入包:

from keras import layers;
Run Code Online (Sandbox Code Playgroud)

不需要添加“import tensorflow as tf;” 和第二行中的“tensorflow”。