这是一篇会长期更新的博客,记录了遇到的大小坑,查了很多资料博客等,没办法都贴出来出处,只能表示感谢!
使用的是python3,所以很多问题是python2和Python3的版本冲突。
1.
Message: 'float' object cannot be interpreted as an integer
通常定位在这样的语句上,
batch = 20
for x in range(m / batch):
...
这个主要是因为python 的版本不同:python2,/
只留下了整数部分,是int型。python3,/
的结果是真正的除法,结果是float型。
解决办法:在python3环境下运行时,将 '/' 改成 '//' 即可表示向下取整。
2.
TypeError: 'map' object is not subscriptable
定位语句,
map(a, b)
解决办法,修改为,
list(map(a, b))
3.
DuplicateFlagError: The flag ‘xxx' is defined twice.
运行代码的时候经常碰到,仔细检查以后发现并没有重复定义,
解决办法,清除控制台、重新启动Restart Kernel即可。
4.
import cPickle时报错
python3中cPickle改名了,所以import不进来
解决办法,更换名称,记得后面的调用也要更名。
import pickle
5.
Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问
当执行命令python -m pip install – -upgrade pip 希望更新pip时,发现报错。
解决办法,加上--user即可
python -m pip install –-user –-upgrade pip
6.
Check failed: PyBfloat16_Type.tp_base != nullptr
一般时import numpy as np时发生的错误,这个是因为numpy的版本低了,更新一下就好,要确保只有一个numpy。
解决办法,Anaconda Prompt中进行更新numpy
activate tensorflow # 启动tensorflow
pip uninstall numpy # 卸载已经存在的numpy
python -m pip install --upgrade numpy # 更新唯一的numpy
对了,好像使用conda目前没办法更新到最新版本。
7. 在cpu上运行程序的时候会出现的警告
supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
这个我没管它,不影响什么,有需要的可以查看这个博客的解决办法:https://blog.csdn.net/Fourierrr_/article/details/79749899