win10 64+anaconda+cpu+tensorflow排坑指南
第三次,终于成功了,开心
1. tensorflow和anaconda兼容问题
直接上可用版本,Anaconda3-5.1.0-Windows-x86_64,官网自行搜索
上图
2.ModuleNotFoundError: No module named ‘cv2’
直接cmd 输入pip install opencv_python,不过超级慢
推荐cmd输入pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv_python,清华镜像毕竟是国内的,快一点嘛。
3.ModuleNotFoundError: No module named ‘object_detection’
这个博主讲得非常好哟https://blog.csdn.net/whitesilence/article/details/79047107
文章里的里面的
这两个路径都是指你自己的model的目录
以.pth后缀结尾,是把它改成.pth的格式,如图
4.ImportError: cannot import name ‘string_int_label_map_pb2’
- 下载protoc-3.6.1-win32,
https://github.com/protocolbuffers/protobuf/releases - 解压后将bin里面的protoc.exe的路径加到电脑的 环境变量的PATH中
- 打开cmd,在/model/research/目录下执行命令
protoc object_detection/protos/*.proto --python_out=. - 发现出错
object_detection/protos/*.proto: No such file or directory - 修改命令为
D:\protoc-3.6.1-win32\bin\protoc object_detection\protos\*.proto --python_out=.(你的protoc-3.6.1-win32的 ) - 结果尴尬又出错了,还是一个一个得编译吧,还是在这个目录下依次执行
protoc --python_out=. .\object_detection\protos\anchor_generator.proto
protoc --python_out=. .\object_detection\protos\argmax_matcher.proto
protoc --python_out=. .\object_detection\protos\bipartite_matcher.proto
protoc --python_out=. .\object_detection\protos\box_coder.proto
protoc --python_out=. .\object_detection\protos\box_predictor.proto
protoc --python_out=. .\object_detection\protos\eval.proto
protoc --python_out=. .\object_detection\protos\faster_rcnn.proto
protoc --python_out=. .\object_detection\protos\faster_rcnn_box_coder.proto
protoc --python_out=. .\object_detection\protos\grid_anchor_generator.proto
protoc --python_out=. .\object_detection\protos\hyperparams.proto
protoc --python_out=. .\object_detection\protos\image_resizer.proto
protoc --python_out=. .\object_detection\protos\input_reader.proto
protoc --python_out=. .\object_detection\protos\losses.proto
protoc --python_out=. .\object_detection\protos\matcher.proto
protoc --python_out=. .\object_detection\protos\mean_stddev_box_coder.proto
protoc --python_out=. .\object_detection\protos\model.proto
protoc --python_out=. .\object_detection\protos\optimizer.proto
protoc --python_out=. .\object_detection\protos\pipeline.proto
protoc --python_out=. .\object_detection\protos\post_processing.proto
protoc --python_out=. .\object_detection\protos\preprocessor.proto
protoc --python_out=. .\object_detection\protos\region_similarity_calculator.proto
protoc --python_out=. .\object_detection\protos\square_box_coder.proto
protoc --python_out=. .\object_detection\protos\ssd.proto
protoc --python_out=. .\object_detection\protos\ssd_anchor_generator.proto
protoc --python_out=. .\object_detection\protos\string_int_label_map.proto
protoc --python_out=. .\object_detection\protos\train.proto
protoc --python_out=. .\object_detection\protos\keypoint_box_coder.proto
protoc --python_out=. .\object_detection\protos\multiscale_anchor_generator.proto
-编译成功后,文件夹中后出现。.protos相对应的一系列的.py文件
5.UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xca in position 0: invalid continuation byte
解决方案:在读取数据的时候,因为我的数据集全是中文,显式添加编码方式encoding=‘GB2312’,或者其他编码(参考(https://segmentfault.com/a/1190000004625718)`)
6.KeyError: “The name ‘image_tensor:0’ refers to a Tensor which does not exist. The operation, ‘image_tensor’, does not exist in the graph.”
暂未解决,待更