首页 > 其他分享 >《昇思 25 天学习打卡营第 18 天 | 扩散模型(Diffusion Models) 》

《昇思 25 天学习打卡营第 18 天 | 扩散模型(Diffusion Models) 》

时间:2024-07-23 22:53:39浏览次数:16  
标签:Diffusion 25 模型 噪声 生成 图像 打卡 扩散

《昇思 25 天学习打卡营第 18 天 | 扩散模型(Diffusion Models) 》

活动地址:https://xihe.mindspore.cn/events/mindspore-training-camp
签名:Sam9029


扩散模型(Diffusion Models)

扩散模型概述

扩散模型(Diffusion Models),特别是去噪扩散概率模型(DDPM),在图像、音频、视频生成领域取得了显著成果。这类模型通过逐步添加和去除噪声来生成数据,与GAN或VAE等其他生成模型相比,具有独特的优势。

实验环境准备

确保安装了MindSpore深度学习框架及其他必要的库。如果需要更换MindSpore版本,可以通过以下命令进行更新:

!pip uninstall mindspore -y
!pip install -i https://pypi.mirrors.ustc.edu.cn/simple mindspore==2.2.14

模型简介

Diffusion模型包括两个主要过程:正向扩散过程和逆向去噪过程。正向过程逐步添加噪声,逆向过程则通过训练神经网络逐步去除噪声,恢复图像。

关键概念

  • 正向扩散:向图像添加噪声直至变为纯噪声。
  • 逆向去噪:学习如何去除噪声,恢复原图。

数据准备与处理

使用Fashion-MNIST数据集,通过MindSpore的ImageFolderDataset进行加载,并进行必要的图像预处理,如随机水平翻转和缩放到固定大小。

模型构建

构建Diffusion模型需要定义多个组件,包括位置向量、ResNet/ConvNeXT块、Attention模块等。这些组件共同构成U-Net结构。

核心组件

  • 位置向量:使用正弦位置嵌入编码时间步长信息。
  • U-Net结构:结合编码器、瓶颈层和解码器,引入残差连接改善梯度流。

正向扩散过程

定义时间步长和噪声水平,通过前向扩散函数q_sample添加噪声。

训练过程

设置动态学习率和U-Net模型参数,使用Adam优化器进行训练。训练过程中,神经网络学习预测噪声,优化损失函数。

训练步骤

  1. 定义前向过程和损失函数。
  2. 使用随机梯度下降优化神经网络。

推理过程(从模型中采样)

通过sample函数从模型中采样图像,展示模型生成效果。

采样步骤

  1. 从高斯分布中采样纯噪声。
  2. 使用神经网络逐渐去噪,生成图像。

总结与思考

DDPM论文指出扩散模型是图像生成的有前途的方向。尽管如此,扩散模型的主要缺点是生成图像需要多次正向传递。未来的研究可能集中在如何减少去噪步骤,提高生成效率。

后续工作

  • 改进的去噪扩散概率模型,学习条件分布的方差。
  • 级联扩散模型,用于高保真图像合成。
  • 无分类器扩散指南,不需要分类器指导。

个人思考

在实践过程中发现扩散模型的关键在于如何平衡正向扩散和逆向去噪的过程。此外,模型的性能在很大程度上取决于U-Net结构的设计和优化。尽管当前的实现可能需要多次迭代,但随着研究的深入,扩散模型有望在生成任务中达到更高的效率和质量。

标签:Diffusion,25,模型,噪声,生成,图像,打卡,扩散
From: https://blog.csdn.net/m0_61486963/article/details/140647830

相关文章

  • 昇思25天学习打卡营第20天|K近邻算法实现红酒聚类
    K近邻算法实现红酒聚类实验目的K近邻算法原理介绍分类问题回归问题距离的定义实验环境数据处理数据准备数据读取与处理模型构建--计算距离模型预测实验小结本实验主要介绍使用MindSpore在部分wine数据集上进行KNN实验。实验目的了解KNN的基本概念;了解如何使用Mind......
  • [NOIP2008 提高组] 笨小猴(洛谷题号P1125)
    [NOIP2008提高组]笨小猴题目描述笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的......
  • 1258:【例9.2】数字金字塔
    1.题目描述题目。。。是这样的来!\(3!2!1!\)上链接!我是链接2.分析从下往上开始,最大的是\(24\),有两条路可走,就走大的那一个\(15\)以此判断,最后加上\(13\)便为\(13+8+26+15+24=86\)果然,dp大法好!Q:dp是什么?A:动态规划Q:动态规划是什么?A:自行百度我是另一个链接3.代码......
  • SQL251 使用含有关键字exists查找未分配具体部门的员工的所有信息。
    SQL251使用含有关键字exists查找未分配具体部门的员工的所有信息。描述使用含有关键字exists查找未分配具体部门的员工的所有信息。CREATETABLE`employees`(`emp_no`int(11)NOTNULL,`birth_date`dateNOTNULL,`first_name`varchar(14)NOTNULL,`last_name`varc......
  • AIGC-DynamiCrafter: Animating Open-domain Images with Video Diffusion Priors-ECC
    论文:https://arxiv.org/pdf/2310.12190代码:https://github.com/Doubiiu/DynamiCrafter?tab=readme-ov-fileMOTIVATIONTraditionalimageanimationtechniquesmainlyfocusonanimatingnaturalsceneswithstochasticdynamics(e.g.cloudsandfluid)ordom......
  • 每日一题-P1251
    网络流24题~#include<bits/stdc++.h>usingnamespacestd;#definelllonglongconstintinf=1e9;constlllnf=1e18;intN,p,m,f,n,s,r[2005],st,ed;structedge{ intv,nx;llw;intc;}e[40005];intcnt,hd[4105];voidadd(intu,intv,llw,intc){ e[++cnt......
  • 《昇思25天学习打卡营第24天|生成式-Pix2Pix实现图像转换》
    Pix2Pix实现图像转换Pix2Pix概述Pix2Pix是基于条件生成对抗网络(cGAN,ConditionGenerativeAdversarialNetworks)实现的一种深度学习图像转换模型该网络学习从输入图像到输出图像的映射,如Isola等人在Image-to-imagetranslationwithconditionaladversarialnetwor......
  • 【代码随想录训练营第42期 Day6打卡 LeetCode 242.有效的字母异位词 349.两个数组的交
    目录一、序言二、哈希表的相关知识1.基本概念2.常见的哈希结构3.总结三、题目及其题解242.有效的字母异位词题目链接题解思路1思路2思路3349.两个数组的交集题目链接题解202.快乐数题目链接题解1.两数之和题目链接题解思路1思路2四、小结一、序言......
  • 昇思25天学习打卡营第14天|计算机视觉
    昇思25天学习打卡营第14天文章目录昇思25天学习打卡营第14天FCN图像语义分割语义分割模型简介网络特点数据处理数据预处理数据加载训练集可视化网络构建网络流程训练准备导入VGG-16部分预训练权重损失函数自定义评价指标Metrics模型训练模型评估模型推理总结引用......
  • 《剑指JVM》——第8章——PC、虚拟机栈在执行时与方法区的交互——方法区6——运行时
    ......