ImportError: cannot import name ‘export_saved_model‘ from ‘tensorflow.python.keras.saving.saved_mode

本文介绍了解决在M1芯片MacBook Pro上使用TensorFlow与Keras时出现的版本兼容性问题的方法。主要原因是Keras版本过高且Python版本为3.7导致的错误。文章提供了一个具体解决方案,包括创建新的Anaconda环境、安装指定版本的TensorFlow和Keras等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目场景:

在尝试搭建深度学习环境的时候遭遇这个问题。 M1芯片的MacBookPro环境

问题描述:

在搭建好了anaconda环境并且已经安装好了tensorflow,在pycharm运行程序的时候出现了这个问题。
错误展示:

/Users/lizhihan/coding/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint8 = np.dtype([("qint8", np.int8, 1)])
/Users/lizhihan/coding/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:517: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint8 = np.dtype([("quint8", np.uint8, 1)])
/Users/lizhihan/coding/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:518: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint16 = np.dtype([("qint16", np.int16, 1)])
/Users/lizhihan/coding/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:519: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint16 = np.dtype([("quint16", np.uint16, 1)])
/Users/lizhihan/coding/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:520: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint32 = np.dtype([("qint32", np.int32, 1)])
/Users/lizhihan/coding/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  np_resource = np.dtype([("resource", np.ubyte, 1)])
Traceback (most recent call last):
  File "/Users/lizhihan/Downloads/毕业设计/Deep-Reinforcement-Learning-for-5G-Networks-master/test_environment/test_gpu_or_cpu.py", line 2, in <module>
    from tensorflow.python.client import device_lib
  File "/Users/lizhihan/coding/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/__init__.py", line 34, in <module>
    from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import
  File "/Users/lizhihan/coding/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/__init__.py", line 83, in <module>
    from tensorflow.python import keras
  File "/Users/lizhihan/coding/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/keras/__init__.py", line 26, in <module>
    from tensorflow.python.keras import activations
  File "/Users/lizhihan/coding/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/keras/activations.py", line 24, in <module>
    from tensorflow.python.keras.utils.generic_utils import deserialize_keras_object
  File "/Users/lizhihan/coding/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/keras/utils/__init__.py", line 39, in <module>
    from tensorflow.python.keras.utils.multi_gpu_utils import multi_gpu_model
  File "/Users/lizhihan/coding/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/keras/utils/multi_gpu_utils.py", line 22, in <module>
    from tensorflow.python.keras.engine.training import Model
  File "/Users/lizhihan/coding/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/keras/engine/training.py", line 40, in <module>
    from tensorflow.python.keras.engine import network
  File "/Users/lizhihan/coding/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/keras/engine/network.py", line 39, in <module>
    from tensorflow.python.keras import saving
  File "/Users/lizhihan/coding/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/keras/saving/__init__.py", line 33, in <module>
    from tensorflow.python.keras.saving.saved_model import export_saved_model
ImportError: cannot import name 'export_saved_model' from 'tensorflow.python.keras.saving.saved_model' (/Users/lizhihan/coding/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/__init__.py)

在这里插入图片描述


原因分析:

因为我是使用了keras库的,但是我的keras库是通过pycharm直接安装的最新版,除此之外我在这个anaconda环境中使用的python版本是3.7,所以出现了版本不兼容的问题。对应下面的版本,进行重新配置环境,就可以解决了。


解决方案:

对应下面的版本,进行重新配置环境,就可以解决了。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

举例来说,我要配置1.14版本的tensorflow在终端输入

//按顺序输入:
conda create -n tensorflow python=3.6

source activate tensorflow

pip install tensorflow==1.14
pip install Keras==2.2.5

然后再在pycharm中重新加载这个新建的环境就可以了

这里补充速度过慢的问题解决方法

pip install keras -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
@@ [17:26:42][INFO]<quantize model fp16 cmd>: python3 -m dl quantize 1_handle.onnx.rlym --downcast --output-model 1_handle.onnx.fp16.rlym Traceback (most recent call last): File "/tfjz_auto/miniconda3/envs/TFDS_ARM/lib/python3.8/runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "/tfjz_auto/miniconda3/envs/TFDS_ARM/lib/python3.8/runpy.py", line 87, in _run_code exec(code, run_globals) File "/dl/sdk/python/tvm/dl/python/dl/__main__.py", line 7, in <module> main() File "/dl/sdk/python/tvm/dl/python/dl/main.py", line 72, in main sys.exit(_main(sys.argv[1:])) File "/dl/sdk/python/tvm/dl/python/dl/main.py", line 68, in _main return args.func(args) File "/dl/sdk/python/tvm/dl/python/dl/driver/quantize.py", line 150, in drive_quantize from dl.quantize.quantize import quantize, qconfig File "/dl/sdk/python/tvm/dl/python/dl/quantize/quantize.py", line 49, in <module> from dl.quantize.analysis import ( File "/dl/sdk/python/tvm/dl/python/dl/quantize/analysis.py", line 16, in <module> from dl.quantize.quantization_lib import calibration File "/dl/sdk/python/tvm/dl/python/dl/quantize/quantization_lib.py", line 3, in <module> import tensorflow as tf File "/tfjz_auto/miniconda3/envs/TFDS_ARM/lib/python3.8/site-packages/tensorflow/__init__.py", line 37, in <module> from tensorflow.python.tools import module_util as _module_util File "/tfjz_auto/miniconda3/envs/TFDS_ARM/lib/python3.8/site-packages/tensorflow/python/__init__.py", line 45, in <module> from tensorflow.python.feature_column import feature_column_lib as feature_column File "/tfjz_auto/miniconda3/envs/TFDS_ARM/lib/python3.8/site-packages/tensorflow/python/feature_column/feature_column_lib.py", line 18, in <module> from tensorflow.python.feature_column.feature_column import * File "/tfjz_auto/miniconda3/envs/TFDS_ARM/lib/python3.8/site-packages/tensorflow/python/feature_column/feature_column.py", line 143, in <module> from tensorflow.python.layers import base File "/tfjz_auto/miniconda3/envs/TFDS_ARM/lib/python3.8/site-packages/tensorflow/python/layers/base.py", line 16, in <module> from tensorflow.python.keras.legacy_tf_layers import base File "/tfjz_auto/miniconda3/envs/TFDS_ARM/lib/python3.8/site-packages/tensorflow/python/keras/__init__.py", line 25, in <module> from tensorflow.python.keras import models File "/tfjz_auto/miniconda3/envs/TFDS_ARM/lib/python3.8/site-packages/tensorflow/python/keras/models.py", line 22, in <module> from tensorflow.python.keras.engine import functional File "/tfjz_auto/miniconda3/envs/TFDS_ARM/lib/python3.8/site-packages/tensorflow/python/keras/engine/functional.py", line 32, in <module> from tensorflow.python.keras.engine import training as training_lib File "/tfjz_auto/miniconda3/envs/TFDS_ARM/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py", line 54, in <module> from tensorflow.python.keras.saving import hdf5_format ImportError: cannot import name 'hdf5_format' from 'tensorflow.python.keras.saving' (/tfjz_auto/miniconda3/envs/TFDS_ARM/lib/python3.8/site-packages/tensorflow/python/keras/saving/__init__.py) @@ [17:26:52][INFO]<nne execute>: static build [NNE]python3 -m dl convert --optimize 1_handle.onnx.fp16.rlym --output-model /tmp/.330450//temp_i9x3MV.rlym --outputs "output onnx::Sigmoid_741 onnx::Sigmoid_927 onnx::Sigmoid_1111 " load dlnne_plugin.so && libdlnne_tvm_plugin.so success Traceback (most recent call last): File "/tfjz_auto/miniconda3/envs/TFDS_ARM/lib/python3.8/runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "/tfjz_auto/miniconda3/envs/TFDS_ARM/lib/python3.8/runpy.py", line 87, in _run_code exec(code, run_globals) File "/dl/sdk/python/tvm/dl/python/dl/__main__.py", line 7, in <module> main() File "/dl/sdk/python/tvm/dl/python/dl/main.py", line 72, in main sys.exit(_main(sys.argv[1:])) File "/dl/sdk/python/tvm/dl/python/dl/main.py", line 68, in _main return args.func(args) File "/dl/sdk/python/tvm/dl/python/dl/driver/convert.py", line 231, in drive_convert tvmc_model = load_model(model, shape_dict=args.input_shapes, **kwargs) File "/dl/sdk/python/tvm/python/tvm/driver/tvmc/frontends.py", line 412, in load_model mod, params = frontend.load(path, shape_dict, **kwargs) File "/dl/sdk/python/tvm/dl/python/dl/relay/frontend/frontends.py", line 185, in load assert os.path.exists(path), "{} doesn't exist".format(path) AssertionError: 1_handle.onnx.fp16.rlym doesn't exist terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_M_construct null not valid
最新发布
08-01
PS D:\anaconda3\envs\hjw\graduation_project> & D:/anaconda3/envs/hjw/python.exe d:/anaconda3/envs/hjw/graduation_project/main.py Traceback (most recent call last): File "d:/anaconda3/envs/hjw/graduation_project/main.py", line 6, in <module> from tensorflow.keras import layers, models # type: ignore File "D:\anaconda3\envs\hjw\lib\site-packages\tensorflow\__init__.py", line 37, in <module> from tensorflow.python.tools import module_util as _module_util File "D:\anaconda3\envs\hjw\lib\site-packages\tensorflow\python\__init__.py", line 42, in <module> from tensorflow.python import data File "D:\anaconda3\envs\hjw\lib\site-packages\tensorflow\python\data\__init__.py", line 21, in <module> from tensorflow.python.data import experimental File "D:\anaconda3\envs\hjw\lib\site-packages\tensorflow\python\data\experimental\__init__.py", line 96, in <module> from tensorflow.python.data.experimental import service File "D:\anaconda3\envs\hjw\lib\site-packages\tensorflow\python\data\experimental\service\__init__.py", line 419, in <module> from tensorflow.python.data.experimental.ops.data_service_ops import distribute File "D:\anaconda3\envs\hjw\lib\site-packages\tensorflow\python\data\experimental\ops\data_service_ops.py", line 25, in <module> from tensorflow.python.data.ops import dataset_ops File "D:\anaconda3\envs\hjw\lib\site-packages\tensorflow\python\data\ops\dataset_ops.py", line 29, in <module> from tensorflow.python.data.ops import iterator_ops File "D:\anaconda3\envs\hjw\lib\site-packages\tensorflow\python\data\ops\iterator_ops.py", line 34, in <module> from tensorflow.python.training.saver import BaseSaverBuilder File "D:\anaconda3\envs\hjw\lib\site-packages\tensorflow\python\training\saver.py", line 32, in <module> from tensorflow.python.checkpoint import checkpoint_management File "D:\anaconda3\envs\hjw\lib\site-packages\tensorflow\python\checkpoint\__init__.py", line 3, in <module> from tensorflow.python.checkpoint import checkpoint_view File "D:\anaconda3\envs\hjw\lib\site-packages\tensorflow\python\checkpoint\checkpoint_view.py", line 19, in <module> from tensorflow.python.checkpoint import trackable_view File "D:\anaconda3\envs\hjw\lib\site-packages\tensorflow\python\checkpoint\trackable_view.py", line 20, in <module> from tensorflow.python.trackable import converter File "D:\anaconda3\envs\hjw\lib\site-packages\tensorflow\python\trackable\converter.py", line 18, in <module> from tensorflow.python.eager.polymorphic_function import saved_model_utils File "D:\anaconda3\envs\hjw\lib\site-packages\tensorflow\python\eager\polymorphic_function\saved_model_utils.py", line 36, in <module> from tensorflow.python.trackable import resource File "D:\anaconda3\envs\hjw\lib\site-packages\tensorflow\python\trackable\resource.py", line 22, in <module> from tensorflow.python.eager import def_function File "D:\anaconda3\envs\hjw\lib\site-packages\tensorflow\python\eager\def_function.py", line 20, in <module> from tensorflow.python.eager.polymorphic_function.polymorphic_function import set_dynamic_variable_creation File "D:\anaconda3\envs\hjw\lib\site-packages\tensorflow\python\eager\polymorphic_function\polymorphic_function.py", line 76, in <module> from tensorflow.python.eager.polymorphic_function import function_spec as function_spec_lib File "D:\anaconda3\envs\hjw\lib\site-packages\tensorflow\python\eager\polymorphic_function\function_spec.py", line 25, in <module> from tensorflow.core.function.polymorphism import function_type as function_type_lib File "D:\anaconda3\envs\hjw\lib\site-packages\tensorflow\core\function\polymorphism\function_type.py", line 19, in <module> from typing import Any, Callable, Dict, Mapping, Optional, Sequence, Tuple, OrderedDict ImportError: cannot import name 'OrderedDict' from 'typing' (D:\anaconda3\envs\hjw\lib\typing.py)
03-20
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值