[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-pengzhiliang--MAE-pytorch":3,"tool-pengzhiliang--MAE-pytorch":62},[4,18,26,35,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,2,"2026-04-10T11:39:34",[14,15,13],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":32,"last_commit_at":41,"category_tags":42,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[43,13,15,14],"插件",{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[52,15,13,14],"语言模型",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,61],"视频",{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":68,"readme_en":69,"readme_zh":70,"quickstart_zh":71,"use_case_zh":72,"hero_image_url":73,"owner_login":74,"owner_name":75,"owner_avatar_url":76,"owner_bio":77,"owner_company":78,"owner_location":79,"owner_email":77,"owner_twitter":77,"owner_website":80,"owner_url":81,"languages":82,"stars":87,"forks":88,"last_commit_at":89,"license":77,"difficulty_score":90,"env_os":91,"env_gpu":92,"env_ram":93,"env_deps":94,"category_tags":101,"github_topics":77,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":102,"updated_at":103,"faqs":104,"releases":135},6790,"pengzhiliang\u002FMAE-pytorch","MAE-pytorch","Unofficial PyTorch implementation of Masked Autoencoders Are Scalable Vision Learners","MAE-pytorch 是经典论文《Masked Autoencoders Are Scalable Vision Learners》的非官方 PyTorch 实现版本，旨在让开发者能够在 PyTorch 框架下复现并探索掩码自编码器（MAE）这一先进的视觉学习架构。该工具主要解决了原始论文缺乏官方 PyTorch 代码的问题，为社区提供了一个包含预训练和微调全流程的开源参考方案，帮助用户在图像识别等任务中利用自监督学习提升模型性能。\n\n它特别适合人工智能研究人员、算法工程师以及希望深入理解 MAE 原理的深度学习开发者使用。通过 MAE-pytorch，用户可以轻松搭建实验环境，进行从大规模数据预训练到下游任务微调的完整工作流，甚至可视化模型对图像的修复重建效果。\n\n在技术实现上，MAE-pytorch 基于 BEiT 项目构建，针对 PyTorch 原生不支持的特性进行了巧妙适配。例如，它采用随机生成掩码图的方式模拟论文的\"shuffle\"操作，仅将可见令牌送入编码器，再结合位置嵌入重构被掩码部分；同时集成了正弦 - 余弦位置编码机制。尽管作者坦诚目前尚无法完全保证复现论文中的所有","MAE-pytorch 是经典论文《Masked Autoencoders Are Scalable Vision Learners》的非官方 PyTorch 实现版本，旨在让开发者能够在 PyTorch 框架下复现并探索掩码自编码器（MAE）这一先进的视觉学习架构。该工具主要解决了原始论文缺乏官方 PyTorch 代码的问题，为社区提供了一个包含预训练和微调全流程的开源参考方案，帮助用户在图像识别等任务中利用自监督学习提升模型性能。\n\n它特别适合人工智能研究人员、算法工程师以及希望深入理解 MAE 原理的深度学习开发者使用。通过 MAE-pytorch，用户可以轻松搭建实验环境，进行从大规模数据预训练到下游任务微调的完整工作流，甚至可视化模型对图像的修复重建效果。\n\n在技术实现上，MAE-pytorch 基于 BEiT 项目构建，针对 PyTorch 原生不支持的特性进行了巧妙适配。例如，它采用随机生成掩码图的方式模拟论文的\"shuffle\"操作，仅将可见令牌送入编码器，再结合位置嵌入重构被掩码部分；同时集成了正弦 - 余弦位置编码机制。尽管作者坦诚目前尚无法完全保证复现论文中的所有性能指标，且部分功能（如分类令牌支持）仍在完善中，但它依然是一个极具价值的学习与研究起点，助力社区推动视觉大模型的发展。","# Unofficial PyTorch implementation of [Masked Autoencoders Are Scalable Vision Learners](https:\u002F\u002Farxiv.org\u002Fabs\u002F2111.06377)\n\nThis repository is built upon [BEiT](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Funilm\u002Ftree\u002Fmaster\u002Fbeit), thanks very much!\n\n\nNow, we implement the pretrain and finetune process according to the paper, but still **can't guarantee** the performance reported in the paper can be reproduced! \n\n## Difference\n\n### `shuffle` and `unshuffle`\n\n`shuffle` and `unshuffle` operations don't seem to be directly accessible in pytorch, so we use another method to realize this process:\n+ For `shuffle`, we use the method of randomly generating mask-map (14x14) in BEiT, where `mask=0` illustrates keeping the token, `mask=1` denotes dropping the token (not participating caculation in encoder). Then all visible tokens (`mask=0`) are fed into encoder network.\n+ For `unshuffle`, we get the postion embeddings (with adding the shared mask token) of all masked tokens according to the mask-map and then concate them with the visible tokens (from encoder), and feed them into the decoder network to recontrust.\n\n### sine-cosine positional embeddings\n\nThe positional embeddings mentioned in the paper are `sine-cosine` version. And we adopt the implemention of [here](https:\u002F\u002Fgithub.com\u002Fjadore801120\u002Fattention-is-all-you-need-pytorch\u002Fblob\u002Fmaster\u002Ftransformer\u002FModels.py#L31), but it seems like a 1-D embeddings not 2-D's. So we don't know what effect it will bring.\nAnd I find the 2D's sine-cosine positional embeddings in [MoCoV3](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmoco-v3\u002Fblob\u002Fc349e6e24f40d3fedb22d973f92defa4cedf37a7\u002Fvits.py?_pjax=%23js-repo-pjax-container%2C%20div%5Bitemtype%3D%22http%3A%2F%2Fschema.org%2FSoftwareSourceCode%22%5D%20main%2C%20%5Bdata-pjax-container%5D#L53). If someone is interested, you can try it.\n\n\n## TODO\n- [x] implement the finetune process\n- [ ] reuse the model in `modeling_pretrain.py`\n- [x] caculate the normalized pixels target\n- [ ] add the `cls` token in the encoder\n- [x] visualization of reconstruction image\n- [ ] knn and linear prob\n- [ ] ...\n\n## Setup\n\n```\npip install -r requirements.txt\n```\n\n## Run\n1. Pretrain\n```bash\n# Set the path to save checkpoints\nOUTPUT_DIR='output\u002Fpretrain_mae_base_patch16_224'\n# path to imagenet-1k train set\nDATA_PATH='\u002Fpath\u002Fto\u002FImageNet_ILSVRC2012\u002Ftrain'\n\n\n# batch_size can be adjusted according to the graphics card\nOMP_NUM_THREADS=1 python -m torch.distributed.launch --nproc_per_node=8 run_mae_pretraining.py \\\n        --data_path ${DATA_PATH} \\\n        --mask_ratio 0.75 \\\n        --model pretrain_mae_base_patch16_224 \\\n        --batch_size 128 \\\n        --opt adamw \\\n        --opt_betas 0.9 0.95 \\\n        --warmup_epochs 40 \\\n        --epochs 1600 \\\n        --output_dir ${OUTPUT_DIR}\n```\n\n2. Finetune\n```bash\n# Set the path to save checkpoints\nOUTPUT_DIR='output\u002F'\n# path to imagenet-1k set\nDATA_PATH='\u002Fpath\u002Fto\u002FImageNet_ILSVRC2012'\n# path to pretrain model\nMODEL_PATH='\u002Fpath\u002Fto\u002Fpretrain\u002Fcheckpoint.pth'\n\n# batch_size can be adjusted according to the graphics card\nOMP_NUM_THREADS=1 python -m torch.distributed.launch --nproc_per_node=8 run_class_finetuning.py \\\n    --model vit_base_patch16_224 \\\n    --data_path ${DATA_PATH} \\\n    --finetune ${MODEL_PATH} \\\n    --output_dir ${OUTPUT_DIR} \\\n    --batch_size 128 \\\n    --opt adamw \\\n    --opt_betas 0.9 0.999 \\\n    --weight_decay 0.05 \\\n    --epochs 100 \\\n    --dist_eval\n```\n3. Visualization of reconstruction\n```bash\n# Set the path to save images\nOUTPUT_DIR='output\u002F'\n# path to image for visualization\nIMAGE_PATH='files\u002FILSVRC2012_val_00031649.JPEG'\n# path to pretrain model\nMODEL_PATH='\u002Fpath\u002Fto\u002Fpretrain\u002Fcheckpoint.pth'\n\n# Now, it only supports pretrained models with normalized pixel targets\npython run_mae_vis.py ${IMAGE_PATH} ${OUTPUT_DIR} ${MODEL_PATH}\n```\n\n## Result\n\n|   model  | pretrain | finetune | accuracy | log | weight |\n|:--------:|:--------:|:--------:|:--------:| :--------:|:--------:|\n| vit-base |   400e   |   100e   |   83.1%  | [pretrain](files\u002Fpretrain_base_0.75_400e.txt) [finetune](files\u002Fpretrain_base_0.75_400e_finetune_100e.txt)| [Google drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F182F5SLwJnGVngkzguTelja4PztYLTXfa?usp=sharing) [BaiduYun](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1F0u9WeckZMbNk095gUxT1g)(code: mae6)|\n| vit-large | 400e | 50e | 84.5% | [pretrain](files\u002Fpretrain_large_0.75_400e.txt) [finetune](files\u002Fpretrain_large_0.75_400e_finetune_50e.txt) | unavailable |\n\nDue to the limited gpus, it's really a chanllenge for us to pretrain with larger model or longer schedule mentioned in the paper. (the pretraining and end-to-end fine-tuning process of vit-large model are fininshed by [this enthusiastic handsome guy](https:\u002F\u002Fgithub.com\u002Fsunsmarterjie) with many v100s, but the weights are unavailable)\n\nSo if one can fininsh it, please feel free to report it in the issue or push a PR, thank you!\n\nAnd your star is my motivation, thank u~\n","# [掩码自编码器是可扩展的视觉学习器](https:\u002F\u002Farxiv.org\u002Fabs\u002F2111.06377) 的非官方 PyTorch 实现\n\n本仓库基于 [BEiT](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Funilm\u002Ftree\u002Fmaster\u002Fbeit) 构建，非常感谢！\n\n\n目前，我们已按照论文实现了预训练和微调流程，但仍然**无法保证**能够复现论文中报告的性能！\n\n## 差异\n\n### `shuffle` 和 `unshuffle`\n\n在 PyTorch 中似乎无法直接使用 `shuffle` 和 `unshuffle` 操作，因此我们采用了另一种方法来实现这一过程：\n+ 对于 `shuffle`，我们沿用了 BEiT 中随机生成 14x14 掩码图的方法，其中 `mask=0` 表示保留该 token，`mask=1` 表示丢弃该 token（不参与编码器计算）。然后将所有可见 token（`mask=0`）输入到编码器网络中。\n+ 对于 `unshuffle`，我们根据掩码图获取所有被掩码 token 的位置嵌入（并加入共享的掩码 token），再将其与来自编码器的可见 token 拼接在一起，作为解码器的输入进行重建。\n\n### 正弦-余弦位置嵌入\n\n论文中提到的位置嵌入是 `正弦-余弦` 版本。我们采用了 [此处](https:\u002F\u002Fgithub.com\u002Fjadore801120\u002Fattention-is-all-you-need-pytorch\u002Fblob\u002Fmaster\u002Ftransformer\u002FModels.py#L31) 的实现，但看起来像是 1D 的嵌入，而非 2D 的。因此，尚不清楚这会带来怎样的影响。另外，我在 [MoCoV3](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmoco-v3\u002Fblob\u002Fc349e6e24f40d3fedb22d973f92defa4cedf37a7\u002Fvits.py?_pjax=%23js-repo-pjax-container%2C%20div%5Bitemtype%3D%22http%3A%2F%2Fschema.org%2FSoftwareSourceCode%22%5D%20main%2C%20%5Bdata-pjax-container%5D#L53) 中找到了 2D 的正弦-余弦位置嵌入。如果有兴趣的话，可以尝试一下。\n\n## 待办事项\n- [x] 实现微调流程\n- [ ] 复用 `modeling_pretrain.py` 中的模型\n- [x] 计算归一化像素目标\n- [ ] 在编码器中添加 `cls` token\n- [x] 可视化重建图像\n- [ ] KNN 和线性探测\n- [ ] …\n\n## 环境配置\n\n```\npip install -r requirements.txt\n```\n\n## 运行\n\n1. 预训练\n```bash\n# 设置保存检查点的路径\nOUTPUT_DIR='output\u002Fpretrain_mae_base_patch16_224'\n# ImageNet-1K 训练集路径\nDATA_PATH='\u002Fpath\u002Fto\u002FImageNet_ILSVRC2012\u002Ftrain'\n\n\n# 根据显卡情况调整 batch_size\nOMP_NUM_THREADS=1 python -m torch.distributed.launch --nproc_per_node=8 run_mae_pretraining.py \\\n        --data_path ${DATA_PATH} \\\n        --mask_ratio 0.75 \\\n        --model pretrain_mae_base_patch16_224 \\\n        --batch_size 128 \\\n        --opt adamw \\\n        --opt_betas 0.9 0.95 \\\n        --warmup_epochs 40 \\\n        --epochs 1600 \\\n        --output_dir ${OUTPUT_DIR}\n```\n\n2. 微调\n```bash\n# 设置保存检查点的路径\nOUTPUT_DIR='output\u002F'\n# ImageNet-1K 数据集路径\nDATA_PATH='\u002Fpath\u002Fto\u002FImageNet_ILSVRC2012'\n# 预训练模型路径\nMODEL_PATH='\u002Fpath\u002Fto\u002Fpretrain\u002Fcheckpoint.pth'\n\n# 根据显卡情况调整 batch_size\nOMP_NUM_THREADS=1 python -m torch.distributed.launch --nproc_per_node=8 run_class_finetuning.py \\\n    --model vit_base_patch16_224 \\\n    --data_path ${DATA_PATH} \\\n    --finetune ${MODEL_PATH} \\\n    --output_dir ${OUTPUT_DIR} \\\n    --batch_size 128 \\\n    --opt adamw \\\n    --opt_betas 0.9 0.999 \\\n    --weight_decay 0.05 \\\n    --epochs 100 \\\n    --dist_eval\n```\n\n3. 可视化重建\n```bash\n# 设置保存图像的路径\nOUTPUT_DIR='output\u002F'\n# 用于可视化图像的路径\nIMAGE_PATH='files\u002FILSVRC2012_val_00031649.JPEG'\n# 预训练模型路径\nMODEL_PATH='\u002Fpath\u002Fto\u002Fpretrain\u002Fcheckpoint.pth'\n\n# 目前仅支持具有归一化像素目标的预训练模型\npython run_mae_vis.py ${IMAGE_PATH} ${OUTPUT_DIR} ${MODEL_PATH}\n```\n\n## 结果\n\n| 模型     | 预训练轮数 | 微调轮数 | 准确率   | 日志         | 权重链接          |\n|----------|------------|----------|----------|--------------|-------------------|\n| vit-base | 400轮      | 100轮    | 83.1%    | [预训练](files\u002Fpretrain_base_0.75_400e.txt) [微调](files\u002Fpretrain_base_0.75_400e_finetune_100e.txt) | [Google Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F182F5SLwJnGVngkzguTelja4PztYLTXfa?usp=sharing) [百度网盘](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1F0u9WeckZMbNk095gUxT1g)(提取码: mae6) |\n| vit-large| 400轮      | 50轮     | 84.5%    | [预训练](files\u002Fpretrain_large_0.75_400e.txt) [微调](files\u002Fpretrain_large_0.75_400e_finetune_50e.txt) | 未提供            |\n\n由于 GPU 资源有限，要按照论文中的更大模型或更长调度进行预训练确实颇具挑战。（vit-large 模型的预训练及端到端微调是由一位热情的帅哥完成的，他使用了多张 V100 显卡，但权重并未公开）\n\n因此，如果有人能够成功完成，请随时在 issue 中报告或提交 PR，非常感谢！\n\n你的 Star 就是我的动力，谢谢！","# MAE-pytorch 快速上手指南\n\nMAE-pytorch 是论文《Masked Autoencoders Are Scalable Vision Learners》的非官方 PyTorch 实现，基于 BEiT 代码库构建。本项目实现了预训练（Pretrain）和微调（Finetune）流程，并支持重建图像可视化。\n\n> **注意**：由于硬件限制及实现细节差异（如位置编码），本仓库**无法保证**完全复现原论文报告的性能指标。\n\n## 1. 环境准备\n\n### 系统要求\n- **操作系统**: Linux (推荐)\n- **Python**: 3.6+\n- **PyTorch**: 兼容版本（建议 1.8+）\n- **GPU**: 支持 CUDA 的 NVIDIA 显卡（多卡训练效果更佳）\n\n### 前置依赖\n确保已安装基础深度学习环境。项目所需的具体依赖包如下：\n- `torch`, `torchvision`\n- `timm`\n- `Pillow`, `numpy`, `matplotlib` 等常规科学计算库\n\n## 2. 安装步骤\n\n克隆仓库并安装依赖：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fpengzhiliang\u002FMAE-pytorch.git\ncd MAE-pytorch\npip install -r requirements.txt\n```\n\n> **国内加速建议**：如果下载依赖较慢，可使用清华或阿里镜像源：\n> ```bash\n> pip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n## 3. 基本使用\n\n使用前请准备好 ImageNet-1k 数据集路径。以下示例展示最核心的三个步骤：预训练、微调和可视化。\n\n### 3.1 预训练 (Pretrain)\n设置检查点保存路径和数据集路径，启动分布式预训练。\n\n```bash\n# 设置变量\nOUTPUT_DIR='output\u002Fpretrain_mae_base_patch16_224'\nDATA_PATH='\u002Fpath\u002Fto\u002FImageNet_ILSVRC2012\u002Ftrain'\n\n# 启动预训练 (示例使用 8 张卡，batch_size 可根据显存调整)\nOMP_NUM_THREADS=1 python -m torch.distributed.launch --nproc_per_node=8 run_mae_pretraining.py \\\n        --data_path ${DATA_PATH} \\\n        --mask_ratio 0.75 \\\n        --model pretrain_mae_base_patch16_224 \\\n        --batch_size 128 \\\n        --opt adamw \\\n        --opt_betas 0.9 0.95 \\\n        --warmup_epochs 40 \\\n        --epochs 1600 \\\n        --output_dir ${OUTPUT_DIR}\n```\n\n### 3.2 微调 (Finetune)\n加载预训练权重进行分类任务微调。\n\n```bash\n# 设置变量\nOUTPUT_DIR='output\u002F'\nDATA_PATH='\u002Fpath\u002Fto\u002FImageNet_ILSVRC2012'\nMODEL_PATH='\u002Fpath\u002Fto\u002Fpretrain\u002Fcheckpoint.pth'\n\n# 启动微调\nOMP_NUM_THREADS=1 python -m torch.distributed.launch --nproc_per_node=8 run_class_finetuning.py \\\n    --model vit_base_patch16_224 \\\n    --data_path ${DATA_PATH} \\\n    --finetune ${MODEL_PATH} \\\n    --output_dir ${OUTPUT_DIR} \\\n    --batch_size 128 \\\n    --opt adamw \\\n    --opt_betas 0.9 0.999 \\\n    --weight_decay 0.05 \\\n    --epochs 100 \\\n    --dist_eval\n```\n\n### 3.3 重建可视化 (Visualization)\n查看模型对掩码图像的重建效果（仅支持使用归一化像素目标训练的模型）。\n\n```bash\n# 设置变量\nOUTPUT_DIR='output\u002F'\nIMAGE_PATH='files\u002FILSVRC2012_val_00031649.JPEG'\nMODEL_PATH='\u002Fpath\u002Fto\u002Fpretrain\u002Fcheckpoint.pth'\n\n# 运行可视化脚本\npython run_mae_vis.py ${IMAGE_PATH} ${OUTPUT_DIR} ${MODEL_PATH}\n```\n\n### 预训练模型参考\n若需直接使用预训练权重，可参考以下结果（ViT-Base, 400 epoch 预训练 + 100 epoch 微调，准确率约 83.1%）：\n- **Google Drive**: [下载链接](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F182F5SLwJnGVngkzguTelja4PztYLTXfa?usp=sharing)\n- **百度网盘**: [下载链接](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1F0u9WeckZMbNk095gUxT1g) (提取码: `mae6`)","某计算机视觉团队正在为一家电商公司开发商品图像分类系统，面临标注数据稀缺且训练成本高昂的挑战。\n\n### 没有 MAE-pytorch 时\n- **数据依赖严重**：传统监督学习需要海量人工标注的商品图片，标注周期长且费用极高，导致项目启动缓慢。\n- **算力资源浪费**：为了从头训练高性能模型，团队不得不长时间占用多张 GPU 进行全量计算，显存压力大且电费成本激增。\n- **小样本效果差**：在仅有少量标注数据进行微调时，模型极易过拟合，识别准确率难以突破 75%，无法满足上线标准。\n- **缺乏可视化验证**：难以直观判断模型是否真正学到了图像的结构特征，调试过程如同“黑盒”，排查问题效率低下。\n\n### 使用 MAE-pytorch 后\n- **大幅降低标注需求**：利用 MAE-pytorch 的掩码自编码机制，团队先在大规模无标签商品图上完成预训练，仅需极少量标注数据即可微调出高精度模型。\n- **显著提升训练效率**：通过随机遮蔽 75% 的图像块（mask_ratio 0.75），编码器仅处理可见部分，预训练阶段的显存占用和计算时间减少了近一半。\n- **小样本性能飞跃**：基于预训练权重进行微调后，即使在有限标注集上，分类准确率也迅速提升至 83% 以上，达到生产级要求。\n- **重建效果可视**：借助工具自带的可视化脚本，开发人员能直接看到模型对遮挡商品图的完美重建效果，快速确认模型已掌握关键语义特征。\n\nMAE-pytorch 通过高效的自监督预训练范式，成功将商品分类系统的开发周期缩短了一半，同时显著降低了对标注数据和算力资源的依赖。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpengzhiliang_MAE-pytorch_476bd6ae.png","pengzhiliang","Zhiliang Peng","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fpengzhiliang_b046fe3e.jpg",null,"Microsoft Research","Beijing,China","https:\u002F\u002Fpengzhiliang.github.io","https:\u002F\u002Fgithub.com\u002Fpengzhiliang",[83],{"name":84,"color":85,"percentage":86},"Python","#3572A5",100,2688,342,"2026-04-08T12:22:10",4,"Linux","必需 NVIDIA GPU。示例命令使用 8 张显卡 (--nproc_per_node=8)，单卡显存建议 16GB+ 以支持 batch_size 128 的训练；需安装支持分布式训练的 CUDA 环境，具体版本未说明。","未说明（建议 32GB+ 以支持大规模数据处理和多进程训练）",{"notes":95,"python":96,"dependencies":97},"1. 该工具基于 BEiT 仓库构建，需安装 requirements.txt 中的依赖。2. 训练脚本使用 torch.distributed.launch 启动，默认配置为 8 卡分布式训练，可根据显卡数量调整 batch_size。3. 数据集路径需指向 ImageNet-1k (ILSVRC2012)。4. 这是一个非官方实现，作者声明无法保证复现论文中的性能指标。5. 位置编码实现采用了一维正弦 - 余弦形式，与论文可能的二维实现存在差异。","未说明",[98,99,100],"torch","torchvision","timm",[15],"2026-03-27T02:49:30.150509","2026-04-12T13:14:33.033598",[105,110,115,120,125,130],{"id":106,"question_zh":107,"answer_zh":108,"source_url":109},30620,"运行 run_class_finetuning.py 时出现报错：TypeError: __init__() got an unexpected keyword argument 'use_mean_pooling'，该如何解决？","根本原因是选择了错误的 ViT 模型结构。`use_mean_pooling` 属性定义在 `modeling_finetune.py` 的 `VisionTransformer` 类中。如果运行脚本时未更改 `--model` 参数，默认会加载 `deit_base_patch16_224` 模型，该模型没有此属性。\n\n解决方案：在运行命令中添加参数 `--model vit_base_patch16_224` 或其他在 `modeling_finetune.py` 中定义的模型名称。","https:\u002F\u002Fgithub.com\u002Fpengzhiliang\u002FMAE-pytorch\u002Fissues\u002F32",{"id":111,"question_zh":112,"answer_zh":113,"source_url":114},30621,"遇到 TypeError: __init__() got an unexpected keyword argument 'num_classes' 或 'in_chans' 错误怎么办？","这通常是由 `timm` 库的版本不兼容导致的。\n1. 对于 `num_classes` 错误：尝试安装特定版本 `pip install timm==0.3.2`。\n2. 对于 `in_chans` 错误：可能是旧版 `timm` (0.3.2) 导致，尝试升级至 `timm==0.4.12` 或更高版本可解决。\n3. 如果更新代码后仍报错，请检查 `requirements.txt` 中的版本约束，或尝试卸载 timm 看是否使用内置实现。","https:\u002F\u002Fgithub.com\u002Fpengzhiliang\u002FMAE-pytorch\u002Fissues\u002F2",{"id":116,"question_zh":117,"answer_zh":118,"source_url":119},30622,"复现 MAE 预训练需要什么样的硬件配置（显卡数量和显存）？","为了与论文描述的 MAE-ViT-Base 配置一致（总 batch size 4096），推荐以下两种方案：\n1. 使用 8 张 RTX 3090 或 V100 显卡，单卡 batch size 设为 512。\n2. 使用 64 张 A100 (40G) 显卡，单卡 batch size 设为 32。\n注意：当 batch size 设为 512 时，单张显卡显存占用约为 30GB。","https:\u002F\u002Fgithub.com\u002Fpengzhiliang\u002FMAE-pytorch\u002Fissues\u002F13",{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},30623,"进行可视化（Visualization）时加载模型失败，应该加载预训练权重还是微调后的权重？","这取决于可视化的目的：\n1. 如果想查看掩码图像建模（Masked Image Modeling）的重建效果（即像素值重建），应加载**预训练阶段**的模型权重。\n2. 如果想评估下游任务（如图像分类）的性能或特征，应加载在下游任务上**微调后**的模型权重。微调是评估预训练质量的定量方法。","https:\u002F\u002Fgithub.com\u002Fpengzhiliang\u002FMAE-pytorch\u002Fissues\u002F94",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},30624,"代码中哪里实现了冻结部分模块（Partial Fine-tuning）的功能？","当前仓库的实现中，端到端的微调过程默认**不需要冻结任何块\u002F层**（参考 BEiT 和 MAE 论文做法）。\n但是，不同块的学习率（LR）是不同的，具体的学习率分配逻辑可以在 `optim_factory.py` 文件中找到。\n如果需要手动冻结特定块，需要在模型类的 `__init__` 函数中自行添加冻结代码。","https:\u002F\u002Fgithub.com\u002Fpengzhiliang\u002FMAE-pytorch\u002Fissues\u002F70",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},30625,"提供的检查点（checkpoints）中缺少位置编码（positional embedding），导致无法在更高分辨率下进行推理或微调，如何解决？","由于检查点未存储位置编码，在改变分辨率时需要手动进行位置插值。可以使用以下逻辑作为变通方案（替换 `run_class_finetuning.py` 中的相关加载代码）：\n1. 获取原始位置数 `old_n_positions` (例如 224\u002F16 的平方)。\n2. 如果模型当前的 `pos_embed` 形状与预期不符，使用正弦编码表生成旧的位置编码。\n3. 分离出类别 token（如果有）和位置 token。\n4. 对位置 token 进行双线性插值，从原始尺寸插值到新的 Patch 数量对应的尺寸。\n5. 将插值后的位置编码重新赋值给模型。","https:\u002F\u002Fgithub.com\u002Fpengzhiliang\u002FMAE-pytorch\u002Fissues\u002F26",[]]