python知识点(一)

1.python2.7的代码在python3上运行

  • print加上()
  • iteritems替换为items
  • xrange替换为range

2.跑siamfc-tf的代码的心得体会:

本来想用conda create一个python 2.7的虚拟环境,直接pip install -r requirements.txt .结果才意识到windows系统不支持python2安装tensorflow和pytorch.所以只能把python2的源代码按照1去更改。一定要注意在python3中print括号前不能有空格。

在run.json中可以决定是否可视化,在不可视化时,帧率可以达到40-50fps,而选择可视化后,帧率只有10几,gpu的利用率也会变低。我的猜测是,显示视频影响了速度,是否可以用GPU来优化?

当一个目标没有相似物的干扰时,跟踪效果很好(bag甚至可以达到100%),当有很多类似物体且发生遮挡后,很容易会发生飘窗,比如basketball,birds2这两个序列,另外,ball2的效果也不好,但是它并没有相似物。

3.运行代码时看GPU的使用情况

打开任务管理器-性能,就可以看到了

4.

python3:

print(' -- Precision ' + "(%d px)" % evaluation.dist_threshold + ': ' + "%.2f" % mean_precision +\
              ' -- Precisions AUC: ' + "%.2f" % mean_precision_auc +\
              ' -- IOU: ' + "%.2f" % mean_iou +\
              ' -- Speed: ' + "%.2f" % mean_speed + ' --\n')

python2 :

print ' -- Precision ' + "(%d px)" % evaluation.dist_threshold + ': ' + "%.2f" % mean_precision +\
              ' -- Precisions AUC: ' + "%.2f" % mean_precision_auc +\
              ' -- IOU: ' + "%.2f" % mean_iou +\
              ' -- Speed: ' + "%.2f" % mean_speed + ' --\n'

print

5.tensorflow日志的等级设置
import os
os.environ["TF_CPP_MIN_LOG_LEVEL"]='1' # 这是默认的显示等级,显示所有信息
os.environ["TF_CPP_MIN_LOG_LEVEL"]='2' # 只显示 warning 和 Error 
os.environ["TF_CPP_MIN_LOG_LEVEL"]='3' # 只显示 Error 


6.josn模块读取(parse_arguments)

with open("文件名") as f:

result=json.load(f)(json.loads是只读一行)

此时,result是一个字典类型的变量,可以将其转换成namedtuple类型,如下所示:

hp = namedtuple('hp', hp.keys())(**hp) ,其中(**hp) 是将字典hp的值传入namedtuple的hp

7.有两种方法判断一个变量的数据类型

type(a)

isinstance(变量名,类型)

8.路径读取

如果路径全是\,是不行的:

可以在路径前加个r,r'path'

改成/或者\\,都是可以的

PS,一个路径既有/也有\\是可以的

9.AttributeError: module 'cv2.cv2' has no attribute 'Tracker_create'

pip3 install opencv-contrib-python

10. 安装dlib失败

它是基于C++的,所以一定要先安装cmake,否则会编译失败

你可能感兴趣的:(python)