AI翻唱?有手就行!
AI翻唱?有手就行!
AI 翻唱本质上是训练一个音色模型RVC模型,而后将音色替换现有曲目的过程。因此,本过程的实现需要分为两部分:RVC模型训练、现有歌曲翻唱
RVC模型训练
RVC模型的训练,此处可以借助开源项目 RVC-WebUI 进行训练。
进入代码仓库后,下载项目,置于训练环境中。(此处笔者放在Linux服务器环境中,如果使用win或者mac该项目中有详解)
在N卡环境中,基于以下命令准备训练环境
1pip install -r requirements.txt
预训练模型下载:
在项目文件 .tools/download_models.py中改写一句话:用于为非VPN服务器更改下载路径。修改后,可以使用以下命令下载所有所需预训练模型
1python3 /tools/download_models.py
安装 ffmpeg:
Ubuntu/Debian 用户可以直接通过以下命令执行下载:
1sudo apt install ffmpeg
下载 rmvpe 人声音高提取算法所需文件
如果想使用最新的RMVPE人声音高提取算法,则需要下载音高提取模型参数并放置于RVC根 ...
DLIP | 一个简单高效的蒸馏视觉-语言预训练框架
参考源于:DLIP: Distilling Language-Image Pre-training (单位:厦门大学,字节跳动)
前情提要
Vision-Language Pre-training (VLP) 在极其庞大的参数辅助下取得了显著的进展, 但大参数量带来的部署和执行为落地带来了困难
动机
知识蒸馏被广泛认为是模型压缩中的关键步骤, 作者希望给出了关于蒸馏轻量级但性能良好的VLP模型。
挑战
(1) VLP模型的架构通常包含多个模块,包括图像编码器 (例如,ViT)、文本编码器 (例如,BERT)、多模态融合模块或任务解码器。因此,确定可以进行蒸馏的模块是一个非常复杂的任务
(2) 与单模态 (只有图像或语言) 蒸馏相比,VLP模型涉及多种信息传递,包括单模态信息 (例如,视觉信息) 和多模态融合信息 (例如,视觉-语言信息) 。因此,有必要研究不同信息传递对蒸馏中下游任务的影响
验证实验
作者进行了一系列的对比实验,以深入研究和分析VLP模型。作者对不同模块压缩的作用进行了消融实验,并追求最小的变化,以确定VLP蒸馏中不同模态信息传递的影响。通过广泛的分析,作者总结了以下发 ...
多模态医疗数据分析
图-图跨模态
参考源于:图像多模态医疗数据综述
在同一个样本形态体系下,一般采取模态融合的形式进行模态信息的利用。根据多模态融合策略,我们将网络结构分为输入级特征融合、层融合网络和决策融合网络,对于每一种融合策略,我们总结了一些常用的方法,如图所示:
其中,在输入级融合图像特征,是目前最主流的应用方式,如图所示:
而层级融合网络,则是一种在模型内部融合多模态特征的方式,主要集中与编码过程中进行特征融合。在模态特征相差不大的情况下,该类型融合网络可以有效地互补图像特征,保证更好的分割结果:
在决策融合分割网络中,与层级融合一样,将每个模态图像作为单个分割网络的单一输入。与层级融合网络有部分差别的是,该类型融合网络主要在决策层面进行信息交互,在编码过程中几乎不发生交流,各个模态经历独自编码过程。但是,该类型网络面对统计特征分布不均的多模态数据具有奇效,可以通过决策投票(或其他类型决策)的方式汇总多个模态的信息,从而得出泛化性能较好的决策结果:
图-文跨模态
参考源于:MedCLIP: Contrastive Learning from Unpaired Medical Images ...
搭建Docker私有仓库
Harbor简介
VMware开源的企业级Registry项目Harbor,以Docker公司开源的registry 为基础,提供了管理UI, 基于角色的访问控制(Role Based Access Control),AD/LDAP集成、以及审计日志(Audit logging) 等企业用户需求的功能,同时还原生支持中文,主要特点:
基于角色的访问控制 - 用户与 Docker 镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
镜像复制 - 镜像可以在多个 Registry 实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。
图形化用户界面 - 用户可以通过浏览器来浏览,检索当前 Docker 镜像仓库,管理项目和命名空间。
AD/LDAP 支持 - Harbor 可以集成企业内部已有的 AD/LDAP,用于鉴权认证管理。
审计管理 - 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
国际化 - 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。
RESTful API - ...
「docker」构建CUDA镜像
背景
实验室的服务器内核版本太老了,有一个项目需要升级内核,但是服务器上还有一堆东西不敢随便升级。
于是就准备用docker构建一个镜像,安装CUDA和Python环境,平时ssh连进去炼丹
需求
炼丹必备的cuda肯定是必不可少的,ssh服务器也需要配置,既然准备写一个dockerfile,那python环境和换源之类的也就一块打包到镜像里去得了。
以后谁想炼丹直接新建一个容器,映射好端口之后容器里炼丹的基础设施就都有了。
安装
宿主机安装CUDA驱动
想要容器能用CUDA,宿主机肯定要安装CUDA驱动,这部分就不讲了,好多博客都有。
宿主机安装NVIDIA-CONTAINER-RUNTIME
在https://nvidia.github.io/nvidia-container-runtime/ 查看支持的操作系统和版本,并根据对应选项,添加源,因为我是centos7,所以添加方式为:
123distribution=$(. /etc/os-release;echo $ID$VERSION_ID)curl -s -L https://nvidia.github.io/nvidia-c ...
「深度学习基础」余弦退火学习率-PyTorch版
模型训练Trick
背景:深层神经网络难训练是因为学习过程容易陷入到马鞍面中,即在坡面上,一部分点是上升的,一部分点是下降的,如图在z轴上是最小值,而在x轴上是最大值。马鞍面上损失对参数的一阶导数为0,二阶导数的正负值不相同,由于梯度为0,模型无法进一步更新参数,因此模型训练容易陷入马鞍面中不再更新。
而余弦退火学习率可以很好的改善这个问题,这个是Pytorch官方的介绍。
但是官方的介绍里只有公式,没有告诉我们如何使用。
公式看不懂的同学不用担心,PyTorch都给我们封装好了,使用起来非常简单,PyTorch自带两个余弦学习率调整的方法,一个是CosineAnnealingLR,另一个是CosineAnnealingWarmRestarts。
CosineAnnealingLR
1CosineAnnealingLR(optimizer, T_max, eta_min=0, last_epoch=-1, verbose=False):
这个比较简单,只对其中的最关键的Tmax参数作一个说明,这个可以理解为余弦函数的半周期.如果max_epoch=50次,那么设置T_max=5则会让 ...
ubuntu下回退内核版本
查看可用内核信息
grep menuentry /boot/grub/grub.cfg
安装回退版本的内核
x.x.x-x为内核版本,本文以4.18.0-18为例
sudo apt-get install linux-headers-x.x.x-x-generic linux-image-x.x.x-x-generic
安装4.18.0-18版本内核
sudo apt-get install linux-headers-4.18.0-18-generic linux-image-4.18.0-18-generic
修改GRUB
sudo gedit /etc/default/grub
将GRUB_DEFAULT=0修改为你所想要还原的版本号,
如:GRUB_DEFAULT="Advanced options for Ubuntu > Ubuntu, with Linux 4.18.0-18-generic"
更新GRUB
sudo update-grub 然后重启电脑 使用uname -r查看内核版本
docker笔记
笔记
常用命令
12345678910111213141516171819attach # 当前shell下attach连接指定运行镜像build # 通过Dockerfile定制镜像commit # 提交当前容器为新的镜像cp # 从容器中拷贝指定文件或目录到宿主机中create # 创建一个新的容器,同 run 但不启动容器diff # 查看 docker 容器变化events # 从docker服务器获取容器实时事件exec # 在已存在的容器上运行命令export # 导出容器的内容流作为一个 tar 归档文件【对应 import】history # 展示一个镜像形成历史images # 列出系统当前镜像import # 从tar包中的内容创建一个新的文件系统映像【对应 export】info # 显示系统相关信息inspect # 查看容器详细信息kill # kill 指定的容器load # 从一个 tar 包中加载一个镜像【对应 save】login ...
Docker Caffe训练自定义模型
docker安装caffe
docker构建容器,新建文件Dockerfile,复制进下面的内容,然后运行build构建容器,读条完毕后CPU版的docker Caffe就安装好了。
1docker build -t caffe:1.0 .
Dockerfile
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748FROM ubuntu:16.04LABEL maintainer caffe-maint@googlegroups.comRUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ cmake \ git \ wget \ libatlas-base-dev \ libboost-all-dev \ libgflags-dev \ ...
RoboMaster视觉学习建议
视觉学习建议
目录
程序语言
操作系统
管理工具
OpenCV
数学基础
神经网络
推荐网站
程序语言
C++
C++编写起来和C语言一样结构清晰,又在C语言的基础上增加了许多新的功能,还可以直接操作硬件,绝对是研发机器视觉最好的语言。
面向对象,封装、多态、继承这些思想绝对是编程的重点。小型项目可能感觉不出来,一旦项目代码超过千行,如何解耦和划分功能模块就成了所有人不得不面对的问题,而C++正好提供了面向对象的编程模型,又是静态编译型语言,速度快,是一定要学好的。
一个人写代码乱一点可能不要紧,但是多个人一起写代码就需要一个强有力的代码规范,比如变量的命名、类的命名、宏定义的命名和缩进格式等,这里我推荐大家看一下华为的方舟编译器代码规范,学习一下别人的代码是如何编写的。
Python
Python是我们用来编写深度学习的脚本语言,py的编写方式远比C++简单,开发小型项目的效率比C++高。但是Python是解释型语言,不进行编译,运行时底层有一个Pyhton解释器在动态解释代码,这就造成了Python在开发大型项目时运行速度会变慢,结构不清晰。
我们一般使用 ...