美文网首页
跑通FaceBoxes开源代码PyTorch版

跑通FaceBoxes开源代码PyTorch版

作者: Jinglever | 来源:发表于2019-10-10 20:31 被阅读0次

如果觉得有用,麻烦点个赞噢~

FaceBoxes的论文地址是:https://arxiv.org/pdf/1708.05234.pdf
代码地址:
caffe版:https://github.com/sfzhang15/FaceBoxes
PyTorch版:https://github.com/zisianw/FaceBoxes.PyTorch

我的环境是ubuntu,下载了PyTorch版到本地,按照readme,运行make.sh,发现个问题:我的/usr/bin/nvcc路径是存在的,结果脚本认为lib64在/usr/lib64。我修改了一下utils/build.py的43行。
原先为:

nvcc = find_in_path('nvcc', os.environ['PATH'] + os.pathsep + default_path)

改成:

nvcc = find_in_path('nvcc', default_path + os.pathsep + os.environ['PATH'])

应该优先检查默认路径:/usr/local/cuda/bin
(另外一个解决方案是,删除/usr/bin/nvcc,然后将/usr/local/cuda/bin加入到环境变量$PATH里)

然后继续尝试运行make.sh,结果报错如下:

...
nms/cpu_nms.c:8966:13: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
     tstate->exc_traceback = local_tb;
             ^~~~~~~~~~~~~
             curexc_traceback
error: command 'gcc' failed with exit status 1

我的解决方案如下:
删掉以下几个文件,因为这些是运行make.sh后生成的文件
utils/nms/cpu_nms.c
utils/nms/gpu_nms.cpp
搞定。

下载WIDER FACE数据集,从百度网盘下。把WIDER_train.zip解压到data/WIDER_FACE目录下,解压出来的images目录移到data/WIDER_FACE目录下,因为train默认训练图片的路径是data/WIDER_FACE/images。

下载FaceBoxes提供的标注数据:annotations.tar
解压到data/WIDER_FACE/annotations目录,里面是一堆的xml文件,标注了训练集里人脸的坐标。

运行 python train.py训练。
马上遇到了如下报错:

...
Traceback (most recent call last):
  File "train.py", line 69, in <module>
    net = torch.nn.DataParallel(net, device_ids=list(range(num_gpu)))
  File "/home/howard/anaconda3/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 133, in __init__
    _check_balance(self.device_ids)
  File "/home/howard/anaconda3/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 19, in _check_balance
    dev_props = [torch.cuda.get_device_properties(i) for i in device_ids]
  File "/home/howard/anaconda3/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 19, in <listcomp>
    dev_props = [torch.cuda.get_device_properties(i) for i in device_ids]
  File "/home/howard/anaconda3/lib/python3.7/site-packages/torch/cuda/__init__.py", line 318, in get_device_properties
    raise AssertionError("Invalid device id")
AssertionError: Invalid device id

原来是因为默认参数指定gpu数量有2个,但我电脑只有一个gpu,所以用以下指令运行:python train.py --ngpu 1
不久又出来以下错误:

Traceback (most recent call last):
  File "train.py", line 152, in <module>
    train()
  File "train.py", line 117, in train
    images = images.to(device)
  File "/home/howard/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/signal_handling.py", line 66, in handler
    _error_if_any_worker_fails()
RuntimeError: DataLoader worker (pid 29755) is killed by signal: Bus error.

看上去是电脑内存不足。查看到前面设置了参数num_workers默认为8。我的电脑cpu是4核,内存只有8G。子进程数不应该多于cpu数,不然上下文切换可能会拖慢整个进度。下面将workers数改成4个试试:
python train.py --ngpu 1 --num_workers 4
哈哈,活下来了,训练开始:

trainning
显然这个训练一天两天是完成不了的了。。。
这里需要创建一下最后保存训练好的模型的目录:weights/,训练过程中会每10个轮次会保存一次checkpoint。
也可以下载已经训练好的最终模型,放到weights/目录里

那接下来还是读代码吧。

相关文章

  • 跑通FaceBoxes开源代码PyTorch版

    如果觉得有用,麻烦点个赞噢~ FaceBoxes的论文地址是:https://arxiv.org/pdf/1708...

  • Vscode 使用pytoch基本函数报错 Module 'to

    问题: 今天在vscode上面跑pytorch代码的时候,vscode有提示problems,但是代码能够跑通...

  • pytorch Code Snippets(pytorch常用代

    本文代码基于PyTorch 1.0版本,需要用到以下包 1. 基础配置 检查PyTorch版本 更新PyTorch...

  • 跑通pytorch UNet++

    问题: 没有找到cv2 解决 应该安装opencv-python pip install opencv-pytho...

  • 温故知新--DL

    dogs-vs-cats pytorch版 代码 .gitignore.文件 将某些文件不要提交到代码仓库 顺便...

  • PSENet踩坑记录

    使用的代码为PSENet的pytorch版,代码地址:https://github.com/whai362/PSE...

  • Rocm 3.0 & Pytorch1.4 @ Ubuntu16

    折腾了一周了吧,终于是在自己的电脑上编译完成,并且可以跑通Pytorch训练代码了。我也是小白一个,如果有专业词汇...

  • LibTorch使用 C++部署

    pytorch的c++版本越来越好用了,我是从1.0版本用到1.3.1版本的,在开始时候很多pytorch的代码用...

  • SINet

    开源代码的环境配置:源码要求torchvision的版本是0.2.1,pytorch版本最好是0.4.1 1.co...

  • 1 Pytorch&Tensor

    1.Pytorch与张量 2.PyTorch是什么 PyTorch是一个基于Torch的Python开源机器学习库...

网友评论

      本文标题:跑通FaceBoxes开源代码PyTorch版

      本文链接:https://www.haomeiwen.com/subject/ozwfpctx.html