项目地址:https://github.com/sicxu/Deep3DFaceRecon_pytorch
实时df -h
监控,发现有比较大的变动,立马用du -h -x --max-depth=1
查一下是哪个文件比较大
由于根目录容量只有50G比较小,所以把conda和docker全都移到了我自己/kolla/lyy
这个目录下
修改Docker的存储路径
- 修改Docker的存储路径首先需要停止Docker服务。
systemctl stop docker.service
- 将当前Docker存储目录复制到/kolla/lyy目录下
cp -r /var/lib/docker/ /kolla/lyy
- 修改docker.service配置文件,在EXECStart的后面增加 --graph=/kolla/lyy/docker(修改后的docker存储路径)。这里要注意,路径不要写错了,我第一次就写错了,然后安装的时候看到根目录又爆满了,使用
du -h -x --max-depth=1
一查看,发现是docker装里面去了
[root@T ~]# vim /usr/lib/systemd/system/docker.service
......
ExecStart=/usr/bin/dockerd --graph=/kolla/lyy/docker
......
(诶。。。新年第一击,登上服务器发现docker容器全不见了,以为是别人把我的容器删除了,然后docker info
查看了一下现在docker位置,变成默认的了,将其路径改为/kolla/lyy/docker
即可)
- 执行下列命令然后重启docker
systemctl daemon-reload
systemctl disable docker.service
systemctl enable docker.service
systemctl start docker.service
使用sudo docker info
查看路径是否真的修改了。由于我之前写错目录了,再改也没改过来,然后我重启了几次docker就好啦。。。
修改conda环境
./Anaconda3-2021.05-Linux-x86_64.sh
之后,在
之后,直接输入你要安装的路径即可
修改完毕后,我们就可以配置环境了。比较难装的是nvdiffrast这个可微渲染器。不要用本机装,c++这个不太支持,使用docker可以完美安装
先使用
git clone https://github.com/NVlabs/nvdiffrast
下载这个库
cd nvdiffrast
vim Dockerfile
然后在Dockerfile文件中输入:
ARG BASE_IMAGE=pytorch/pytorch:1.7.1-cuda11.0-cudnn8-devel
FROM $BASE_IMAGE# change the downloading source
RUN sed -i 's/http:\/\/archive\.ubuntu\.com\/ubuntu\//http:\/\/mirrors\.163\.com\/ubuntu\//g' /etc/apt/sources.list
RUN sed -i 's/http:\/\/archive\.ubuntu\.com\/ubuntu\//http:\/\/mirrors\.aliyun\.com\/ubuntu\//g' /etc/apt/sources.listRUN apt-get update && apt-get install -y --no-install-recommends \pkg-config \libglvnd0 \libgl1 \libglx0 \libegl1 \libgles2 \libglvnd-dev \libgl1-mesa-dev \libegl1-mesa-dev \libgles2-mesa-dev \cmake \curl \libsm6 \libxext6 \libxrender-devENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1# for GLEW
ENV LD_LIBRARY_PATH /usr/lib64:$LD_LIBRARY_PATH# nvidia-container-runtime
ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,graphics# Default pyopengl to EGL for good headless rendering support
ENV PYOPENGL_PLATFORM eglCOPY docker/10_nvidia.json /usr/share/glvnd/egl_vendor.d/10_nvidia.json
保存好后,我们创建根据这个Dockerfile 创建docker
这里有一个问题是,可能docker版本不太够,所以就需要重新下载一下docker
移除老版本的docker
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
安装新版本 Docker
#先将docker停下来
systemctl stop docker
# yum-utils 提供了命令 yum-config-manager,device-mapper-persistent-data和lvm2由需要 devicemapper存储驱动程序。
yum install -y yum-utils \device-mapper-persistent-data \lvm2
# 设置 yum 源为 稳定的版本
# 阿里的源,国内使用较快
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 官方的源(国内使用比较慢)
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 生成缓存
yum makecache
# 安装最新稳定版本 Docker CE
yum install docker-ce docker-ce-cli containerd.io
#重启docker
systemctl start docker
然后使用如下命令根据Dockerfile 创建docker
docker build -f docker/Dockerfile -t name:tagname .
然后我们进入这个docker,这里由于需要gpu,所以我们还需要先安装docker的GPU,不然会报错docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
#centos安装
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
yum install -y nvidia-container-toolkit
然后使用如下命令进入docker
这里一定要修改共享内存的大小啊!!!不然后面跑程序就装不下那么多图片!!!
sudo docker run --gpus all --shm-size 128G -it -d -v /kolla/lyy/:/Work name:tagname /bin/bash #这里/kolla/lyy/:/Work将我的/kolla/lyy/命名为/Work,到时候进入docker直接输/Work就是/kolla/lyy/目录下了
sudo docker ps -a #查看镜像
sudo docker attach 镜像id
然后依次输入即可
pip install imageio imageio-ffmpeg
cd nvdiffrast/
pip install . #这里安装的一定是nvdiffrast-0.2.7 ,如果是0.2.6的话,就重新git下载这个包安装一下就好了pip install scikit-image==0.16.2
pip install scipy==1.4.1
pip install pillowpip install opencv-python==3.4.9.33
pip install kornia
pip install dominate==2.6.0
pip install trimesh==3.9.20
pip install tensorflow==1.15.0
然后按照https://github.com/sicxu/Deep3DFaceRecon_pytorch将模型下载好,放入指定的文件夹中,使用下面语句测试一下
python test.py --name=<model_name> --epoch=20 --img_folder=./datasets/examples
但是会遇到错误ImportError: libSM.so.6: cannot open shared object file: No such file or directory
按照下面的步骤安装一下即可:
apt-get install libsm6
apt-get install libxrender1
apt-get install libxext-dev
如果报别的错,可能是你模型上传到服务器不完整,重新上传一下即可。希望能帮助到你。
NotImplementedError: Platform does not define a GLUT font retrieval function
将PyOpenGL 版本降到 version 3.1.0
pip install pyopengl==3.1.0
export PYOPENGL_PLATFORM=osmesa
此时如果运行会报错:
OSError: (‘OSMesa: cannot open shared object file: No such file or directory’, ‘OSMesa’, None)
ImportError: (‘Unable to load OpenGL library’, ‘OSMesa: cannot open shared object file: No such file or directory’, ‘OSMesa’, None)
然后安装下面即可
apt-get install -y python-opengl libosmesa6
查看该路径下有多少文件(不包括文件夹哦)
ls -l |grep "^-"|wc -l
问题:
AttributeError: AttributeError: module ‘setuptools._distutils’ has no attribute ‘version’
解决方案:
pip3 install setuptools==59.5.0
-bash: /bin/cp: Argument list too long
find source/ -name "*.jpg" -exec cp {} target \;
根据PID查看进程信息
ps -ef | grep 43730