Diffusers代码学习-LoRA训练

LoRA(Low-Rank Adaptation of Large Language Models)是一种流行的轻量级训练技术,它显著减少了可训练参数的数量。它的工作原理是在模型中插入少量的新权重,并且只训练这些权重。这使得使用LoRA进行训练的速度更快、内存高效,并产生更小的模型权重(几百MB),更容易存储和共享。LoRA还可以与DreamBooth等其他训练技术相结合,以加快训练速度。

  1. 下载源代码及安装。

在运行脚本之前,请确保从以下源安装库:

git clone https://github.com/huggingface/diffusers

cd diffusers

pip install .

导航到包含train_dreambooth.py脚本的示例文件夹,并为正在使用的脚本安装所需的依赖项:

cd examples/dreambooth

pip install -r requirements.txt

注意需要修改train_dreambooth.py,将accelerator_project_config改为project_config。否则会报错returned non-zero exit status 1.

2. 安装及注册wandb

pip install wandb

登录Weights & Biases: The AI Developer Platform (wandb.ai)

图片

3. 准备训练数据集

同时下载好训练所用的数据集。

import os

os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'

from huggingface_hub import snapshot_download

local_dir = "./dog"

snapshot_download(

    "diffusers/dog-example",

    local_dir=local_dir,

    repo_type="dataset",

    ignore_patterns=".gitattributes",

)

注意如果下载的文件中除了图片以外还有其他目录比如.huggingface目录,需要删掉。否则会报错PermissionError: [Errno 13] Permission denied

4. 初始化accelerate

然后需要用到accelerate库,可帮助在多个GPU/TPU上或以混合精度进行训练。它将根据硬件和环境自动配置训练设置。

这里不选择任何配置,使用设置默认值运行accelerate库

accelerate config default

5. 运行训练脚本

accelerate launch train_dreambooth_lora.py 

--pretrained_model_name_or_path="runwayml/stable-diffusion-v1-5" 

--instance_data_dir="dog" 

--output_dir="model_dog" 

--instance_prompt="a photo of sks dog" 

--resolution=512 

--train_batch_size=1 

--gradient_accumulation_steps=1 

--checkpointing_steps=100 

--learning_rate=1e-4 

--report_to="wandb" 

--lr_scheduler="constant" 

--lr_warmup_steps=0 

--max_train_steps=500 

--validation_prompt="A photo of sks dog in a bucket" 

--validation_epochs=50 

--seed="0" 

6. 查看生成结果

图片

7. 登录wandb查看训练过程

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/22592.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1790java网络学习平台Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java网络学习平台系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助采用了java设计,系统具有完整的源代码和数据库,系统采用web模式,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&…

HTML静态网页成品作业(HTML+CSS)——VIVO介绍网页(1个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有1个页面。 二、作品演示 三、代…

[C][数据结构][时间空间复杂度]详细讲解

目录 0.铺垫1.时间复杂度 -- 衡量算法的运行快慢1.是什么?2.大O的渐进表示法 2.空间复杂度 - 衡量算法所需要的额外空间3.常见复杂度对比 0.铺垫 时间是累计的空间是不累计的,可以重复利用 1.时间复杂度 – 衡量算法的运行快慢 1.是什么? …

Python R用法:深度探索与实用技巧

Python R用法:深度探索与实用技巧 在Python的广袤生态系统中,R语言的功能和特性通过某些库得以复现和扩展,使得数据分析师和科学家能够在同一个平台上无缝切换。本文将分四个方面、五个方面、六个方面和七个方面,深入剖析Python中…

15.2 测试-网格测试、基准测试与测试覆盖率

1. 网格测试 函数或方法的输出因收到的输入而异,如果为每个输入专门编写一个测试用例,将导致大量的重复代码。 不妨将输入的各种组合存放在网格之中,只编写一个测试用例即完成对所有输入的测试,比如象下面这样: va…

大模型卷出新高度|暴雨AI服务器M8878助解算力之困

当今世界,作为新一轮科技革命和产业革命的重要驱动力,AI已经成为“兵家必争之地”。我国也在政府报告中首次将“人工智能”行动纳入国家战略,开启了以人工智能为核心的数字经济高质量发展的新时代。 当今世界,作为新一轮科技革命…

盘点:中国智能物流装备头部企业的“业务地盘”,谁还不为自己护食?

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 随着中国市场对智能物流装备需求的不断增长,各大物流装备企业纷纷加大投入,拓展业务,形成各自的重点业务行业。以下是几家主要企业在智能物流装备领…

AI 正在攻克难题——赋予计算机嗅觉

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Nginx GeoIP 使用指南-宝塔识别ip屏蔽地区

Nginx 的 GeoIP 模块允许根据访问者的 IP 地址识别其地理位置,并根据地理位置执行特定操作。本文档将详细展示如何配置和使用 Nginx 的 GeoIP 模块,包括基本配置、访问控制、基于地理位置的重定向等。 1. 安装 GeoIP 模块 首先,需要确保 Nginx 安装了 GeoIP 模块。如果未安…

VUE3 学习笔记(13):VUE3 下的Element-Plus基本使用

UI是页面的门面,一个好的UI自然令人赏心悦目;国人团队开发的ElementUI在众多UI中较为常见,因此通过介绍它的使用让大家更好的了解第三方UI的使用。 安装 Npm install element-plus --save 或 Cnpm install element-plus --save 配置 全局配置…

Windows CMD对MySQL进行基本操作的常用命令

目录 前言1. 数据库操作2. 表操作3. 记录操作4. 备份与恢复数据库 前言 对于基本的命令行以及优化推荐阅读: 数据库中增删改常用语法语句(全)Mysql优化高级篇(全)命令行登录Mysql的详细讲解 启动MySQL服务&#xff1…

多线程知识-13

为什么应该在循环中检查等待条件 为了实现多线程的同步和协调,通常使用等待和唤醒机制。在等待和唤醒机制中,等待条件是指一个线程等待某个条件的满足,当条件满足时,线程被唤醒继续执行。 在循环中检查等待条件的目的是为了避免虚…

关于nginx的配置参数

关于nginx的配置参数 nginx参考配置参数 #宝塔服务器PHP项目配置文件 server {listen 80;server_name 服务器公网地址;index index.php index.html index.htm default.php default.htm default.html;root /root/peopledata/front/dist/;#CERT-APPLY-CHECK--START# 用于SSL证书…

Binary Ninja 4.0.5336 (macOS, Linux, Windows) - 逆向平台

Binary Ninja 4.0.5336 (macOS, Linux, Windows) - 逆向平台 请访问原文链接:https://sysin.org/blog/binary-ninja/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org Binary Ninja A New Type of Reversing Platfo…

【TB作品】msp430g2553单片机,智能台灯,依据亮度调节小灯亮度,IIC oled,PWM亮度

功能 msp430g2553单片机,读取gy-30的光照强度,oled显示光照强度,依据光照强度调节小灯亮度。 硬件 gy-30 0.96寸 iic oled //gy-30 //SCL--P1.4 //SDA--P1.5 //VCC--3.3V //GND--GND //ADDR--GND//oled //SCL--P2.0 //SDA--P2.1 //VCC--…

MATLAB算法实战应用案例精讲-【数模应用】内容效度(附R语言代码实现)

目录 前言 几个高频面试题目 不同类型的效度对比 一、效度定义 二、结构效度 三、结构效度延伸

如何零基础自学软件测试

自学软件测试需要掌握以下技能: 一、基础技能 掌握编程语言:软件测试的基础是编程,因此需要掌握至少一种编程语言,如Python、Java等。这是测试用例编写、自动化脚本编写、测试报告编写等的基础。了解测试理论:包括软…

Nginx--安装SSL证书(支持https)的方法

原文网址:Nginx--安装SSL证书(支持https)的方法_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Nginx如何安装SSL证书。 1.上传证书 1.在Nginx的配置文件目录下创建存放证书的目录 cd /etc/nginx/ #进入Nginx默认配置文件目录。请根据实际配置调整。 mkdir cert #…

机器学习算法 —— 逻辑回归

🌟欢迎来到 我的博客 —— 探索技术的无限可能! 🌟博客的简介(文章目录) 目录 逻辑回归逻辑回归的介绍逻辑回归的优点逻辑回归的缺点逻辑回归的应用 实践演示库函数导入模型训练模型参数查看数据和模型可视化模型预测 …

11_JavaWeb监听器

文章目录 监听器1.监听器的分类2.application域监听器案例 监听器 概念:后端要发生一些事情的时候,自动触发一些代码的执行; 1.监听器的分类 web中定义八个监听器接口作为监听器的规范,这八个接口按照不同的标准可以形成不同的分类 按监听的…