3. light wam 模型加载
模型加载与初始化importosimporthydraimporttorchfromomegaconfimportDictConfig,OmegaConffromhydra.utilsimportinstantiatefromtorch.utils.dataimportDataLoaderfromlightwam.runtimeimport_resolve_train_device,_normalize_mixed_precision,_mixed_precision_to_model_dtype,build_datasetsfromlightwam.utils.config_resolversimportregister_default_resolvers register_default_resolvers()defprint_tensor_info(name,tensor):ifisinstance(tensor,torch.Tensor):print(f -{name}: shape{tuple(tensor.shape)}, dtype{tensor.dtype}, device{tensor.device})else:print(f -{name}: type{type(tensor).__name__})hydra.main(config_path../configs,config_nametrain,version_base1.3)defmain(cfg:DictConfig):# --- 1. Initialize Device and Precision ---print(\n*50)print(1. Initialization Setup)print(*50)model_device_resolve_train_device()mixed_precision_normalize_mixed_precision(cfg.mixed_precision)model_dtype_mixed_precision_to_model_dtype(mixed_precision)print(fTarget Device:{model_device})print(fMixed Precision:{mixed_precision})print(fModel Dtype:{model_dtype})# --- 2. Model Instantiation ---print(\n*50)print(2. Model Initialization)print(*50)print(Instantiating model from cfg.model...)# This calls lightwam.runtime.Wan22Runtime.from_config() under the hoodmodelinstantiate(cfg.model,model_dtypemodel_dtype,devicemodel_device)print(fModel Class:{type(model).__name__})# If state_fusion is used, we can verify ituses_state_fusiongetattr(model,uses_state_fusion_action_expert,lambda:False)()print(fUses State-Fusion Action Expert:{uses_state_fusion})total_paramssum(p.numel()forpinmodel.parameters())print(fTotal Parameters:{total_params/1e6:.2f}M)# --- 3. Dataset Loading ---print(\n*50)print(3. Dataset Loading)print(*50)print(Instantiating datasets from cfg.data...)train_ds,val_dsbuild_datasets(cfg.data)print(fTrain Dataset:{type(train_ds).__name__}, Length:{len(train_ds)})loaderDataLoader(train_ds,batch_sizeint(cfg.batch_size),shuffleFalse,num_workers0,# single-threaded for quick testingpin_memoryFalse,)# Fetch exactly one batchprint(Fetching one batch from DataLoader...)batchnext(iter(loader))print(fBatch Keys:{sorted(list(batch.keys()))})# --- 4. Forward Pass (Loss Computation) ---print(\n*50)print(4. Model Forward Pass)print(*50)# Put model in train modemodel.train()print(Moving batch to device and executing model.training_loss(batch)...)# We use autocast just like the trainer doeswithtorch.autocast(device_typemodel_device.split(:)[0],dtypemodel_dtype):# The models training_loss internally handles moving relevant parts of batch to the correct deviceloss,loss_dictmodel.training_loss(batch)print(f\nForward pass successful!)print(fReturned Total Loss:{loss.item():.4f})print(Detailed Loss Dict:)fork,vinloss_dict.items():print(f -{k}:{v:.4f})print(\nDone. The script executed the exact flow used during training setup and first iteration.)if__name____main__:main()模型运行结果python scripts/inspect_train_flow.py\tasklibero_uncond_2cam224_1e-4\data.train.dataset_dirs[./data/libero_mujoco3.3.2/libero_goal_no_noops_lerobot]\data.train.text_embedding_cache_dir./data/text_embeds_cache/libero\data.train.use_latent_cachetrue\data.train.latent_cache_dir./data/latent_cache_Wan2.1-T2V-1.3B/libero_goal_2cam224\batch_size21. Initialization SetupTarget Device: cuda:0 Mixed Precision: bf16 Model Dtype: torch.bfloat162. Model InitializationInstantiating model from cfg.model...[2026-07-28 01:56:55,165][lightwam.models.wan22.helpers.loader][INFO]- Applyingwan2_1_t2vvideo backbone preset overrides tovideo_dit_config:ffn_dim:14336-8960, hidden_dim:3072-1536, in_dim:48-16, num_heads:24-12, out_dim:48-16[2026-07-28 01:56:55,165][lightwam.models.wan22.helpers.loader][INFO]- Synchronized ActionDiT config with video backbone: num_heads:24-12[2026-07-28 01:56:55,165][lightwam.models.wan22.helpers.loader][INFO]- Loading Wan2.1-T2V-1.3B components...[2026-07-28 01:57:04,465][lightwam.models.wan22.wan_video_dit][INFO]- Enabled backbone LoRA onlayers[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]targets[self_attn.q,self_attn.k,self_attn.v,self_attn.o,cross_attn.q,cross_attn.k,cross_attn.v,cross_attn.o,ffn.0,ffn.2]rank64alpha128.000dropout0.000[2026-07-28 01:57:05,051][lightwam.models.wan22.helpers.loader][INFO]- Loaded WanVideoDiT from ./checkpoints/Wan-AI/Wan2.1-T2V-1.3B/diffusion_pytorch_model.safetensors usingrawstate dict variant(compatible825,missing618,unexpected0).[2026-07-28 01:57:05,975][lightwam.models.wan22.helpers.loader][INFO]- Skipping pretrained text encoder/tokenizer load(load_text_encoderFalse);training must provide cachedcontext/context_mask.[2026-07-28 01:57:06,728][lightwam.models.wan22.helpers.loader][INFO]- Loaded WanVideoVAE from ./checkpoints/Wan-AI/Wan2.1-T2V-1.3B/Wan2.1_VAE.pth usingwan_video_vae_state_dict_converterstate dict variant(compatible194,missing0,unexpected0).[2026-07-28 01:57:06,775][lightwam.models.wan22.helpers.loader][INFO]- Finished loading Wan2.1-T2V-1.3B componentsin11.61seconds.[2026-07-28 01:57:06,776][lightwam.models.wan22.mot][INFO]- Initialized MoT with experts:[video],num_layers30[2026-07-28 01:57:06,780][lightwam.models.wan22.mot][INFO]- Expertvideo:num_params1.51B Model Class: LightWAM Uses State-Fusion Action Expert: True Total Parameters:1986.82M3. Dataset LoadingInstantiating datasets from cfg.data...[2026-07-28 01:57:09,334][datasets][INFO]- PyTorch version2.7.1cu128 available. Resolving data files:100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████|433/433[00:0000:00,25658.49it/s]Downloading data:100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████|433/433[00:0000:00,50073.99files/s]Generating train split:52895examples[00:00,60523.66examples/s][2026-07-28 01:57:12,699][lightwam.datasets.lerobot.robot_video_dataset][INFO]- Calculating dataset statsfornormalization... Iterating dataset to get normalization:100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████|433/433[00:0500:00,79.57it/s][2026-07-28 01:57:18,196][lightwam.datasets.lerobot.robot_video_dataset][INFO]- Loaded indexed latent cache index:formatsharded_v1shards52samples52895[2026-07-28 01:57:18,196][lightwam.datasets.lerobot.robot_video_dataset][INFO]- Using latent cacheforRobotVideoDataset: /workspace/Light-WAM/data/latent_cache_Wan2.1-T2V-1.3B/libero_goal_2cam224 Train Dataset: RobotVideoDataset, Length:52895Fetching one batch from DataLoader... Batch Keys:[action,action_is_pad,context,context_mask,idx,image_is_pad,prompt,proprio,proprio_is_pad,video_latents]4. Model Forward PassMoving batch to device and executingmodel.training_loss(batch)... Forward pass successful!Returned Total Loss:1.4369Detailed Loss Dict: - loss_video:1.1475- loss_action:0.2894- loss_video_raw:1.1475- loss_action_raw:0.2894Done. The script executed the exact flow used during training setup and first iteration.

相关新闻

新手小白学习渗透测试第一天:对爬虫的初步了解

新手小白学习渗透测试第一天:对爬虫的初步了解

一. 学习前的想法在学习一个知识和想陈述清楚该知识的思考中,我觉得以下的几个点非常重要:1.为什么会有xxx东西?(什么样的现实需求问题使它应运而生)2.它能够干什么?(它如何解决与之对应的现实需求问题)3.相…

2026/7/30 3:18:16 阅读更多 →
多模态AI与数据库融合的三种架构模式:松散耦合、深度嵌入与原生化

多模态AI与数据库融合的三种架构模式:松散耦合、深度嵌入与原生化

多模态AI与数据库融合的三种架构模式:松散耦合、深度嵌入与原生化 多模态AI(文本图像音频视频的Embedding和检索)正在推动数据库架构的新一轮演进。本文将AI能力与数据库的融合程度划分为三种架构模式,分析各自的优劣和适用场景。…

2026/7/30 3:18:16 阅读更多 →
Python input()函数深度解析:从基础用法到生产级安全实践

Python input()函数深度解析:从基础用法到生产级安全实践

1. 项目概述:为什么input()函数值得你花时间深究?在Python编程的入门阶段,几乎所有人第一个接触到的交互功能就是input()函数。它看起来简单到不能再简单——一行代码,一个括号,程序就停下来等你输入。但正是这份“简单…

2026/7/30 3:17:16 阅读更多 →

最新新闻

EasyExplorer 复制文本、图片自动转存为文件

EasyExplorer 复制文本、图片自动转存为文件

截图工具截图保存为图片 有时候我们截图工具截完图后,一般会有以下情况: 场景一:一般截图工具附带有保存图片功能,当你选择保存时会弹出保存对话框,此时你需要一层层的选择要保存的文件路径,非常繁琐&…

2026/7/31 2:00:10 阅读更多 →
20-上下文文件-每个项目的专属指南

20-上下文文件-每个项目的专属指南

20 上下文文件——每个项目的专属指南 小张打开了一个克隆下来的新项目仓库,对Hermes说:"帮我看看这个项目的代码结构。"Hermes快速浏览了文件,给出了一个泛泛的目录树。但小张真正想问的是:"这个项目的架构设计思路是什么?关键模块在哪里?有哪些需要特…

2026/7/31 2:00:09 阅读更多 →
STM32从零到量产开发:四路继电器工业控制模块开发-RS485 半双工通信底层驱动模块(bsp_res485)设计说明

STM32从零到量产开发:四路继电器工业控制模块开发-RS485 半双工通信底层驱动模块(bsp_res485)设计说明

STM32从零到量产开发:四路继电器工业控制模块开发-RS485 半双工通信底层驱动模块(bsp_res485)设计说明 1. 模块概述 本模块(bsp_rs485)是基于 STM32 HAL 库开发的 RS485 半双工通信底层驱动,主要基于 USART…

2026/7/31 2:00:09 阅读更多 →
CentOS服务器基于Docker Compose部署Dify AI平台完整指南

CentOS服务器基于Docker Compose部署Dify AI平台完整指南

1. 项目概述与核心价值最近在折腾AI应用开发,发现很多团队和个人开发者都卡在了环境部署这一步。特别是想快速搭建一个像Dify这样的AI应用平台,从服务器准备、依赖安装到服务编排,每一步都可能遇到各种“坑”。如果你手头恰好有一台运行CentO…

2026/7/31 2:00:09 阅读更多 →
以下为你生成一个以“解决电脑运行卡顿问题”为例的符合要求的内容:

以下为你生成一个以“解决电脑运行卡顿问题”为例的符合要求的内容:

以下为你生成一个以“解决电脑运行卡顿问题”为例的符合要求的内容: 核心结论 解决电脑运行卡顿,可通过清理系统垃圾、优化启动项、升级硬件等方法,能有效提升电脑运行速度。 原理及操作步骤 清理系统垃圾 原理:系统在运行过程中会…

2026/7/31 2:00:09 阅读更多 →
UE4/UE5项目设置窗口全局置顶插件开发实战

UE4/UE5项目设置窗口全局置顶插件开发实战

1. 项目概述:为什么我们需要“全局置顶”?在虚幻引擎(UE4/UE5)的日常开发中,无论是独立开发者还是团队协作,都绕不开一个高频操作:修改项目设置。从渲染质量、输入映射到平台打包选项&#xff0…

2026/7/31 1:59:09 阅读更多 →

日新闻

物理复制比逻辑复制好在哪?数据库复制原理详解

物理复制比逻辑复制好在哪?数据库复制原理详解

数据库复制是把主库数据同步到备库的机制,分为逻辑复制和物理复制两种。逻辑复制传输的是 SQL 语句或行变更事件,物理复制传输的是存储引擎底层的物理日志。阿里云 PolarDB(云原生数据库)采用物理复制,在同步延迟、数据…

2026/7/31 0:00:34 阅读更多 →
BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…

2026/7/31 0:00:34 阅读更多 →
有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

当前,游戏行业的“DataAI融合”已从概念验证进入价值落地阶段。根据IDC 2025年数据,中国AI游戏云市场规模已达18.6亿元;同时,游戏研发环节AI渗透率高达86%,生成式AI内容普及率超过50%。面对庞大的市场,游戏…

2026/7/31 0:00:34 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻