本文最后更新于:2022年10月18日 下午
项目源地址: https://github.com/adobe/sbmc
根据项目 Readme 中的快速开始来配置环境。
开始
这个项目使用 make 来配置 docker,而且只支持 Linux,因此这里使用 wsl 子系统来配置使用。
wsl 需要升级到 wsl2,并且将子系统也升级到 2 版本才可以在子系统中使用 Windows 下安装的 Docker。
升级过程很简单,这里略过。完成后使用wsl -l -v
命令可以看到子系统版本为 2,然后就可以在子系统中安装使用 docker 了。
| NAME STATE VERSION * Ubuntu Running 2 docker-desktop-data Running 2 docker-desktop Running 2
|
然后执行三个命令:
| make nvidia_docker make docker_build make docker_run
|
make nvidia_docker
这里坑比较少,实际执行的代码如下:
| check_docker_version: ./scripts/check_docker_version.sh
nvidia_docker: check_docker_version ./scripts/install_nvidia_docker.sh
|
如果版本检查卡住了,可以简单粗暴的跳过去,直接执行./scripts/install_nvidia_docker.sh
,也可以达到目的。
make docker_build
这一步执行的操作为:
|
docker_build: @docker build -f dockerfiles/cuda-sbmc.dockerfile -t sbmc_cuda .
|
在 dockerfile 中有一处问题,在 81 行
| patch -d 2015_kalantari_lbf -p1 -i /sbmc_app/patches/2015_kalantari_lbf.diff && \\
|
最后的斜杠多了一个,删去一个即可。
在安装pytorch
的时候国内网络可能会非常慢,于是需要换源。
在
| RUN conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0 -c torch
|
之前加上换源命令:
| RUN conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ RUN conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ RUN conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge RUN conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ RUN conda config --set show_channel_urls yes
|
同时将 conda 命令-c 后面的部分去掉,使之可以从清华源下载。
| RUN conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0
|
过了这一劫之后,我又卡在了
| RUN cd sbmc && python setup.py develop
|
这里直接去换源比较复杂,查阅源代码之后发现,需要安装torch-tools==0.0.36 bridson pandas pyexr scikit-image lz4 wget torch==1.2.0
这几个包。找了一些换源的方法都失败了,源站点下了十几次都失败了。于是转变思路,与其去很麻烦的换源,不如帮他把包下了。
| packages = ["sbmc", "sbmc.scene_generator"] setuptools.setup( name="sbmc", verbose=True, url="", author_email="[email protected]", author="Michaël Gharbi", version=__version__, packages=packages, ext_modules=[extension], install_requires=["torch-tools==0.0.36", "bridson", "pandas", "pyexr", "scikit-image", "lz4", "wget", "torch==1.2.0"], cmdclass=dict(build_ext=hlpt.HalideBuildExtension), )
|
于是在# Install our code
前面加上:
| RUN pip install -i https://mirrors.aliyun.com/pypi/simple/ torch-tools==0.0.36 bridson pandas pyexr scikit-image lz4 wget torch==1.2.0
|
手动指定源来下载,果不其然,执行到下载时检测到需要的包已经安装,就不在下载了,国内源的速度也很给力。
这之后执行make docker_run
即可,没遇到问题,make test
检测也全部通过了。