tensorflow pycharm中的“未解析引用”

p1tboqfb  于 2022-11-16  发布在  PyCharm
关注(0)|答案(4)|浏览(527)

我刚刚安装了TensorFlow,并试图让基础工作。然而,导入语句用红色下划线,并显示消息“未解析的引用'层'“。尽管代码运行正确。
我已经尝试了这个问题中的一些建议:PyCharm shows unresolved references error for valid code
然而,这个问题并不是关于我的具体错误,我想知道我的错误的原因是什么,它是否只是pycharm级bug的一部分,或者与tensorflow 有关。
我的代码是:

import tensorflow as tf;
from tensorflow.keras import layers;

它在“layers”下面的红色锯齿形下划线上给出了错误“unresolved reference 'layers'“,但没有说明如何解决该错误。

7ajki6be

7ajki6be1#

我的天啊
(1)package tensorflow's structure :

├── tensorflow
        ├── _api
        ├── compiler
        ├── contrib
        ├── core
        ├── examples
        ├── include
        ├── python
        ├── tools
        └── __init__.py

您可以以绝对方式导入层
from tensorflow._api.v1.keras import layers
那么您将在pycharm中得到no unresolved reference mark
(2)在包中tensorflow 的__init__.py

...
from tensorflow._api.v1 import keras  

# import all packages you want to use in tensorflow level 
# so, you can use `from tensorflow.keras import layers` for keras having been imported

...

然后,您可以像导入from tensorflow.keras import layers一样简单地导入layers
但是包keras不是tensorflow的子包,所以pycharm将其标记为unresolved reference,这不是错误

cqoc49vn

cqoc49vn2#

如果您使用的是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()
rkue9o1l

rkue9o1l3#

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

from keras import layers;

没有必要添加“导入tensorflow作为tf;“和第二行中的“tensorflow ”。

i1icjdpr

i1icjdpr4#

我刚在Pycharm跑步
管道安装角
一切都解决了

相关问题