搭建FCOS镜像

搭建FCOS镜像FCOS 源码 https github com tianzhi0549 FCOSFCOSInst amp Requirements https github com tianzhi0549 FCOS blob master INSTALL md 一 建立 CUDA cudnn 镜像 githuboption 给出的是 CUDA10 2 的版本 其他版本也可 安装匹配的软件版本即可 结合本地环境 首先建立基础镜像 直接拉取 nvidiadocker 官方镜像作为我们的系统

FCOS源码:https://github.com/tianzhi0549/FCOS

FCOS Installation & Requirements:https://github.com/tianzhi0549/FCOS/blob/master/INSTALL.md

一、建立 CUDA+cudnn镜像

github option1 给出的是CUDA 10.2的版本(其他版本也可,安装匹配的软件版本即可),结合本地环境,首先建立基础镜像,直接拉取nvidia docker官方镜像作为我们的系统镜像。

docker pull nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04 

二、制作数据卷

建立了本地服务器的位置/data/g_y 和数据卷位置 /usr/Downloads的映射,实现了数据的共享和重用。

docker run -v /data/g_y:/usr/Downloads --name dataVol nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04 /bin/bash

docker inspect dataVol,查看数据卷的信息。

搭建FCOS镜像

注意:挂载到的数据卷的位置,如果与容器中的位置相同时,服务器挂载到数据卷的文件夹,会覆盖掉容器里的原来该文件夹的内容。

例如容器里也有/usr/Downloads文件夹,且文件夹下含有文件a,则服务器挂载过来的文件夹/data/g_y到容器的/usr/Downloads位置,该文件夹下只包含服务器/data/g_y的内容,文件a将不存在。

三、创建容器,挂载到dataVol数据卷

docker run -it --gpus all --name g_fcos --volumes-from dataVol nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04 /bin/bash

容器名为g_fcos,方便引用。同时更新源和相应的软件。

apt-get update apt-get upgrade apt-get install vim apt-get install wget curl git

update :同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,获取到最新的软件包。upgrade是根据update命令下载的metadata决定要更新什么包(同时获取每个包的位置)。

四、安装FCOS

根据FCOS Installation & Requirements 安装各种环境及编译FCOS。

1.FCOS应用conda 安装,则先安装anaconda。https://repo.anaconda.com 选择相应的conda下载安装。

wget -c https://repo.anaconda.com/archive/Anaconda3-2019.07-Linux-x86_64.sh bash /usr/Downloads/Anaconda3-2019.07-Linux-x86_64.sh

出现的问题:Executing transaction: \ WARNING conda.core.envs_manager:register_env(46): Unable to register environment. Path not writable or missing. environment location: /root/anaconda3

该处为warning,同时也会显示“installation finished.” 。warning可不予处理,查看anaconda路径已写入到环境变量Path中,不影响后期使用。

2.在anaconda 中建立FCOS环境,用于安装FCOS。

conda create --name FCOS python=3.7

同时安装了python 3.7。

3.安装FCOS和coco 依赖项

pip install ninja yacs cython matplotlib tqdm

可根据conda list罗列已安装的模块,再选择安装上述依赖项。

4.安装pytorch

conda install pytorch torchvision cudatoolkit=10.2 -c pytorch

可根据pytorch官网https://pytorch.org/get-started/locally,选择相应的配置环境获取对应的pytorch安装链接。

5.安装pycocotools

git clone https://github.com/cocodataset/cocoapi.git cd cocoapi/PythonAPI python setup.py build_ext install

6.安装FCOS

git clone https://github.com/tianzhi0549/FCOS.git cd FCOS python setup.py build develop --no-deps

 等待编译成功。

搭建FCOS镜像

五、运行demo

wget https://cloudstor.aarnet.edu.au/plus/s/ZSAqNJB96hA71Yf/download -O FCOS_imprv_R_50_FPN_1x.pth python demo/fcos_demo.py

输出图片名和相应的前向处理时间,由于在容器里实现,直接保存生成的效果图再查看。

搭建FCOS镜像

六、提交容器,上传镜像

退出当前容器,exit。再提交至镜像。

docker commit g_FCOS XXXXXX:g_fcos

push到云端

docker push XXXXXX:g_fcos

七、安装、编译、运行demo过程中出现的问题:

1)File “/root/FCOS/fcos_core/modeling/rpn/fcos/inference.py”, line 69, in forward_for_single_feature_map

RuntimeError: view size is not compatible with input tensor’s size and stride (at least one dimension spans across two contiguous subspaces). Use .reshape(…) instead.

解决方法:用 .contiguous() 将view的tensor在内存中变成连续分布:

pre_nms_top_n = candidate_inds.contiguous.view(N, -1).sum(1)

2) csrc/cuda/deform_pool_cuda.cu(42): error: identifier “AT_CHECK” is undefined

解决方法:在报错文件的开头加上宏:

#ifndef AT_CHECK #define AT_CHECK TORCH_CHECK #endif

3)找不到文件报错

build时相应的文件都有,但在代码里嵌套了相对路径可能存在问题,按实际相对路径修改。

4)FCOS 编译成功,运行demo时opencv的问题

i) cv2.error: OpenCV(3.4.2) /tmp/build/80754af9/opencv-suite_74/work/modules/highgui/src/window.cpp:632: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function ‘cvShowImage’

ii) File “/root/anaconda3/envs/FCOS_g/lib/python3.7/site-packages/cv2/__init__.py”, line 5, in

    from .cv2 import *

ImportError: libGL.so.1: cannot open shared object file: No such file or directory

Available platform plugins are: xcb

搭建FCOS镜像

 以上三个opencv问题更新&安装了opencv的组件等,都没有解决。sudo apt install libgl1-mesa-glx、sudo apt-get install -y libgl1-mesa-dev这些都没有解决问题。

重新安装了opencv可以解决上述报错。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223599.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午1:49
下一篇 2026年3月17日 下午1:50


相关推荐

  • JAVA异常_什么什么异常

    JAVA异常_什么什么异常异常问题如下:起初xml中返回值类型是这样子,一直在找返回值类型的问题,怎么看都是没有问题的又改为如下,结果还是不对,查询资料反反复复还是出现这个异常突然一下想到会不会是有重复id名字的sql 我用的是idea,直接全局查询,确实查到了一模一样在别的包下的sql,因为我项目是maven的子工程,就给冲突了;最后还是冒着尝试想法去试了一下,把名字一个,哦吼!美滋滋 问题解决 不在报错以后开发还是需要多注意名字重复的问题的!…

    2022年8月19日
    10
  • 内部类学习

    内部类学习

    2021年11月12日
    47
  • 手机开发平台汇总

    手机开发平台汇总手机客户端软件开发最大的困难就是平台不统一,手机开发平台太多。  手机可分为智能手机开发和featherphone手机。开发平台可分为开放式平台和封闭式平台,开放式平台包括symbian、windowsmobile、linux、iPhone、Android、BlackBe

    2022年5月6日
    43
  • 解压war包和重新压缩war包[通俗易懂]

    解压war包和重新压缩war包[通俗易懂]publicclassWarUtils{ /** *解压war包 *@paramunWarPathwar解压的路径 *@paramwarFile解压的war包文件 */ publicstaticvoidunWar(StringunWarPath,FilewarFile){ try{ //读取文件流 Buffered

    2026年4月16日
    4
  • HTTP接口测试还可以这么玩[通俗易懂]

    HTTP接口测试还可以这么玩[通俗易懂]1、背景  随着H5在各行业领域的运用,无论是在APP内嵌入H5页面的hybrid应用还是直接在微信公众号或者轻应用中使用H5页面都是非常的常见(比如前端页面通过HTTP接口调用拉取数据进行交互,实现前后台分离)。而随着此类技术的应用和发展,作为一个测试人员,跟上时代的变化,除了保证前端页面UI的正确性,也要保证HTTP接口的正确性,从而保证了整个业务功能逻辑的正确性,而接口如果手工测

    2022年5月11日
    46
  • 零基础!扣子(coze)工作流搭建入门教程【手把手教会】

    零基础!扣子(coze)工作流搭建入门教程【手把手教会】

    2026年3月12日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号