沉迷单车的追风少年
CSDN博客专家,CSDN商业化专家,官方内容合作伙伴,官方认证“人工智能领域优质创作者”,入选2023年中国开发者影响力年度榜单。
代表专栏《Diffusion Models与深度学习》、《手把手写深度学习》、《深度学习-计算机视觉》、《手把手写C++服务器》等。
展开
-
手把手写深度学习(0):专栏文章导航
手把手写深度学习(0):专栏文章导航原创 2023-09-27 18:40:27 · 743 阅读 · 12 评论 -
手把手写深度学习(26):统计视频数据集的基本特性(帧数、帧率、长度)和预处理(切分)的自动化脚本
当算法工程师拿到一个新的视频数据集的时候,需要首先查看一下这个数据集的基本特性,方便后续处理和模型训练。这篇博客提供自动化脚本,帮助统计视频数据集的基本特性(如帧率、帧数、秒数)等,然后根据自己的需求对视频数据集进行切分预处理。原创 2024-04-01 10:13:43 · 319 阅读 · 2 评论 -
手把手写深度学习(25):下载并清洗WebVid-10M数据集
WebVid-10M是一个大型文本-视频配对数据集,时至今日,依旧是做视频理解、视频生成等任务的首选数据集。这篇博客手把手详细教大家如何下载和清洗这个数据集。原创 2024-03-29 14:47:39 · 520 阅读 · 2 评论 -
手把手写深度学习(24):用SAM通过文本提示分割mask图片
在生成任务中,通过对mask区域进行生成可以有更好的可控性,是AIGCer必备的技能之一。这篇博客手把手带读者基于SAM完成一个通过文本提示词的分割图片,打上mask,方便后续用diffusion models重建。原创 2024-03-26 15:15:21 · 799 阅读 · 4 评论 -
手把手写深度学习(23):视频扩散模型之Video DataLoader
训练自己的视频扩散模型的第一步就是准备数据集,而且这个数据集是text-video或者image-video的多模态数据集,这篇博客手把手教读者如何写一个这样扩散模型的的Video DataLoader。原创 2024-03-13 11:10:34 · 939 阅读 · 6 评论 -
手把手写深度学习(22):视频数据集清洗之过滤静态/运动程度低的数据
当我们训练自己的视频生成模型时,现在大部分基于扩散模型架构都差不多,关键点在数据上!视频数据的预处理远远比图像数据复杂,其中有一点是如果静态数据、运动程度低的数据加入到数据集中,会对模型的效果产生极大的破坏!这篇博客手把手教读者如何清洗掉这些不合格的数据。原创 2024-02-24 16:36:51 · 870 阅读 · 2 评论 -
手把手写深度学习(1):WebVid-10M数据清洗之文字/水印检测清洗-复现Stable Video Diffusion论文
WebVid-10M是做Diffusion Models视频生成必不可少的数据集。这个数据集明显的特点是有水印,还有少量文字,这些都需要在数据清洗的过程中处理了。这篇博客将从实战出发,手把手教大家如何清洗WebVid-10M中的水印和文字。原创 2024-01-22 15:13:28 · 580 阅读 · 2 评论 -
手把手写深度学习(2):用Generative score-based models生成手写数字
作为和DDPM同宗同源的score-based models,虽然没能做到如此火爆,但是其中很多思想都被后来的研究者们借鉴,这篇博客就详细讲解score-based models代码,手把手带读者生成自己的MNIST。原创 2022-09-21 09:39:20 · 1880 阅读 · 8 评论 -
手把手写深度学习(21):用PEFT LoRA微调Stable Diffusion
PEFT由Hugging Face荣誉出品,是现在微调大模型最常用的库之一。这篇博客首先介绍PEFT LoRA微调Stable Diffusion的原理,然后讲解代码,并整理出完整可运行的脚本,已在GitHub上开源。原创 2023-09-16 11:59:11 · 620 阅读 · 12 评论 -
手把手写深度学习(20):搭建LLM大语言模型的敏感词过滤系统
随着Llama 2、通义千问7B等越来越多的大语言模型开源,开发者们可以基于这些开源的模型搭建自己的对话系统、Agent等。但是因为我们的国情,需要开发者对这些模型进行一些特殊的“安全性”考虑,保证与用户的交互不会出现“有害信息”。这篇博客手把手教大家搭建一个大语言模型的敏感词过滤系统。原创 2023-08-08 10:02:07 · 1579 阅读 · 8 评论 -
手把手写深度学习(19):从零开始构建Pytorch深度学习项目架构
前言:在工业界,特别是构建超大规模分布式系统的时候,TensorFlow有着不可替代的优势。但是在学术界,特别偏爱pytorch。pytorch易学易用是近年来越来越流行的重要原因。本文讲述一个深度学习项目的整体架构,手把手教你如何从零构建一个基于pytorch的深度学习项目。深度学习项目中必须包含的内容模型定义 训练代码 数据集加载与处理 测试代码 评价指标一般代码结构随意打开一个基于pytorch的深度学习项目,代码结构一般都和下面这个大同小异:首先解释一下每个...原创 2023-07-17 09:56:14 · 391 阅读 · 8 评论 -
手把手写深度学习(18):finetune微调CLIP模型的原理、代码、调参技巧
在前面的博客《手把手写深度学习(16):用CILP预训练模型搭建图文检索系统/以图搜图/关键词检索系统》中介绍了如何在图文检索、以图搜图、关键词检索等任务中使用CLIP。这篇博客重点讲解代码和调参技巧。原创 2022-09-07 08:00:00 · 5829 阅读 · 35 评论 -
手把手写深度学习(17):用LSTM为图片生成文字描述(Image-to-text任务)
近年来text-to-image的任务非常火爆,大模型如Della、Imagen、GLIDE等都取得了良好的效果;其镜像任务image-to-text的相关研究却比较少,这篇博客手把手带大家用简单的LSTM网络搭建一个image-to-text系统。...原创 2022-09-15 07:45:00 · 2607 阅读 · 11 评论 -
手把手写深度学习(16):用CILP预训练模型搭建图文检索系统/以图搜图/关键词检索系统
CLIP is all yuo need!CLIP在text-to-image、图像检索、视频理解、图像编辑、自监督学习等领域都展示了极强的统治力,这篇博客手把手教大家搭建自己的图文检索系统,能在检索指标上一举秒杀过往的工作,展示CLIP极强的统治力!.........原创 2022-08-18 08:00:00 · 1734 阅读 · 9 评论 -
手把手写深度学习(15):在Hugging Face上构建自己的语料库
tokenizer是NLP pipeline的核心组件之一。核心作用是:将文本转换为模型可以处理的数据。模型只能处理数字,因此tokenizer需要将我们的文本输入转换为数字数据。例如我们看到的一句话:但是,模型只能处理数字,所以我们需要找到一种将原始文本转换为数字的方法。这就是tokenizer所做的,有很多方法可以做到这一点。目标是找到最有意义的表示和最小的表示。利用tokenizer分词后得到了单词表(词汇表)vocabularies,每个单词都被分配一个ID,从0开始,一直到词汇表的大小。模型使用这原创 2022-06-22 09:42:03 · 483 阅读 · 2 评论 -
手把手写深度学习(14):如何利用官方预训练模型做微调/迁移学习?(以Resnet50提取图像特征为例)
前言:对于transformer、resnet等网络较深、很难训练的模型,使用官方提供的预训练模型,然后在自己的数据集/应用场景下微调,同样能取得非常棒的效果,也是最省时省力的方法。本文以训练一个resnet50网络来提取图像特征为例,详细说明怎样使用官网预训练模型进行迁移学习,怎样在实际应用场景下使用微调模型。目录如何获取官方预训练模型?如何使用模型中特定层?如何训练提取特征网络?为什么提取特征网络要选用分类模型训练?数据集准备完整训练代码效果测试如何获取官方预训练.原创 2022-05-05 07:45:00 · 1667 阅读 · 4 评论 -
手把手写深度学习(13):使用CycleGAN将苹果转换成橘子
前言:上一篇介绍了CycleGAN相关的理论基础,这次我们动手实践,用CycleGAN将苹果变成橘子。学会之后我们用相同的方法,能把白天变成黑夜、野马变成斑马、夏天变成秋天、油画变成照片、梵高画变成莫奈画等等。目录Instance Normalization登场1、原理2、代码搭建网络结构1、鉴别器2、生成器损失函数数据集准备1、下载2、读取、压缩、使用开始训练!参考:Instance Normalization登场1、原理gene...原创 2022-04-05 09:45:00 · 1210 阅读 · 4 评论 -
手把手写深度学习(12):CycleGANs伟大的风格迁移理论基础篇
前言:前几篇博客讲了pix2pix GANs,能做点对点的转换,并且需要成对的数据。本文介绍cycleGANs,不需要成对的数据集,能做域之间的转换,能做很多有趣的应用:风格迁移、物体变形、季节转换、图片增强、色彩转换、老照片修复、白天黑夜转换等等。这篇博客先学习一下循环生成对抗网络的理论基础。目录整体结构损失函数1、对抗损失2、循环一致损失3、总损失网络结构1、鉴别器结构2、生成器结构参考整体结构G和F为生成对抗网络GAN的两个生成器,同时G和F分别.原创 2022-04-02 09:45:00 · 712 阅读 · 2 评论 -
手把手写深度学习(11):用Pix2Pix GANs实现sketch-to-image跨模态任务(实战演练)
前言:上一篇讲了很多Pix2Pix GANs的基础,没想到越写越多,最后写了将近4w字,所以拆分成两篇:理论基础和实战演练分别介绍。计算对抗损失和L1损失鉴别器模型可以直接更新,而生成器模型必须通过鉴别器模型更新。所以我们定义一个复合模型,该复合模型将生成器模型的输出作为输入连接到鉴别器,鉴别器模型可以预测生成的图像是真还是假。同时更新合成模型的权值,使生成的图像有真实的标签而不是假的,这将导致生成器权值被更新,以生成更好的假图像。我们还可以在此上下文中将鉴别器权重标记为不可训练,以避免误导.原创 2022-03-15 16:37:14 · 4054 阅读 · 4 评论 -
手把手写深度学习(10):用Pix2Pix GANs实现sketch-to-image跨模态任务(理论基础)
前言:2017年GANs正如火如荼地发展,有CGANs、DCGANs等前辈珠玉在前,Pix2Pix GANs横空出世,在多种多模态任务上有着亮眼的表现,并且首次把U-net结构带到了深层次生成模型当中,非常有意义。本文用Pix2Pix GANs实现sketch-image这一跨模态任务。encoder-decoder:多模态基础现在很多多模态的任务,都是基于encoder-decoder的结构,或者attention机制。作为多模态生成任务的鼻祖,pix2pix gan的生成器使用了encoder.原创 2022-03-01 10:28:38 · 3087 阅读 · 6 评论 -
手把手写深度学习(9):十大GANs之conditional GANs
前言:和DCGANs一样,conditional GANs在GAN的发展历史也具有划时代的意义。CGAN是首次允许生成具有特定条件或属性的图像。就像一个核反应堆,第一次能够做到可控,是非常了不起的。目录CGANs解决了什么问题?CGANs是如何做的?CGAN模型结构DiscriminatorGenerator训练过程实战:利用CGAN生成手写数字参考CGANs解决了什么问题?CGAN的Generator和Discriminator都接收一些附加的条件输入信息,.原创 2021-12-20 21:45:00 · 793 阅读 · 6 评论 -
手把手写深度学习(8)——用LSTM生成手写英文文章
前言:本系列前文介绍了用GANs生成手写数字,生成手写数字的任务是一件非常简单、入门的事情,因为MNIST数据集提供的,像素点非常低,最后生成的效果也非常模糊。要知道,高分辨率的生成一直是深层生成问题中永恒的研究热点。而本讲将手写英文字母当做向量的表达方式,LSTM作为一个非常优秀的RNN网络,广泛用于时空序列的处理。本讲就是用LSTM来生成手写英文文章。目录LSTM基础知识数据集网络结构代码开始生成!参考:LSTM基础知识前文介绍了RNN,本文在RNN的基础上再介绍.原创 2021-12-05 16:22:19 · 531 阅读 · 7 评论 -
手把手写深度学习(7):用GANs生成手写数字
前言:2014年GANs在NPIS大会上被提出,但是因为种种原因沉寂了两年,直到DCGANs横空出世,将GAN和CNN完美结合,才真正带来了GANs大火,一下子成为最强风口。好几年过去了,热度有增无减。这一讲从DCGAN的原理出发,一步步深入,用DCGAN生成手写数字。DCGANs参考:生成对抗网络学习笔记3----论文unsupervised representation learning with...原创 2021-11-16 20:01:31 · 2265 阅读 · 10 评论 -
手把手写深度学习(6):用最简单的神经网络多层感知机识别数字
前言:MLP多层感知机是多少人神经网络入门的初恋,这一讲从基础的多层感知机原理出发,搭建一个能够识别手写数字的MLP。众所周知,深度学习是一门工程学,我们从基础的MLP出发,一步一步手把手调参,在实践中感受调参的乐趣,优化baseline的效果。多层感知机原理下载数据集&&使用数据集if not(os.path.exists('./data/')) or not os.listdir('./data/'): # not mnist dir or mn.原创 2021-11-14 21:00:00 · 646 阅读 · 4 评论 -
手把手写深度学习(5)——Pytorch+RNN自动生成邓紫棋风格歌词
前言:前面两篇文章讲了RNN的基础理论和用mxnet搭建一个RNN网络,自动生成歌词。本文是时候亮出我三十年邓紫棋歌迷的身份,用使用更广泛的Pytorch框架,搭建一个RNN模型,用来自动生成邓紫棋风格的歌词生成器。Pytorch RNN API简介官网原文:https://pytorch.org/docs/stable/generated/torch.nn.RNN.html公式问题的核心在于RNN的公式:是t时刻的隐藏状态,CNN只有这一项。而RNN多了这一项来.原创 2021-11-12 23:15:00 · 1157 阅读 · 6 评论 -
手把手写深度学习(4)——用RNN循环神经网络自动生成张靓颖歌词
前言:有了上一篇的理论基础,我们正式开始动手实践。作为张靓颖的六十年铁杆歌迷,我们这次就拿“小海豚”做实验,看看能不能用RNN写出来自己的靓式情歌。爬取张靓颖歌词数据集用爬虫爬取,QQ音乐上爬取的。QQ音乐很良心,没有多少反爬措施。爬下来的数据存到我们data.txt中:#!/usr/bin/python# -*- coding:utf-8 -*-import requestsimport jsonimport pymongoimport timeimport osf.原创 2021-11-08 22:00:00 · 1139 阅读 · 6 评论 -
手把手写深度学习(3)——用RNN循环神经网络自动生成歌词之理论篇
前言:RNN的出现,解决了CNN在处理时空序列上的糟糕表现。所谓时空序列可以简单理解上前后的输入是有联系的,比如自然语言处理,我们说的前一句话和后一句话之间是有联系的;智能视频处理,每一帧的前后是有联系的;雷达信号,每个信号之间是有联系的……传统的图像处理,图像中的每个像素点,这些像素值之间是没有联系的。我们利用RNN做一个自动歌词生成器,本文先介绍一下RNN的理论基础。目录语言模型RNN原理和网络结构参考语言模型语言模型(language model)是计算一个句子的概率..原创 2021-11-06 19:54:54 · 2659 阅读 · 6 评论