AnimeGANv2 后日谈
1 关于模型
实际经测试,新海诚风格的效果是最好的,素描次之;而日漫脸的最差(真的很差),不适合使用。
此外,需要关注到的有:https://github.com/bryandlee/animegan2-pytorch
该改进有相当多的应用,可在 hugging face 上查到。
2 关于部署
直接运行最后的 onnx_app_pyav.py
:尝试在另一台 A100 的机器上运行。下面是部署过程和遇到的问题。
2.0 完整过程
# 1 更新
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
# 2 Git 设置 和 克隆仓库
echo "140.82.113.4 github.com" >> /etc/hosts
echo "199.232.69.194 github.global.ssl.fastly.net" >> /etc/hosts
git clone https://github.com/xuanhao44/AnimeGANv2.git
# 省略的手动部分:上传 onnx 文件
# 3 安装显卡驱动
sudo apt install ubuntu-drivers-common -y
ubuntu-drivers devices # 虽然只是查看的命令,但是很关键,详细见下面讲解
sudo apt install nvidia-driver-515 -y # 仅样例,实际版本需要查看 ubuntu-drivers devices
# sudo ubuntu-drivers autoinstall 如果 ubuntu-drivers devices 无 warning 则可使用
# 4 安装 conda
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh
~/miniconda3/bin/conda init bash # 之后需要重启 shell
# 5 创建虚拟环境,安装依赖
cd AnimeGANv2
conda create -n testanime python=3.8 -y
conda activate testanime
pip install -r onnx_app_pyav_requirements.txt
conda install cudatoolkit -y
conda install cudnn -y
# 6 设置内网穿透(在 AnimeGANv2 目录下)
cp frpc_linux_amd64_v0.2 /root/miniconda3/envs/testanime/lib/python3.8/site-packages/gradio/
chmod +x /root/miniconda3/envs/testanime/lib/python3.8/site-packages/gradio/frpc_linux_amd64_v0.2
# 7 tmux 持续运行(在 AnimeGANv2 目录下)
sudo apt install tmux -y
tmux new -s AnimeGANv2 # 创建会话
...
conda activate testanime # 进入 tmux 后需要重新启动环境
python onnx_app_pyav.py # 运行
...
tmux a -t AnimeGANv2 # 退出后进入会话
tmux kill-session -t AnimeGANv2 # 关闭会话
2.1 更新
sudo apt update
sudo apt upgrade
sudo apt autoremove
可能出现的问题:
- 网络有问题:则修改 DNS
参考:https://blog.csdn.net/huaishitou/article/details/109218013
该参考中提供了三种方法,使用者要看自己实际情况。
(在某 centos 7 中我使用了第二种方法,但在某 Ubuntu 18.04 中未出现该问题)
- apt 更新失败:换源
参考:
- https://www.cnblogs.com/smx-123/p/15792854.html
- https://blog.csdn.net/u012843189/article/details/80964287
有时 aliyun 可能也会出问题,可以换成其他源,方法请自行查阅。
2.2 克隆仓库
git clone https://github.com/xuanhao44/AnimeGANv2.git
# 记得把加密的 onnx 文件带上
可能出现的问题:
- 什么?没 Git?:安装
sudo apt install git
- 如果安装了 Git 却还是无法 clone:卸载重装
sudo apt remove git && sudo apt install git
- 无法连接 GitHub:hosts 文件最后添加上 GitHub
参考:https://www.cnblogs.com/zypdbk/p/17133529.html
解决方法:
vim /etc/hosts
在 hosts 文件最后添加上 GitHub:
140.82.113.4 github.com
199.232.69.194 github.global.ssl.fastly.net
- 或者两句
echo
:
echo "140.82.113.4 github.com" >> /etc/hosts >> /etc/hosts
echo "199.232.69.194 github.global.ssl.fastly.net" >> /etc/hosts
2.3 关于 GPU
2.3.1 官网安装(不推荐)
如果没有驱动或者驱动版本不合适,那么就要安装驱动。
参考:https://blog.csdn.net/TFATS/article/details/126423823 参考中的遗漏:可能要点到同意并安装才行
另外,服务器中无法访问 us 服务器的话,可以切到 cn 服务器,如下:
wget https://cn.download.nvidia.com/tesla/535.104.12/NVIDIA-Linux-x86_64-535.104.12.run
如何查看显卡(虽然租了 GPU,但是不知道显卡型号;且当前无驱动,故 nvidia-smi
无法使用,要另寻他法):
参考:https://blog.csdn.net/zhuguiqian/article/details/104795435
例子:我本次使用 A100(后来才知道),得到的结果是:
(base) root@ubuntu:~# lspci | grep -i nvidia
00:05.0 3D controller: NVIDIA Corporation Device 20f1 (rev a1)
那么在 https://admin.pci-ids.ucw.cz/mods/PC/10de?action=help?help=pci 查询可得:
https://admin.pci-ids.ucw.cz/mods/PC/10de/20f1
如何查看 Linux 是 32 位还是 64 位:
getconf LONG_BIT
测试:
nvidia-smi
另外,如果想要使用 nvcc -V
,则需要安装:
sudo apt install nvidia-cuda-toolkit
但是此处显示的信息和之后 conda 环境内的 cudatoolkit
并无关系,也不影响之后运行,故不安装。
2.3.2 自动安装(推荐)
参考:
- https://zhuanlan.zhihu.com/p/592018668
- https://askubuntu.com/questions/1362970/problem-installing-nvidia-driver-on-ubuntu-20-04
先安装,然后运行 ubuntu-drivers devices
:
sudo apt install ubuntu-drivers-common
ubuntu-drivers devices
如果出现 warning,那么需要按照列表中选一个安装(之后可能需要重启 sudo reboot
)。如下:
两个参考中最后都还是安装了推荐版本(470),但是我的实测是:虽然推荐了 470,也手动安装了 470,结果还是无法正常使用 nvidia-smi
,反而是安装了更高版本的 515 才成功了,且没有重启。
sudo apt install nvidia-driver-515 # 仅样例,实际版本需要查看 ubuntu-drivers devices
如果没有 warning,则自动安装:
sudo ubuntu-drivers autoinstall
这样就结束了。
测试方法同上。
实际上,在显卡使用这方面,安装驱动就用上面的方法;安装 CUDA 和 cuDNN 就用 conda。
2.4 安装 conda
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh
~/miniconda3/bin/conda init bash
之后终端可能会提示需要重启 shell:
==> For changes to take effect, close and re-open your current shell. <==
重启 shell 后可得 base 环境。
2.5 安装依赖
conda create -n testanime python=3.8 -y
conda activate testanime
pip install -r app_requirements.txt
conda install cudatoolkit
conda install cudnn
实际上除特殊情况外,conda 都会自动选择合适的 cudatoolkit
和 cudnn
版本。
如果有关于 OpenCV 报错:
ImportError: libGL.so.1: cannot open shared object file: No such file or dir
参考:https://blog.csdn.net/qq_39691492/article/details/130688233
这是因为安装的是 opencv-python
而不是 opencv-python-headless
,可安装 libgl1
:
sudo apt-get update && apt-get install libgl1
当然最好是一开始就安装 opencv-python-headless
。
2.6 关于外网穿透
外部访问示例内部的端口,可能需要内网穿透。除了开放端口以外,可能还需要下面的操作:
如果不能成功,Gradio 应该会有提示:
Could not create share link. Missing file: /root/miniconda3/envs/testanime/lib/python3.8/site-packages/gradio/frpc_linux_amd64_v0.2.
Please check your internet connection. This can happen if your antivirus software blocks the download of this file. You can install manually by following these steps:
1. Download this file: https://cdn-media.huggingface.co/frpc-gradio-0.2/frpc_linux_amd64
2. Rename the downloaded file to: frpc_linux_amd64_v0.2
3. Move the file to this location: /root/miniconda3/envs/testanime/lib/python3.8/site-packages/gradio
- 要你下载
frpc_linux_amd64
:https://cdn-media.huggingface.co/frpc-gradio-0.2/frpc_linux_amd64 - 改名为
frpc_linux_amd64_v0.2
; - 并放到 Gradio 的相应目录中。
但是这可能还不够,还需要 chmod +x
。
参考:https://github.com/gradio-app/gradio/issues/3498#issuecomment-1651038942
命令(仅供参考,如 conda 安装方式与我不同则地址不适用):
# home 目录下
# wget https://cdn-media.huggingface.co/frpc-gradio-0.2/frpc_linux_amd64
# wget 多半不会成功,还是老老实实上传
mv frpc_linux_amd64 frpc_linux_amd64_v0.2 # 不用 rename 是因为要下载
cp frpc_linux_amd64_v0.2 /root/miniconda3/envs/testanime/lib/python3.8/site-packages/gradio/
chmod +x /root/miniconda3/envs/testanime/lib/python3.8/site-packages/gradio/frpc_linux_amd64_v0.2
命令更新:改名好的文件已经放在仓库。
# AnimeGANv2 目录下
cp frpc_linux_amd64_v0.2 /root/miniconda3/envs/testanime/lib/python3.8/site-packages/gradio/
chmod +x /root/miniconda3/envs/testanime/lib/python3.8/site-packages/gradio/frpc_linux_amd64_v0.2
2.7 持续运行
参考:
- https://blog.csdn.net/xu380393916/article/details/102723536
- https://blog.csdn.net/RooKichenn/article/details/126859853
安装 tmux:
sudo apt install tmux
创建会话:
tmux new -s AnimeGANv2
退出后进入会话:
tmux a -t AnimeGANv2
关闭会话:
tmux kill-session -t AnimeGANv2