美文网首页机器学习
安装detectron2的docker环境

安装detectron2的docker环境

作者: ce0b74704937 | 来源:发表于2020-08-17 20:50 被阅读0次
    1. 从dockerhub上拉pytorch的docker,这里要注意的是版本问题,本机安装的驱动要与docker中的cuda版本对应上,对应关系链接
    dockerhub上的几种类型:
    
    a. base: starting from CUDA 9.0, contains the bare minimum (libcudart) to deploy a pre-built CUDA application. Use this image if you want to manually select which CUDA packages you want to install.
    b. runtime: extends the base image by adding all the shared libraries from the CUDA toolkit. Use this image if you have a pre-built application using multiple CUDA libraries.
    c. devel: extends the runtime image by adding the compiler toolchain, the debugging tools, the headers and the static libraries. Use this image to compile a CUDA application from sources.
    
    1. 通过docker镜像创建容器
    创建容器需要加--shm-size=8gb,如果不加可能会出现RuntimeError: unable to write to file这样的错误
    
    docker run --gpus all -it \
        --shm-size=8gb --env="DISPLAY" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
        --name=detectron2 detectron2:v0
    

    如果出现上述错误,可以在运行代码开始加入下面代码来解决

    import sys
    import torch
    from torch.utils.data import dataloader
    from torch.multiprocessing import reductions
    from multiprocessing.reduction import ForkingPickler
    
    default_collate_func = dataloader.default_collate
    
    
    def default_collate_override(batch):
      dataloader._use_shared_memory = False
      return default_collate_func(batch)
    
    setattr(dataloader, 'default_collate', default_collate_override)
    
    for t in torch._storage_classes:
      if sys.version_info[0] == 2:
        if t in ForkingPickler.dispatch:
            del ForkingPickler.dispatch[t]
      else:
        if t in ForkingPickler._extra_reducers:
            del ForkingPickler._extra_reducers[t]
    
    1. 创建完容器后,进入容器运行,当下面语句出值为有效值时就可以源码安装detectron2了。这里要注意的是如果拉的镜像是runtime版的,下面语句CUDA_HOME输出为None,而且nvcc也是没有的
    python -c 'import torch; from torch.utils.cpp_extension import CUDA_HOME; print(torch.cuda.is_available(), CUDA_HOME)'
    
    1. 源码安装detectron2
    git clone https://github.com/facebookresearch/detectron2.git
    python -m pip install -e detectron2
    

    相关文章

      网友评论

        本文标题:安装detectron2的docker环境

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