首页 > 解决方案 > ImportError:无法从部分初始化的模块“keras”导入名称“__version__”(很可能是由于循环导入)

问题描述

我已经为我的机器学习项目导入了以下库,但是当我尝试在命令提示符下运行我的模型时遇到问题......

from tensorflow.python.keras import Model

from tensorflow.python.keras.layers import Layer, Input, Conv2D, MaxPooling2D, Conv2DTranspose, concatenate, Lambda

from tensorflow.python.keras.initializers import TruncatedNormal

from keras.optimizers import Adam

from tensorflow.python.keras.callbacks import ModelCheckpoint, LearningRateScheduler, CSVLogger, Callback

from tensorflow.python.keras.models import load_model

from tensorflow.python.keras.utils import Sequence

这是我在命令提示符下尝试运行模型时收到的错误消息。

ImportError: cannot import name '__version__' from partially initialized module 'keras' (most likely due to a circular import) (C:\Users\gurun\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\__init__.py)

标签: pythontensorflowkeras

解决方案


始终建议使用tensorflow.keras.*而不是tensorflow.python.*.

这是因为下面的任何内容tensorflow.python.*都是私有的,仅用于开发,而不是供公共使用。

import tensorflow as tf
print(tf.__version__)

from tensorflow.keras import Model

from tensorflow.keras.layers import Layer, Input, Conv2D, MaxPooling2D, Conv2DTranspose, concatenate, Lambda

from tensorflow.keras.initializers import TruncatedNormal

from tensorflow.keras.optimizers import Adam

from tensorflow.keras.callbacks import ModelCheckpoint, LearningRateScheduler, CSVLogger, Callback

from tensorflow.keras.models import load_model

from tensorflow.keras.utils import Sequence

输出:

2.5.0

推荐阅读