- 博客(36)
- 收藏
- 关注
原创 Stable Diffssion超详细讲解持续更新中
在训练过程中,模型会对每张图像添加不同强度的噪声。噪声的强度用一个时间步 ttt来表示,ttt的范围通常是从 0 到 1000,共有 1001 种不同的噪声强度。时间嵌入是将时间步 ttt转换为一个高维的向量表示,这个向量将被输入到模型中,告诉模型当前图像的噪声强度。如果是图生图任务,我们在输入文本信息的同时,还需要将原图片通过图像编码器(VAE Encoder)生成Latent Feature(隐空间特征)作为输入。完成对文本信息的编码后,就会输入到SD模型的“图像优化模块”中对图像的优化进行“控制”。
2024-08-08 17:10:59
756
原创 SD微调 dreambooth & Lora & controlNet 持续更新中
微调:步骤1 选择预训练模型 如ResNet VGG2 准备新的数据集3 构建模型4 冻结部分模型5 定义损失函数和优化器6 微调模型7 评估模型8 微调的策略dreamboothDreamBooth并不是一个独立的图像生成模型,它是一种微调技术,通过对现有的预训练好的图像生成模型进行微调, 进而实现能通过文本 Prompt 控制生成同一个主体的不同场景的图像。
2024-08-08 16:46:57
1135
原创 最简单的深度学习训练代码
即使一个tensor(命名为x)的requires_grad = True,在with torch.no_grad计算,由x得到的新tensor(命名为w-标量)requires_grad也为False,且grad_fn也为None,即不会对w求导。(即使其他相依赖的tensor的requires_grad = False)当requires_grad设置为False时,反向传播时就不会自动求导了,因此大大节约了显存。数据集,模型(此处为最简单的线性模型),损失函数,优化算法,训练流程。
2024-04-11 15:31:08
520
原创 Stable Diffusion EDM Sampler详细解释
EDM (Euler Discretization with Momentum): EDM代表了欧拉离散化并带有动量的方法,它通常是对连续时间扩散过程进行数值积分的一种变体,通过引入动量项来改进收敛性和稳定性。现在x轴上某个点的值已知(当前带有噪声的样本),现在x轴方向变化了dt也已知,导致了y轴的变化量d也已知,求斜率(斜率即微分方程的解)对于扩散模型来说,这个离散化的一步就是根据当前噪声水平和下一步的目标噪声水平,计算并应用相应的更新到采样状态上。当噪声水平在特定范围内时(由。决定能否看懂代码的重点!
2024-03-06 14:55:20
3334
原创 数据集处理重采样等操作(DataLoad)
比如数据集有1万条数据,然后这个weights的长度也是1万,sampler = ds.WeightedRandomSampler(weights, 10000),dataset = ds.MnistDataset(dataset_path, sampler=sampler),最终dataset得到了这10000条数据, 但是和数据集的数据是不一样的。有时候数据集中的不同样本对模型的训练贡献是不同的,因此可以使用加权采样来调整样本的抽样概率。在mindone代码里的使用方法。
2024-02-28 20:45:56
512
1
原创 SelfAttention教程
先随机算出来一个注意力权重和value,这里面的逻辑就是先论文的高手整出来的,不用理解。所以以下是可以被训练的参数(linear层就是简单的y = x * W^T + b)note PyTorch 中,nn.Linear 层的权重和偏置默认是可训练的。然后计算出output,然后和target对比 迭代更新,更新参数。本质就是计算一个token和其他所有token的关系。self.W_q 中的权重和偏置。self.W_k 中的权重和偏置。self.W_v 中的权重和偏置。
2024-01-09 21:30:16
498
原创 Python踩坑
有多个虚拟环境,pip装到了python3.6,而运行环境是3.8。pip install A之后,立马import,报包不存在。前面加上python 版本 -m 指定安装。
2023-11-08 17:29:49
164
原创 深度学习模型权重转换(pytorch转mindspore)
在bevformer.py文件__init__之后打断点,通过self.img_backbone.state_dict()得到入参数--self.img_backbone.state_dict().keys(),可以得到全部的参数。核心:先载入一个pytorch的模型,用mindspore的key和pytorch的value。直接运行一下,重点是net.get_parameters()这个方法可以直接拿到参数。4 根据得到到mapping.json文件生成mindspore需要的ckpt文件;
2023-09-18 15:14:20
802
原创 深度学习最简单的线性网络实现
net = nn.Sequential(nn.Linear(2, 1)) # 第一个指定输入特征形状,即2,第二个指定输出特征形状,输出特征形状为单个标量,因此为1。# 参考 https://zh.d2l.ai/chapter_linear-networks/linear-regression-concise.html。print('w的估计误差:', true_w - w.reshape(true_w.shape))"""构造一个PyTorch数据迭代器"""
2023-08-31 12:39:37
118
原创 SA-1B数据集转COCO数据集
coco数据集中,RLE格式用一个字典表示,包含两个字段:'size' 和 'counts'。'size' 是一个表示图像大小的列表,包含图像的高度和宽度。'counts' 是一个经过压缩的字节串,表示图像的二进制掩码,通过使用COCO API的函数,你可以将RLE格式解码为标准的Mask格式,也就是一个二维数组。它通常是一个二维数组(矩阵),与原始图像大小相同,其中的元素值为1表示该像素属于目标,值为0表示该像素不属于目标。Mask格式与目标在图像中的像素位置一一对应,因此可以准确地表示目标的形状。
2023-08-01 21:39:24
2158
13
原创 Wiki.js 架构分析
在项目的根目录下config.yml这个文件里面配置数据库信息。官方的教程里面unbuntu安装是。运行环境:Node.js。user:数据库用户名。pass:数据库密码。
2023-04-18 15:44:34
310
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人