mm_exploration
这个作者很懒,什么都没留下…
展开
-
DiAD代码逐行理解之TimestepBlock 和 TimestepEmbedSequential
TimestepBlock 和 TimestepEmbedSequential,它们都是用于神经网络模型中的组件,特别是与时间序列数据或需要时间步嵌入(timestep embeddings)的模型相关。这些类通过继承PyTorch的nn.Module类来实现,使其能够作为神经网络中的一层或多层被使用。原创 2024-08-02 11:08:25 · 425 阅读 · 0 评论 -
DiAD代码逐行理解之Attention
一、代码中的AttentionBlock类 二、代码中的QKVAttention 类和QKVAttentionLegacy类原创 2024-07-26 15:06:34 · 785 阅读 · 0 评论 -
DiAD代码use_checkpoint
1、梯度检查点理解2、 torch.utils.checkpoint.checkpoint函数原创 2024-07-31 10:25:15 · 363 阅读 · 0 评论 -
论文解读:DiAD之SG网络
DiAD论文最主要的创新点就是使用SG网络解决多类别异常检测中的语义信息丢失问题,那么它是怎么实现的保留原始图像语义信息的同时重建异常区域?SG网络被设计为与稳定扩散(Stable Diffusion, SD)去噪网络相连接。SD去噪网络本身具有强大的图像生成能力,但可能无法在多类异常检测任务中保持图像的语义信息一致性。SG网络通过引入语义引导机制,使得在重构异常区域时能够参考并保留原始图像的语义上下文。整个框架图中,SG网络与去噪网络的连接如下图所示。原创 2024-07-25 10:24:38 · 1149 阅读 · 1 评论 -
Diffusion Model相关论文解析之(十)DiAD A Diffusion-based Framework for Multi-class Anomaly Detection
语义引导网络(SG网络):提出了SG网络,用于在保留原始图像语义信息的同时重建异常区域。该网络通过引入语义引导机制,解决了现有扩散模型(如LDM)在多类别异常检测中的语义信息丢失问题。空间感知特征融合块(SFF块):引入了SFF块,以在处理大量重建区域时最大限度地提高重建精度。SFF块通过整合不同尺度的特征,实现了对原始正常样本信息的保留和大规模异常区域的重建。多尺度特征提取与异常评分:使用预训练的特征提取器对输入图像和重建图像进行处理,根据不同尺度提取的特征生成异常图。通过计算重建图像和输入图像原创 2024-07-15 10:42:49 · 468 阅读 · 0 评论 -
DiAD代码逐行理解之train.py
ModelCheckpoint:ImageLogger:Trainer:原创 2024-07-13 08:58:51 · 339 阅读 · 0 评论 -
DiAD代码逐行理解train.py - pytorch_lightning.Trainer
目录一、训练器初始化函数 pytorch_lightning.Trainer二、训练器调用函数 trainer.fit原创 2024-07-13 10:51:21 · 786 阅读 · 0 评论 -
DiAD代码逐行理解train.py-ModelCheckpoint
1、ModelCheckpoint类简单介绍2、使用ModelCheckpoint类实现模型保存的示例原创 2024-07-13 09:52:28 · 516 阅读 · 0 评论 -
guided-diffusion 相比于improved-diffusion的sample增加的cond_fn()
1、cond_fn()函数代码2、softmax与log_softmax函数原创 2024-07-11 13:50:32 · 725 阅读 · 0 评论 -
improved-diffusion代码逐行理解之schedule_sampler
1、create_named_schedule_sampler2、ScheduleSampler3、UniformSampler4、LossAwareSampler5、LossSecondMomentResampler原创 2024-07-09 14:07:54 · 911 阅读 · 0 评论 -
Python和numpy相关函数
一、python中变量前面有个*二、numpy.prod三、numpy.savez四、 arr[..., ::-1]五、 yield六、 string.join() 七、 numpy.random.choice()原创 2024-07-09 11:08:02 · 889 阅读 · 0 评论 -
improved-diffusion代码逐行理解之torch.distributed
1、torch.distributed.get_world_size()2、torch.distributed.all_gather()3、torch.distributed.barrier()4、torch.distributed.get_rank()原创 2024-07-08 17:42:55 · 929 阅读 · 0 评论 -
improved-diffusion代码逐行理解之train
1、解析命令行参数2、分布式设置和日志配置3、创建模型和扩散过程4、加载数据5、训练循环6、训练过程中的关键点7、日志和模型保存原创 2024-07-08 14:33:11 · 425 阅读 · 0 评论 -
improved-diffusion代码逐行理解之sample
1、循环生成样本2、设置模型参数3、选择采样函数4、生成图像样本5、收集分布式环境中的样本6、记录日志7、保存样本8、分布式同步原创 2024-07-08 16:48:04 · 998 阅读 · 0 评论 -
nanodiffusion代码逐行理解之sample
当你调用一个包含 yield 的函数时,该函数不会立即执行其代码,而是返回一个迭代器(即生成器)。每次迭代时,yield 语句会“暂停”函数的执行,并返回紧随其后的值给迭代器的调用者。.detach() 函数可以返回一个完全相同的tensor,新的tensor开辟与旧的tensor共享内存,新的tensor会脱离计算图,不会牵扯梯度计算。也就是requires_grad=False, 因此可以 接着进行numpy() 的操作,解决了numpy()需要建立在无梯度的tensor的基础上的问题。原创 2024-07-08 09:40:59 · 409 阅读 · 0 评论 -
nanodiffusion代码逐行理解之UNET
UNET模型主要由三部分组成,包括编码器(下采样),瓶颈部分(中间部分),解码器(上采样)原创 2024-07-04 09:51:57 · 762 阅读 · 0 评论 -
nanodiffusion代码逐行理解之time embedding
time embedding本质上就是把时间步t转换为指定维度的嵌入向量,这个向量由时间步,向量维度,周期等参数决定,可以简单理解为根据时间步t在正弦余弦函数采样得到的向量。原创 2024-07-03 14:38:54 · 660 阅读 · 0 评论 -
nanodiffusion代码逐行理解之Attention
一、注意力中的QKV二、注意力中的位置嵌入三、注意力中的多头四、注意力和自注意力五、注意力中的encode和decoder原创 2024-07-04 15:25:32 · 561 阅读 · 0 评论 -
扩散模型中的UNET
一、为什么UNET模型可以用于去噪网络二、扩散模型中的UNET是一个条件去噪网络,怎么实现的三、UNET用于分割和用去去噪的区别原创 2024-06-28 10:26:42 · 1324 阅读 · 1 评论 -
torch常用函数
一、 torch.bmm二、 torch.einsum三、torch.chunk四、torch.contiguous五、torch.clamp六、torchvision.utils.make_grid原创 2024-07-05 15:30:34 · 626 阅读 · 0 评论 -
improved-diffusion-main代码理解
一、 TimestepEmbedSequential二、PyTorch之Checkpoint机制三、AttentionBlock四、use_scale_shift_norm原创 2024-07-05 17:06:30 · 595 阅读 · 0 评论 -
nanodiffusion代码逐行理解之ResidualBlock
使用了残差连接的两个卷积模块,在第一个卷积之后,增加了时间条件和类条件。原创 2024-07-03 15:40:01 · 248 阅读 · 0 评论 -
nanodiffusion代码逐行理解之diffusion
一、diffusion创建二、GaussianDiffusion定义三、代码理解def __init__(self,model,img_size,img_channels,num_classes,betas, loss_type="l2", ema_decay=0.9999, ema_start=5000, ema_update_rate=1,):def remove_noise(self, x, t, y, use_ema=True):def sample(self, batch_size, d原创 2024-07-05 09:46:45 · 928 阅读 · 0 评论 -
Pytorch-norm
在神经网络搭建时,通常在卷积或者RNN后都会添加一层标准化层以及激活层。常用标准化层包括batchNorm,LayerNorm,InstanceNorm,GroupNorm。原创 2024-05-23 10:28:04 · 439 阅读 · 0 评论 -
常用torch.nn
常用基础pytorch知识原创 2024-05-23 17:52:35 · 1124 阅读 · 0 评论 -
PositionalEmbedding代码解读
PositionalEmbedding原创 2024-05-24 16:23:43 · 287 阅读 · 0 评论