一、前言
这是我的学习专栏:Python深度学习专栏
经过前面的学习,我们在学习中也难免会遇见问题,这一期我们就专门来讲一下我在其中遇见的问题,可能你们也会遇见,我的解决方法也仅供参考,具体情况具体解决方法,你们如果有什么疑问欢迎来找我留言。
好啦,我们开始今天的学习之旅!!!
二、我的环境
- 电脑系统:Windows 11
- 语言环境:Python 3.8
- 编译器:PyCharm
- 深度学习环境:TensorFlow 2.3.0
- 我的电脑显卡:NVIDIA GeForce RTX 3070
三、问题:numpy版本不兼容
在运行代码的过程中如果你遇见了如下的报错:
NotImplementedError: Cannot convert a symbolic Tensor (sequential/simple_rnn/strided_slice:0) to a numpy array. This error may indicate that you're trying to pass a Tensor to a NumPy call, which is not supported
这个问题是因为你的tensorflow版本和numpy版本不兼容导致的,还有可能是和Python版本不兼容导致的,我的问题是前者。
四、解决问题
首先需要查看你安装的tensorflow版本是多少,我们通过Python代码来查看我们环境中安装的版本是多少:
import tensorflow as tf print(tf.__version__)
我运行出来的结果是:
2.3.0
现在可以知道我们安装的tensorflow版本了,现在我们需要去查看我们numpy版本。
如果你使用的是PyCharm,你可以直接在设置中点击项目,然后点击Python解释器,就可以在安装的库列表中找到你安装的numpy:
这里的numpy是我经过降低版本之后的版本,如果你的numpy在1.20版本以上就会出现不兼容的问题
你也可以通过在Anaconda Prompt里面输入指令来查看numpy版本
解决报错的方法就是需要降低numpy版本到1.20版本以下,我的Python版本是3.8所以最好降低到1.19版本左右最好。
如果你是使用PyCharm的话,解决办法非常简单,具体操作如下:
选择适合自己的版本然后重启一下PyCharm就可以啦。
我们还可以直接使用anaconda环境利用命令来降低numpy版本,这种方法没有第一种方便快捷。
首先需要在cmd中卸载安装的numpy:
pip uninstall numpy
然后在conda里面安装你需要的numpy版本:
例如:
conda install numpy==1.19.2
这里的安装非常耗时间,可以使用清华镜像加快下载速度。
在这里我提供一下我在网上查到的tensorflow版本兼容numpy版本的对应表:
tensorflow版本 | numpy版本 |
2.6.0 | 1.19.5 |
2.0.0 | 1.16.4 |
1.3.0 | 1.16.2 |
1.14.0 | 1.16.0 |
1.13.1 | 1.16.0 |
1.12.0 | 1.15.4 |
1.8.0 | 1.14.5 |
以上方法以及对应表仅供参考,如果解决不了还需读者朋友们自行上网翻阅。
五、最后我想说
在这里我给大家提供两个推荐网址,可以去看看,可能能帮助大家解决问题,毕竟不同的问题肯定是不同的解决方法,在这里我目前还没有遇见其他的问题,如果大家遇见其他的问题,欢迎和我讨论。
网址:
- https://github.com/tensorflow/models/issues/9706#issuecomment-875123676
- https://stackoverflow.com/questions/66207609/notimplementederror-cannot-convert-a-symbolic-tensor-lstm-2-strided-slice0-t
tensorflow各版本和Python的有些库会出现不兼容,所以安装的时候需要大家花点时间,比较麻烦。
本期的内容也就到此为止啦,下一期的博客我会来进行一些本周学习的知识点总结,谢谢大家能耐心看完,也希望大家期待我接下来的创作。
最后,祝大家都能解决问题,学到东西,获得成就感,一步一步的进步,我们一起加油!你们的鼓励将是我创作的最大的动力!谢谢大家,期待大家的点赞收藏转发三连。
周学习的知识点总结,谢谢大家能耐心看完,也希望大家期待我接下来的创作。
最后,祝大家都能解决问题,学到东西,获得成就感,一步一步的进步,我们一起加油!你们的鼓励将是我创作的最大的动力!谢谢大家,期待大家的点赞收藏转发三连。