Anaconda环境Jupyter Notebook导入Tensorflow库报错问题求助
问题描述
以下是运行的LSTM模型相关代码:
# lstm model import tensorflow as tf from numpy import mean from numpy import std from numpy import dstack from pandas import read_csv from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense from tensorflow.keras.layers import Flatten from tensorflow.keras.layers import Dropout from tensorflow.keras.layers import LSTM from tensorflow.keras.utils import to_categorical from matplotlib import pyplot
在Anaconda环境中使用Jupyter Notebook运行上述代码,导入依赖库时出现TensorFlow相关报错,使用的Python版本为3.9,已安装所有Python相关依赖包,触发的TypeError错误日志如下:
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) ~\AppData\Local\Temp/ipykernel_10616/748904884.py in <module> 1 # lstm model ----> 2 import tensorflow as tf 3 from numpy import mean 4 from numpy import std 5 from numpy import dstack ~\AppData\Roaming\Python\Python39\site-packages\tensorflow\__init__.py in <module> 39 import sys as _sys 40 ---> 41 from tensorflow.python.tools import module_util as _module_util 42 from tensorflow.python.util.lazy_loader import LazyLoader as _LazyLoader 43 ~\AppData\Roaming\Python\Python39\site-packages\tensorflow\python\__init__.py in <module> 44 45 # Bring in subpackages. ---> 46 from tensorflow.python import data 47 from tensorflow.python import distribute 48 # from tensorflow.python import keras ~\AppData\Roaming\Python\Python39\site-packages\tensorflow\python\data\__init__.py in <module> 23 24 # pylint: disable=unused-import ---> 25 from tensorflow.python.data import experimental 26 from tensorflow.python.data.ops.dataset_ops import AUTOTUNE 27 from tensorflow.python.data.ops.dataset_ops import Dataset ~\AppData\Roaming\Python\Python39\sitepackages\tensorflow\python\data\experimental\__init__.py in <module> 96 97 # pylint: disable=unused-import --- > 98 from tensorflow.python.data.experimental import service 99 from tensorflow.python.data.experimental.ops.batching import dense_to_ragged_batch 100 from tensorflow.python.data.experimental.ops.batching import dense_to_sparse_batch ~\AppData\Roaming\Python\Python39\site- packages\tensorflow\python\data\experimental\service\__init__.py in <module> 372 from __future__ import print_function 373 ---> 374 from tensorflow.python.data.experimental.ops.data_service_ops import distribute 375 from tensorflow.python.data.experimental.ops.data_service_ops import from_dataset_id 376 from tensorflow.python.data.experimental.ops.data_service_ops import register_dataset ~\anaconda3\envs\mygpu\lib\site- packages\tensorflow\python\data\experimental\ops\data_service_ops.py in <module> 23 24 from tensorflow.python import tf2 ---> 25 from tensorflow.python.data.experimental.ops import compression_ops 26 from tensorflow.python.data.experimental.ops.distribute_options import AutoShardPolicy 27 from tensorflow.python.data.experimental.ops.distribute_options import ExternalStatePolicy ~\anaconda3\envs\mygpu\lib\site- packages\tensorflow\python\data\experimental\ops\compression_ops.py in <module> 18 from __future__ import print_function 19 --- > 20 from tensorflow.python.data.util import structure 21 from tensorflow.python.ops import gen_experimental_dataset_ops as ged_ops 22 ~\anaconda3\envs\mygpu\lib\site-packages\tensorflow\python\data\util\structure.py in <module> 24 import wrapt 25 ---> 26 from tensorflow.python.data.util import nest 27 from tensorflow.python.framework import composite_tensor 28 from tensorflow.python.framework import ops ~\anaconda3\envs\mygpu\lib\site-packages\tensorflow\python\data\util\nest.py in <module> 38 import six as _six 39 ---> 40 from tensorflow.python.framework import sparse_tensor as _sparse_tensor 41 from tensorflow.python.util import _pywrap_utils 42 from tensorflow.python.util import nest ~\anaconda3\envs\mygpu\lib\site-packages\tensorflow\python\framework\sparse_tensor.py in <module> 26 from tensorflow.python import tf2 27 from tensorflow.python.framework import composite_tensor --- > 28 from tensorflow.python.framework import constant_op 29 from tensorflow.python.framework import dtypes 30 from tensorflow.python.framework import ops ~\anaconda3\envs\mygpu\lib\site-packages\tensorflow\python\framework\constant_op.py in <module> 27 from tensorflow.core.framework import types_pb2 28 from tensorflow.python.eager import context --- > 29 from tensorflow.python.eager import execute 30 from tensorflow.python.framework import dtypes 31 from tensorflow.python.framework import op_callbacks ~\anaconda3\envs\mygpu\lib\site-packages\tensorflow\python\eager\execute.py in <module> 25 from tensorflow.python import pywrap_tfe 26 from tensorflow.python.eager import core --- > 27 from tensorflow.python.framework import dtypes 28 from tensorflow.python.framework import ops 29 from tensorflow.python.framework import tensor_shape ~\anaconda3\envs\mygpu\lib\site-packages\tensorflow\python\framework\dtypes.py in <module> 30 from tensorflow.python.util.tf_export import tf_export 31 --- > 32 _np_bfloat16 = _pywrap_bfloat16.TF_bfloat16_type() 33 34 TypeError: Unable to convert function return value to a Python type! The signature was () -> handle
解决方案
- 修复NumPy和TensorFlow版本不兼容问题:该报错核心原因是NumPy版本过高,与当前安装的TensorFlow版本不匹配。你可以先在当前激活的conda环境中执行
pip show numpy tensorflow查看二者版本,若使用TensorFlow 2.10及以下版本,将NumPy降级到1.23.x分支即可解决,执行命令:pip install numpy==1.23.5 - 清除多路径TensorFlow安装冲突:从报错日志可见,你在系统全局Python路径和当前conda虚拟环境路径都安装了TensorFlow,会导致导入时模块搜索混乱。多次执行
pip uninstall tensorflow直到提示无相关安装包,再在激活的conda环境中重新安装对应版本的TensorFlow,保证仅在当前虚拟环境存在TensorFlow安装包即可。 - 重启Jupyter内核:完成上述操作后,在Jupyter界面选择「Kernel」-「Restart & Clear Output」,重新运行代码即可正常导入依赖。
内容的提问来源于stack exchange,提问作者Gun
相关产品推荐
相关产品推荐

