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等步骤。
部署运行你感兴趣的模型镜像

项目场景:

在尝试搭建深度学习环境的时候遭遇这个问题。 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

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

AttributeError Traceback (most recent call last) <ipython-input-8-8f7733e9c222> in <module> ----> 1 import tensorflow as tf 2 import matplotlib.pyplot as plt 3 import numpy as np F:\Anaconda\lib\site-packages\tensorflow\__init__.py in <module> 36 import typing as _typing 37 ---> 38 from tensorflow.python.tools import module_util as _module_util 39 from tensorflow.python.util.lazy_loader import LazyLoader as _LazyLoader 40 F:\Anaconda\lib\site-packages\tensorflow\python\__init__.py in <module> 43 from tensorflow.python import distribute 44 # from tensorflow.python import keras ---> 45 from tensorflow.python.feature_column import feature_column_lib as feature_column 46 # from tensorflow.python.layers import layers 47 from tensorflow.python.module import module F:\Anaconda\lib\site-packages\tensorflow\python\feature_column\feature_column_lib.py in <module> 16 17 # pylint: disable=unused-import,line-too-long,wildcard-import,g-bad-import-order ---> 18 from tensorflow.python.feature_column.feature_column import * 19 from tensorflow.python.feature_column.feature_column_v2 import * 20 from tensorflow.python.feature_column.sequence_feature_column import * F:\Anaconda\lib\site-packages\tensorflow\python\feature_column\feature_column.py in <module> 141 from tensorflow.python.framework import sparse_tensor as sparse_tensor_lib 142 from tensorflow.python.framework import tensor_shape --> 143 from tensorflow.python.layers import base 144 from tensorflow.python.ops import array_ops 145 from tensorflow.python.ops import array_ops_stack F:\Anaconda\lib\site-packages\tensorflow\python\layers\base.py in <module> 14 # ============================================================================= 15 """Contains the base Layer class, from which all layers inherit.""" ---> 16 from tensorflow.python.keras.legacy_tf_layers import base 17 18 InputSpec = base.InputSpec F:\Anaconda\lib\site-packages\tensorflow\python\keras\__init__.py in <module> 23 24 # See b/110718070#comment18 for more details about this import. ---> 25 from tensorflow.python.keras import models 26 27 from tensorflow.python.keras.engine.input_layer import Input F:\Anaconda\lib\site-packages\tensorflow\python\keras\models.py in <module> 20 from tensorflow.python.keras import metrics as metrics_module 21 from tensorflow.python.keras import optimizer_v1 ---> 22 from tensorflow.python.keras.engine import functional 23 from tensorflow.python.keras.engine import sequential 24 from tensorflow.python.keras.engine import training F:\Anaconda\lib\site-packages\tensorflow\python\keras\engine\functional.py in <module> 30 from tensorflow.python.keras.engine import input_spec 31 from tensorflow.python.keras.engine import node as node_module ---> 32 from tensorflow.python.keras.engine import training as training_lib 33 from tensorflow.python.keras.engine import training_utils 34 from tensorflow.python.keras.saving.saved_model import network_serialization F:\Anaconda\lib\site-packages\tensorflow\python\keras\engine\training.py in <module> 51 from tensorflow.python.keras.mixed_precision import loss_scale_optimizer as lso 52 from tensorflow.python.keras.mixed_precision import policy ---> 53 from tensorflow.python.keras.saving import hdf5_format 54 from tensorflow.python.keras.saving import save 55 from tensorflow.python.keras.saving import saving_utils F:\Anaconda\lib\site-packages\tensorflow\python\keras\saving\hdf5_format.py in <module> 35 # pylint: disable=g-import-not-at-top 36 try: ---> 37 import h5py 38 HDF5_OBJECT_HEADER_LIMIT = 64512 39 except ImportError: F:\Anaconda\lib\site-packages\h5py\__init__.py in <module> 44 _errors.silence_errors() 45 ---> 46 from ._conv import register_converters as _register_converters 47 _register_converters() 48 h5py\h5t.pxd in init h5py._conv() h5py\h5t.pyx in init h5py.h5t() F:\Anaconda\lib\site-packages\numpy\__init__.py in __getattr__(attr) 318 return Tester 319 --> 320 raise AttributeError("module {!r} has no attribute " 321 "{!r}".format(__name__, attr)) 322 AttributeError: module 'numpy' has no attribute 'typeDict'
最新发布
11-20
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-1-232abbca6849> in <module> 1 import os ----> 2 from keras.datasets import mnist 3 (train_images,train_labels),(test_images,test_labels)=mnist.load_data((os.getcwd())+'/mnist.npz') 4 print(type(train_images)) 5 print(type(train_labels)) D:\rujian\pc\lib\site-packages\keras\__init__.py in <module> 18 [keras.io](https://keras.io). 19 """ ---> 20 from keras import distribute 21 from keras import models 22 from keras.engine.input_layer import Input D:\rujian\pc\lib\site-packages\keras\distribute\__init__.py in <module> 16 17 ---> 18 from keras.distribute import sidecar_evaluator D:\rujian\pc\lib\site-packages\keras\distribute\sidecar_evaluator.py in <module> 15 """Python module for evaluation loop.""" 16 ---> 17 import tensorflow.compat.v2 as tf 18 19 # isort: off D:\rujian\pc\lib\site-packages\tensorflow\__init__.py in <module> 35 import typing as _typing 36 ---> 37 from tensorflow.python.tools import module_util as _module_util 38 from tensorflow.python.util.lazy_loader import LazyLoader as _LazyLoader 39 D:\rujian\pc\lib\site-packages\tensorflow\python\__init__.py in <module> 43 from tensorflow.python import distribute 44 # from tensorflow.python import keras ---> 45 from tensorflow.python.feature_column import feature_column_lib as feature_column 46 # from tensorflow.python.layers import layers 47 from tensorflow.python.module import module D:\rujian\pc\lib\site-packages\tensorflow\python\feature_column\feature_column_lib.py in <module> 16 17 # pylint: disable=unused-import,line-too-long,wildcard-import,g-bad-import-order ---> 18 from tensorflow.python.feature_column.feature_column import * 19 from tensorflow.python.feature_column.feature_column_v2 import * 20 from tensorflow.python.feature_column.sequence_feature_column import * D:\rujian\pc\lib\site-packages\tensorflow\python\feature_column\feature_column.py in <module> 141 from tensorflow.python.framework import sparse_tensor as sparse_tensor_lib 142 from tensorflow.python.framework import tensor_shape --> 143 from tensorflow.python.layers import base 144 from tensorflow.python.ops import array_ops 145 from tensorflow.python.ops import check_ops D:\rujian\pc\lib\site-packages\tensorflow\python\layers\base.py in <module> 14 # ============================================================================= 15 """Contains the base Layer class, from which all layers inherit.""" ---> 16 from tensorflow.python.keras.legacy_tf_layers import base 17 18 InputSpec = base.InputSpec D:\rujian\pc\lib\site-packages\tensorflow\python\keras\__init__.py in <module> 23 24 # See b/110718070#comment18 for more details about this import. ---> 25 from tensorflow.python.keras import models 26 27 from tensorflow.python.keras.engine.input_layer import Input D:\rujian\pc\lib\site-packages\tensorflow\python\keras\models.py in <module> 20 from tensorflow.python.keras import metrics as metrics_module 21 from tensorflow.python.keras import optimizer_v1 ---> 22 from tensorflow.python.keras.engine import functional 23 from tensorflow.python.keras.engine import sequential 24 from tensorflow.python.keras.engine import training D:\rujian\pc\lib\site-packages\tensorflow\python\keras\engine\functional.py in <module> 30 from tensorflow.python.keras.engine import input_spec 31 from tensorflow.python.keras.engine import node as node_module ---> 32 from tensorflow.python.keras.engine import training as training_lib 33 from tensorflow.python.keras.engine import training_utils 34 from tensorflow.python.keras.saving.saved_model import network_serialization D:\rujian\pc\lib\site-packages\tensorflow\python\keras\engine\training.py in <module> 52 from tensorflow.python.keras.mixed_precision import loss_scale_optimizer as lso 53 from tensorflow.python.keras.mixed_precision import policy ---> 54 from tensorflow.python.keras.saving import hdf5_format 55 from tensorflow.python.keras.saving import save 56 from tensorflow.python.keras.saving import saving_utils D:\rujian\pc\lib\site-packages\tensorflow\python\keras\saving\hdf5_format.py in <module> 35 # pylint: disable=g-import-not-at-top 36 try: ---> 37 import h5py 38 HDF5_OBJECT_HEADER_LIMIT = 64512 39 except ImportError: D:\rujian\pc\lib\site-packages\h5py\__init__.py in <module> 44 _errors.silence_errors() 45 ---> 46 from ._conv import register_converters as _register_converters 47 _register_converters() 48 h5py\h5t.pxd in init h5py._conv() h5py\h5t.pyx in init h5py.h5t() ~\AppData\Roaming\Python\Python38\site-packages\numpy\__init__.py in __getattr__(attr) 318 return Tester 319 --> 320 raise AttributeError("module {!r} has no attribute " 321 "{!r}".format(__name__, attr)) 322 AttributeError: module 'numpy' has no attribute 'typeDict'
10-24
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值