基于图像分割对python和tensorflow进行解读,可能会有理解上的偏差,忘大佬们指正。
22-24. furure:是对更高版本的兼容,比如在python2可以引用python3的一些函数
26. josn(JavaScript Object Notation)
27. logging:是对日志的处理
28. os:实现操作系统的功能,处理文件和目录这些我们日常手动需要做的操作;另外,os模块不受平台限制
29. sys:当执行import sys后, python在 sys.path 变量中所列目录中寻找 sys 模块文件。然后运行这个模块的主块中的语句进行初始化,然后就可以使用模块了 。
32. 提供了一些有用的集合类,如:namedtuple,deque,defaultdict,OrderedDict,Counter等
33. 日志的输出格式及方式做相关配置。
34. scipy用于文件的输入输出
35. tf.app.flags主要用于处理命令行参数的解析工作,其实可以理解为一个封装好了的argparse包(argparse是一种结构化的数据存储格式,类似于Json、XML)
36. 首先我们通过tf.app.flags
来调用这个flags.py
文件,flags.DEFINE_interger/float()
来添加命令行参数,FLAGS=flags.FLAGS
以实例化这个解析参数的类从对应的命令行参数取出参数。
37. 新添加的目录会优先于其他目录被import检查。此处为引入incl
目录
38. seg_utils
在路径加载incl
文件时已经定义位置,在 /submodules/evaluation/kitti_devkit
39. 添加命令行参
74-75. 加载欲训练的网络的权重,路径为:ftp://mi.eng.cam.ac.uk/pub/mttt2/models/KittiSeg_pretrained.zip
79. runs_dir为输入值,目的是构造路径,整个函数的目的就是下载权重,然后解压zip文件,如果存在则不进行任何操作。
97. 第一个参数为原图,第二个参数为标记图像,函数目的是重新定义图片大小。
98. scipy.misc.imresize(arr, size, interp=‘bilinear’, mode=None)
1). arr 被调整的图片数组
2).size:整数、浮点或元组 (整数:当前尺寸的百分比 浮点:当前尺寸的分数 元组:输出图像的尺寸 )
3). interp: 用于调整大小的插值方式(如双线性插值)
4). mode: PIL图像模式(’ P ', ’ L '等)在调整大小前转换arr。(好像二维数组取值为P,L;三维数组取值为RGB等)
108. 设置运行代码的GPU
找到权重的存放路径,并赋值给logdir
132. 加载超参
https://github.com/MarvinTeichmann/KittiSeg/blob/master/LICENSE