Flatlandia 代码运行记录
报错
- No module named ‘scripts.utils’
原因:from scripts.utils.dataloader import FlatlandiaLoader,assemble_graphs
导入的是自己写的包,在目录
-scripts
—utils
中的dataloader 文件可以看作一个包即自己写的任何py文件中的方法和类都可以用 form *** import *** 导入使用 。
在 目录中添加一个空的,名为__init__.py 的文件就可以被python编译器识别为一个包 使用导入的方式就是用.
来表示目录路径以找到对应的py文件中的类或者方法
因为是在对应路径找因此要在正确的目录下运行demoxxxx.py文件
由于论文附带源码中并没有__init__.py 这个文件,因此会出现找不到包的错误
解决
打开对应路径下的终端,输入touch __init__.py #创建一个空的py文件
- from Flatlandia.scripts.utils.common import dataset_path, local_maps_path, region_proposals_path ModuleNotFoundError: No module named ‘Flatlandia’
原因:和上边的原理基本相同 在dataloager文件中 找对应目录的包时,因为路径路径原因找不到相应的包,修改导入的路径from Flatlandia.scripts.utils.common import dataset_path, local_maps_path, region_proposals_path
为from common import dataset_path, local_maps_path, region_proposals_path
- NameError: name ‘os’ is not defined
原因 :使用os 包需要导入系统包 即在文件开头加入import os
- edge_orientation = [np.arctan2((xy[j] - xy[i])[1], (xy[j] - xy[i])[0]) for i, j in idx]
TypeError: unsupported operand type(s) for -: ‘list’ and ‘list’
原因:使用-运算错误 ,不能用列表减去列表,在原代码中使用xy[j]-xy[i]
这是两个一维数组,原代码的意思是(xy[j][1]- xy[i][1]),做对应修改即可
运行过程
- 新建环境,安装自己对应版本的pytorch 和 其他依赖
- 注册map 需要key
- 注册W&B 需要用户名(一个深度学习可视化工具,在运行代码的过程中看到的那些小符号是这个在起作用)
- 在scripts.utils 路径下的common 中修改key 和 user
- 复制demo_xxxx代码到Flatlandia根目录下,在新建的环境中运行.py文件
- 根据运行提示选择运行方法和输入W&B的授权API