- 博客(24)
- 收藏
- 关注
原创 EMA 与无 EMA 权重的差异
是一种用于平滑模型权重更新的技术,通常用于训练过程中。EMA 权重和无 EMA 权重的主要差异在于它们的更新方式和稳定性。
2025-03-14 09:50:33
279
原创 常见优化器
它是对 Adagrad 的改进,旨在解决 Adagrad 学习率逐渐变小的问题。Adadelta 通过限制累积梯度的窗口大小,动态调整每个参数的学习率,从而提高训练效率和稳定性。它通过计算梯度的一阶和二阶矩估计来动态调整每个参数的学习率,并包含偏差校正步骤,以确保在训练初期估计值的准确性。Nadam 的核心思想是结合 Adam 的自适应学习率和 Nesterov 动量的提前梯度计算。两个超参数:学习率 、 动量系数 (梯度累计中,上一次梯度的比例)动量更新:用梯度更新动量, 学习率 n。
2025-02-27 18:52:21
939
原创 lightning.LightningModule
是 PyTorch Lightning 中的一个核心类,用于组织和简化 PyTorch 代码。它将模型训练、验证和测试的逻辑分成几个部分,使代码更清晰、更易于维护。
2025-02-27 16:57:11
310
原创 学习率调度器(Learning Rate Scheduler)
学习率调度器(Learning Rate Scheduler)是一种在训练过程中动态调整学习率的工具。学习率是优化器中的一个超参数,它决定了模型参数在每次更新时的调整步幅。合适的学习率可以加速模型收敛,而不合适的学习率可能导致训练过程不稳定或收敛速度慢。
2025-02-10 18:04:27
283
原创 lora 理解
控制训练稳定性:由于 LoRA 主要是对已有的大模型进行微调,如果引入的调整过大,可能会导致训练不稳定。lora_alpha 的存在让这种调整可以被精细控制,从而保持训练的稳定性。避免过拟合:适当地设置 lora_alpha,可以防止对数据进行过拟合。一过大可能会导致过拟合,而过则可能让微调效果不明显。调节微调幅度:alpha 确保低秩矩阵对原始权重的影响不会过大。:A (m*r) B (r*n) 实现微调作用。不改变原有模型的情况下,对模型参数引入低秩矩阵,实现微调。
2025-02-10 17:36:14
315
原创 MangaLineExtraction_PyTorch 提取漫画线条
安装 torch 和 opencv-python: pip install -r ./requirements.txt。启动环境:.\torch191\Scripts\activate。创建环境:python -m venv torch191。该项目主要从2D漫画、卡通、插图等图中提取结构线。
2025-02-07 16:59:27
599
原创 分布式训练的 module.
ckpt[key.replace('module.', '')] = ckpt[key] # 去掉 'module.' 前缀。del ckpt[key] # 删除原始带有 'module.' 的键。# 使用 DataParallel 包装模型。环境 ,键名 不包含 module.中使用 PyTorch 的。时,模型的权重会被自动加上。前缀,保存时无法直接去掉。
2025-02-07 10:21:52
170
原创 controlnet_aux
是一个与ControlNet相关的辅助工具库,通常用于图像处理任务。它提供了一些预定义的处理器(如边缘检测、深度估计、线稿提取等),这些处理器可以作为 ControlNet 的输入,帮助生成模型(如 Stable Diffusion)更好地控制生成结果。安装:pip install controlnet-aux# 加载输入图像# 初始化# 对图像进行边缘检测# 保存边缘检测结果。
2025-02-06 11:50:07
530
原创 ControlNet 简介
它的核心思想是:在生成模型的基础上,添加一个可控的分支网络(ControlNet),通过条件输入(Condition Input)引导生成过程,从而实现对生成结果的更高控制。ControlNet 的核心是将条件输入(如边缘图、深度图等)与扩散模型结合,使得生成过程能够遵循用户提供的条件。)的技术,允许用户通过额外的条件输入(如边缘图、深度图、姿态图等)来精确控制生成图像的内容和结构。是一种扩展深度学习生成模型(如。
2025-02-06 11:41:00
831
原创 梯度检查点 与 梯度累计更新
4、检查点的工作原理是用时间换空间。检查点不保存整个计算图的所有中间结果以进行反向传播的计算,而是在反向传播的过程中重新计算中间结果。它可以应用于模型的任何部分。2、它通过在前向传播中保存较少的中间激活值(activations),在反向传播时重新计算这些激活值,从而减少显存占用。1、梯度检查点是一种节省显存(GPU Memory)的技术,特别是在训练大型模型时非常有用。3、代价是需要额外的计算时间,因为反向传播时需要重新计算部分前向传播的结果。只保存当做checkpoint的节点的中间结果。
2025-02-06 10:12:45
292
原创 linux du命令--查看目录/文件夹/文件大小
du --time --time-style="+%s" test/ :显示 UTC 时间的秒数(从1970年1月1日到现在的秒数)du -t 4118 test/: 是 --threshold=SIZE 的简写,过滤掉小于 SIZE 大小的文件以及目录。du -d 1 test/: 是 --max-depth=N 选项的简写,深入到第几层目录,超过指定层数目录则忽略。du --time --time-style="+%F %T" test/ :显示完整的年月日时分秒。
2024-10-28 10:35:57
1381
1
原创 查看GPU使用情况、信息
2、lspci | grep -i nvidia 使用nvidia Gpu时查看。4、nvidia-smi 查看显存状况(nvidia Gpu)1、lspci | grep -i vga 查看显卡信息。3、lspci -v -s GPU显卡代号。
2024-10-17 12:00:56
1532
原创 conda命令大全
移除conda-forge channel: conda config --remove channels conda-forge。#追加conda-forge channel: conda config --add channels conda-forge。6、查看虚拟环境 conda env list / conda info -e / conda info --envs。conda clean -p # 删除没有用的包 --packages。
2024-10-16 10:20:49
1358
原创 docker命令使用---镜像命令
6、构建镜像 docker build -t runoob/centos:6.7 path (-t 镜像名称 dockerfiler 路径)7、设置镜像标签 docker tag 镜像ID 用户名称/镜像源名:标签。1、从已有容器中更新镜像,并提交(从镜像网址下载的镜像)#更新镜像前,需要创建一个容器,并进入容器,更新系统。2、docker pull ubuntu:13.10 获取镜像。2、Dockerfile 指令来创建一个新的镜像。当docker 镜像不满足需求时,两种方式。
2024-10-15 20:50:29
368
原创 docker命令使用---容器命令
docker exec -it 243c32535da7 /bin/bash 进入容器 (--help)13、查看日志 docker logs -f bf08b7f2cd89 ID/容器名称 --help。11、删除容器 docker rm -f 1e560fca3906。-a: 查看全部 -l :查看最后一次创建的容器。docker start 容器 ID/名称。12、查看网络端口 docker port ID/容器名称。如果从这个容器退出,会导致容器的停止。10、导出/导入容器。
2024-10-15 20:33:54
289
原创 git上传改动:old mode-new mode 咋么办
git config --global core.fileMode true (git 不忽略文件权限的变化,)git config --add core.filemode true (git 不忽略文件权限的变化,)ls file -hl 看下文件权限,再看下普通文件权限, chmod修改文件权限即可,再补充上传就好。这种是文件权限的改动,
2024-08-07 08:52:05
412
原创 ubuntu-samba服务配置
sudo apt-get install cifs-utils //新版本。sudo apt-get install smbfs //旧版本。修改配置文件,如果没有vim,就先安装vim。
2024-08-06 18:51:27
449
原创 python - dict 字典
a.setdefault(key,default=None) #设置key对应的值,如果没有key,添加key并设置值defalut。a.get(key,default=None) #返回key对应的值,如果没有key,返回defalut。a.update(a) #把b中的键/值对,添加到a中,如有相同的key,b覆盖a的值。b = a.copy() #b是a的浅拷贝。a.popitem() #删除a中的最后一个键。a.pop(key) #删除a中的某个键。
2024-05-31 19:56:17
238
原创 numpy简洁教程(一篇就够) - 属性/生成/读写/运算/形状修改
矩阵乘法:A×B A的列数=B的行数 numpy.matmul() 和 numpy.dot()a.resize([2,7]) 的结果:多余位置用0填充。a.resize([2,2]) 的结果:多余数据直接截断。数组和数组:需要满足广播机制才能运算,也是常规的加减乘除。数组和数:就正常的加减乘除。
2024-05-28 19:22:16
1323
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人