DL实战(2):SiamFC - TensorFlow配置

git链接:https://github.com/torrvision/siamfc-tf

管理员身份运行Anaconda Prompt(我的是py36版本,git要求的是py27版本)

安装virtualenv,其用来为一个应用创建一套“隔离”的Python运行环境。
pip install virtualenv
cd 新项目目录
E:
cd E:\pyProject
用命令virtualenv创建一个独立的Python运行环境,项目名称为ve-tracking
virtualenv  ve-tracking
进入安装目录,激活虚拟环境
cd ve-tracking\Scripts
activate
复制仓库
git clone https://github.com/torrvision/siamfc-tf.git

进入siamfc-tf路径,安装所需包

cd e:/pyProject/siamfc-tf
pip install -r requirements.txt

出现错误:

Could not find a version that satisfies the requirement tensorflow-gpu==1.1.0 (from -r requirements.txt (line 3)) (from versions: 1.2.0rc2, 1.2.0, 1.2.1, 1.3.0rc0, 1.3.0rc1, 1.3.0rc2, 1.3.0, 1.4.0rc0, 1.4.0rc1, 1.4.0, 1.5.0rc0, 1.5.0rc1, 1.5.0, 1.5.1, 1.6.0rc0, 1.6.0rc1, 1.6.0, 1.7.0rc0, 1.7.0rc1, 1.7.0, 1.7.1, 1.8.0rc0, 1.8.0rc1, 1.8.0)


No matching distribution found for tensorflow-gpu==1.1.0 (from -r requirements.txt (line 3))

吐血,只能升级一下tensorflow-gpu,之前一直拖着,没想到终究逃不掉了。。。。win10安装tensorflow-gpu请见我的另外一篇博客https://blog.csdn.net/weixin_38493025/article/details/80472333

考虑到代码中要用到tensorflow-gpu,我决定大胆抛弃前面的ve-tracking环境,改为tensorflow-gpu环境。这个环境之前我已经搭好了,具体见上面链接的博客。

重新进入siamfc-tf路径,安装所需包

activate tensorflow-gpu
e:
cd e:/pyProject/siamfc-tf
pip install -r requirements.txt

安装这些包过程如果有版本报错,可以打开requirements.txt单独安装matplotlib、scipy、numpy、Pillow,这些包的版本我就没有管那么多了,直接升级到最新版本。

创建文件夹,pretrained存放预训练网络,data存放数据

mkdir pretrained data

运行代码:管理员身份运行Anaconda Prompt,激活tensorflow-gpu环境,进入siamfc-tf路径,执行主函数

python run_tracker_evaluation.py
初次运行会有很多错误,原因是py27的函数在py3x中有些已经不适用了,比如
  1.  File "run_tracker_evaluation.py", line 51
        print str(i) + ' -- ' + videos_list[i] + \
                ^SyntaxError: invalid syntax
  2. AttributeError: 'dict' object has no attribute 'iteritems'
  3. NameError: name 'xrange' is not defined
  4. FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'data\\validation'

解决:

  1. print加上()
  2. iteritems替换为items
  3. xrange替换为range
  4. 数据解压后不是直接放在data文件夹里面,而是data里的validation子文件夹里

代码默认测试的是data里面的全部视频数据,如果要改为其中一个的话,打开parameters文件夹里的evaluation.json文件,将vedio属性的取值从"all"改为特定的视频序列如“vot2016_ball1”

重新执行代码

python run_tracker_evaluation.py

顺利运行,出现结果

> Layer 1
                CONV: setting br_conv1f br_conv1b
                CONV: stride 2, filter-group False
                BNORM: setting br_bn1b br_bn1m br_bn1x
                MAX-POOL: size 3 and stride 2
> Layer 2
                CONV: setting br_conv2f br_conv2b
                CONV: stride 1, filter-group True
                BNORM: setting br_bn2b br_bn2m br_bn2x
                MAX-POOL: size 3 and stride 1
> Layer 3
                CONV: setting br_conv3f br_conv3b
                CONV: stride 1, filter-group False
                BNORM: setting br_bn3b br_bn3m br_bn3x
> Layer 4
                CONV: setting br_conv4f br_conv4b
                CONV: stride 1, filter-group True
                BNORM: setting br_bn4b br_bn4m br_bn4x
> Layer 5
                CONV: setting br_conv5f br_conv5b
                CONV: stride 1, filter-group True

vot2016_ball1 -- Precision (20 px): 85.71 -- Precision AUC: 38.16 -- IOU: 71.71 -- Speed: 1.10 --
未完待续,下一篇博客我将重点研究这份代码。

猜你喜欢

转载自blog.csdn.net/weixin_38493025/article/details/80471731
今日推荐