在自己的数据上复现一下LlamaGen

news/2025/2/26 8:47:43

git仓库:https://github.com/FoundationVision/LlamaGen

数据集准备

如果用ImageFolder读取,则最好和ImageNet一致。

data_path/
    class_1/
        image_001.jpg
        image_002.jpg
        ...
    class_2/
        image_003.jpg
        image_004.jpg
        ...
    ...
    class_n/
        image_005.jpg
        image_006.jpg
        ...

python">def build_imagenet(args, transform):
    return ImageFolder(args.data_path, transform=transform)

如果是train,val,test,最好整理成

data_path/
    train/
        class_1/
            image_001.jpg
            image_002.jpg
            ...
        class_2/
            image_003.jpg
            image_004.jpg
            ...
        ...
    val/
        class_1/
            image_005.jpg
            image_006.jpg
            ...
        class_2/
            image_007.jpg
            image_008.jpg
            ...
        ...
    test/
        class_1/
            image_009.jpg
            image_010.jpg
            ...
        class_2/
            image_011.jpg
            image_012.jpg
            ...
        ...

读取:

python">train_dataset = datasets.ImageFolder(root=args.data_path + '/train', transform=transform)

# 加载验证集
val_dataset = datasets.ImageFolder(root=args.data_path + '/val', transform=transform)

# 加载测试集
test_dataset = datasets.ImageFolder(root=args.data_path + '/test', transform=transform)

数据集预处理

NCCL_IB_DISABLE=1 NCCL_P2P_DISABLE=1 CUDA_VISIBLE_DEVICES=3 torchrun \
--nnodes=1 --nproc_per_node=1 --node_rank=0 \
--master_addr=localhost \
autoregressive/train/extract_codes_c2i.py \
--vq-ckpt ./pretrained_models/vq_ds16_c2i.pt \
--data-path 你的数据集 \
--code-path VQGAN处理的数据集放在哪 \
 --ten-crop \
 --crop-range 1.1 \
 --image-size 256

这里改成自己数据集的长度
在这里插入图片描述

ten-crop是作者定义的一种数据增强,每一个图片生成10个crop。最好修改一下这里的代码,训练的时候仅仅取一个。

在这里插入图片描述
注释掉这个self.flip

训练

NCCL_IB_DISABLE=1 NCCL_P2P_DISABLE=1 CUDA_VISIBLE_DEVICES=4,5 torchrun \
--nnodes=1 --nproc_per_node=2 --node_rank=0 \
--master_addr=localhost \
--master_port=8902 \
./autoregressive/train/train_c2i.py \
--cloud-save-path xxx \
--code-path 之前放VQGAN处理后数据集的地方 \
--image-size 256 \
--gpt-model GPT-B

生成

修改类别,权重

parser.add_argument("--num-classes", type=int, default=xxx)

label定义:
在这里插入图片描述
我的生成结果(数据集用了TinyImageNet的8个类)
300step
在这里插入图片描述

1500step
在这里插入图片描述


http://www.niftyadmin.cn/n/5868415.html

相关文章

web安全——web应用程序技术

文章目录 一、HTTP1.1 HTTP方法1.2 HTTP消息头1.3 cookie1.4 状态码 二、web功能2.1 服务器端功能2.2 客户端功能——同源策略 三、编码方案3.1 URL编码3.2 Unicode编码3.3 HTML编码3.4 Base64编码 一、HTTP HTTP(超文本传输协议)是web应用程序使用的通…

【CSS 选择器的特异度 CSS 继承 CSS 求值过程解析 CSS 布局方式及相关技术】

以下是关于 CSS 选择器特异度、继承、求值过程及布局技术 的详细解析,结合核心概念和实际应用场景: 一、CSS 选择器特异度(Specificity) 1. 特异度规则 特异度用于决定当多个选择器作用于同一元素时,哪个样式优先级更…

布署elfk-准备工作

建议申请5台机器部署elfk: filebeat(每台app)--> logstash(2台keepalived)--> elasticsearch(3台)--> kibana(部署es上)采集输出 处理转发 分布式存储 展示 ELK中文社区: 搜索客,搜索人自己的社区 官方…

当AI搜索撕开传统搜索的裂缝,警惕AI搜索的“信息茧房”

大家好,我是Shelly,一个专注于输出AI工具和科技前沿内容的AI应用教练,体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具,拥抱AI时代的到来。 人工智能&AIGC术语100条 Shelly聊AI-重…

鸿蒙NEXT开发-用户通知服务

注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识 目录 1. 用户通知服务基本介绍 2. 能力范围 …

笔记20250225

关于上拉电阻和下拉电阻的作用 原理 上拉电阻:在上拉电阻所连接的导线上,如果外部组件未启用,上拉电阻则“微弱地”将输入电压信号“拉高”。当外部组件未连接时,对输入端来说,外部“看上去”就是高阻抗的&#xff0c…

【初阶数据结构】链表的柔光之美

目录 一、为什么需要链表? 二、链表与数组的对比 三、链表节点定义 四、链表基本操作 1. 创建链表 2. 插入节点 头插法(时间复杂度O(1)) 尾插法(时间复杂度O(n)) 3. 删除节点 4. 遍历链表 五、进阶操作 1. 反…

系统调用过程

注意:本系统调用过程基于32位操作系统 中断服务程序的寻址过程 1.用户态程序产生系统调用write(); 2.产生中断指令ENTER_KERNEL(int $0x80128),CPU收到中断指令去查询中断向量表,找出中断号0x80对应的中断服务程序的内存基地址(0…