[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-subho406--OmniNet":3,"tool-subho406--OmniNet":61},[4,18,26,36,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},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",157379,2,"2026-04-15T23:32:42",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"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,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"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",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":78,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":87,"forks":88,"last_commit_at":89,"license":90,"difficulty_score":10,"env_os":91,"env_gpu":92,"env_ram":93,"env_deps":94,"category_tags":101,"github_topics":104,"view_count":32,"oss_zip_url":90,"oss_zip_packed_at":90,"status":17,"created_at":115,"updated_at":116,"faqs":117,"releases":133},7876,"subho406\u002FOmniNet","OmniNet","Official Pytorch implementation of \"OmniNet: A unified architecture for multi-modal multi-task learning\" | Authors: Subhojeet Pramanik, Priyanka Agrawal, Aman Hussain ","OmniNet 是一款基于 PyTorch 实现的开源深度学习架构，旨在通过单一模型统一处理多模态、多任务的学习挑战。它解决了传统人工智能系统通常只能针对特定数据类型（如仅文本或仅图像）和单一任务进行训练的局限，打破了不同领域数据之间的壁垒。\n\n该工具特别适合 AI 研究人员和开发者使用，尤其是那些希望探索跨模态学习、构建通用智能系统或需要同时处理文本、图像和视频数据的团队。无论是进行视觉问答、图像描述生成、视频动作识别，还是词性标注，OmniNet 都能在一个框架内高效完成。\n\n其核心技术亮点在于独特的“神经外设”与“中央神经处理器（CNP）”架构。神经外设负责将来自不同领域的输入编码为统一的时空表示，而基于 Transformer 的 CNP 则作为核心引擎，实现通用的时空编码与多任务解码。这种设计不仅支持异步多任务训练，还能利用多 GPU 并行加速，显著提升了模型在复杂现实场景中的适应能力和训练效率。对于追求模型泛化能力和架构创新的技术人员而言，OmniNet 提供了一个极具价值的研究基线和实践工具。","# OmniNet: A unified architecture for multi-modal multi-task learning\n\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202.0-blue.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FApache-2.0)\n\n*OmniNet* is a unified and extended version of the Transformer architecture for multi-modal multi-task learning. A single OmniNet architecture can encode multiple inputs from almost any real-life domain (text, image, video) and is capable of asynchronous multi-task learning across a wide range of tasks. The *OmniNet* architecture consists multiple sub-networks called the neural peripherals, used to encode domain specific inputs as spatio-temporal representations, connected to a common central neural network called the Central Neural Processor (CNP). The CNP implements a Transformer based universal spatio-temporal encoder and a multi-task decoder. \n\nThis repository contains the official Pytorch implementation for \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F1907.07804\">OmniNet: A unified architecture for multi-modal multi-task learning\u003C\u002Fa> (Pramanik et al). The paper demonstrates a single instance of *OmniNet* jointly trained to perform the tasks of part-of-speech tagging, image captioning, visual question answering and video activity recognition. We also open source the pre-trained models to be able to reproduce the results demonstrated in the paper.\n\n\u003Cp align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsubho406_OmniNet_readme_d31bc782c9d3.png\" width=\"700\">\n\u003C\u002Fp>\n\n## Setup\n\n**Requirements**\n- Minimum hardware: 8GB RAM + NVIDIA GPU (8GB+)\n- Linux based OS\n- NVIDIA driver 410+\n- [Anaconda Package Manager](https:\u002F\u002Fanaconda.org\u002F)\n- rest will be installed by anaconda (see below)\n\n**Installation**\n1. Clone the repo.\n2. Create & activate an environment using the provided file. (This will install all required dependencies including cuda and cudnn)\n```\n$ conda env create -f environment.yml\n$ source activate omninet\n```\n\n**Download datasets**\n\nA download script has been provided to download and preprocess all training and test data for all tasks (except PENN POS tagging) mentioned in the paper. The downloaded data is stored in \u002Fdata folder. \n\n```\n$ python scripts\u002Finit_setup.py\n```\n## Pretrained models\n\nPretrained models for the various single and multi-task models demonstrated in the paper can be obtained from the following URLs and can be used to evaluate the performance of the architecture or perform prediction on external data.\n\n1. VQA: https:\u002F\u002Fstorage.googleapis.com\u002Fomninet\u002F200k_vqa.zip\n2. Captioning: https:\u002F\u002Fstorage.googleapis.com\u002Fomninet\u002F280k_caption.zip\n3. HMDB: https:\u002F\u002Fstorage.googleapis.com\u002Fomninet\u002F11k_hmdb.zip\n4. PENN: https:\u002F\u002Fstorage.googleapis.com\u002Fomninet\u002F70k_penn.zip\n5. VQA+HMDB+Captioning+PENN: https:\u002F\u002Fstorage.googleapis.com\u002Fomninet\u002Fall_15k.zip\n\n## Training\n\nThe training script includes subroutines to train the model on the COCO Image captioning, VQA, HMDB action recognition, and PENN POS tagging. First, download all required datasets using `scripts\u002Finit_setup.py` as described above. The training script can be used to train both on a single task and asynchronously on multiple different tasks. It implements multi-GPU hogwild training to train a single model across multiple GPUs on multiple tasks. \n\n```\n$ python train.py \u003Cno. of training iterations> \u003Ctask list> \u003Cbatch sizes> --n_gpus \u003Cno. of GPUs> \\\n--save_interval \u003Csave interval> --eval_interval \u003Ceval interval>\n```\n\nThe list of possible supported tasks are `vqa`, `hmdb`, `caption` and `penn`. (The data downloader in init_setup.py, however, does not download datasets for PENN tagging and it is required to manually download and preprocess PENN POS tagging dataset to train the model for POS tagging.)\n\nFor example, to train the model on a single task of Visual Question Answering for 100000 iterations and batch size of 128, use:\n\n```\n$ python train.py 100000 vqa 128 --n_gpus 1 --save_interval 500 --eval_interval 500\n```\n\nTo train the model asynchronously on multiple tasks specify the list of tasks and batch sizes separated by a comma. For example, to train a single model jointly on VQA, HMDB, and COCO captioning with batch sizes 128, 64, 128 across three GPUs use:\n\n```\n$ python train.py 100000 vqa,hmdb,caption 128,64,128 --n_gpus 3 --save_interval 500 --eval_interval 500\n```\nWhen training on multiple tasks together it is recommended to use a multi-GPU system, or reduce batch size for each task if you run out of GPU memory. \n\n## Evaluation\n\nThe evaluation script can be used to evaluate a pretrained model for any given task. To evaluate the architecture on any of the model file obtained from the above pretrained model URLs, extract the downloaded model zip file and use the script below:\n\n```\n$ python evaluate.py \u003Ctask name> \u003Cpath to model.pth file> --batch_size \u003Cbatch size> \n```\nFollowing `\u003Ctask name>` are supported:\n - `vqa` : Calculates scores on VQA valid set\n - `hmdb` : Calculates accuracy on HMDB train\u002Ftest split 1\n - `caption` : Calculates score on COCO valid set\n\n## Prediction\n\nThe prediction script can be used to perform prediction on any external data for all the tasks mentioned in the paper and can also be used to perform zero-shot prediction on untrained tasks. The possible tasks are `vqa`, `hmdb`, `caption` and `penn`. The current prediction script only implements greedy decoding and we plan to implement beam search in the future for improved performance. Download and extract the pre-trained multi-model from the URL mentioned above.\n\n```\n$ wget https:\u002F\u002Fstorage.googleapis.com\u002Fomninet\u002Fall_15k.zip\n$ unzip all_15k.zip\n```\n### Prediction on pre-trained tasks:\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsubho406_OmniNet_readme_207c932eb697.png\" width=\"800\">\n\n**POS tagging**\n```\n$ python predict.py model.pth penn --text \"there is no dark side of the moon really, as a matter of fact its all dark\"\nPOS tagging Prediction:  EX VBZ RB VBN IN DT NN IN NN PRP$ DT NN IN NN PRP$ DT JJ\n```\n**Image captioning**\n```\n$ python predict.py model.pth caption --image sample_data\u002Fkids-hand-signals.jpg \nCaption Prediction: a person riding a bike on a city street\n```\n\n**Visual Question Answering**\n```\n$ python predict.py model.pth vqa --image sample_data\u002Fkids-hand-signals.jpg --text \"What is the kid driving?\"\nVQA Prediction: bike\n```\n\n**Video action recognition**\n```\n$ python predict.py model.pth hmdb --video sample_data\u002Friding_horse.avi \nAction recognition prediction: ride_horse\n```\n\n### Prediction on untrained tasks (towards zero-shot ML):\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsubho406_OmniNet_readme_38d1e8dd23ec.gif\" width=\"425\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsubho406_OmniNet_readme_21d729effbcd.png\" width=\"425\">\n\nDue to the shared multi-modal representation learning architecture of the Central Neural Processor, *OmniNet* can also be used for zero-shot prediction for tasks it was never trained on. For example, the multi-model architecture can also be used for video captioning and video question answering even though the model was never trained on those tasks. The results below demonstrate the results of video captioning and video QA on a sample horse riding video. (Note: Results of zero-shot learning are still experimental and not always meaningful)\n\n**Video captioning**\n\nThe same prediction script can be used for video captioning. But instead of providing an image we provide a raw video file for prediction:\n\n```\n$ python predict.py model.pth caption --video sample_data\u002Friding_horse.avi\nCaption Prediction: a person riding a horse on a beach near a body of water.\n```\n\n**Video QA**\n```\n$ python predict.py model.pth vqa --video sample_data\u002Friding_horse.avi --text \"What is he doing?\"\nVQA Prediction: riding horse\n```\n```\n$ python predict.py model.pth vqa --video sample_data\u002Friding_horse.avi --text \"Is there a man or a woman?\"\nVQA Prediction: man\n```\n```\n$ python predict.py model.pth vqa --video sample_data\u002Friding_horse.avi --text \"What color is the horse?\"\nVQA Prediction: brown\n```\n\n## Authors\n1. Subhojeet Pramanik (IBM Watson) \u003Cemail@subho.in>\n2. Priyanka Agrawal (IBM Research) \u003Cpagrawal.ml@gmail.com>\n3. Aman Hussain (University of Amsterdam) \u003Cemail@amanhussain.com>\n4. Sayan Dutta \u003Cduttasayan.7@gmail.com>\n\n## Citation\nWe welcome the research community to extend our work. If you find this code useful, please cite our paper: \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F1907.07804\">OmniNet: A unified architecture for multi-modal multi-task learning\u003C\u002Fa>\n```\n@ARTICLE{2019arXiv190707804P,\n       author = {{Pramanik}, Subhojeet and {Agrawal}, Priyanka and {Hussain}, Aman},\n        title = \"{OmniNet: A unified architecture for multi-modal multi-task learning}\",\n      journal = {arXiv e-prints},\n     keywords = {Computer Science - Machine Learning, Computer Science - Computation and Language, Computer Science - Computer Vision and Pattern Recognition, Computer Science - Neural and Evolutionary Computing, Statistics - Machine Learning},\n         year = \"2019\",\n        month = \"Jul\",\n          eid = {arXiv:1907.07804},\n        pages = {arXiv:1907.07804},\narchivePrefix = {arXiv},\n       eprint = {1907.07804},\n primaryClass = {cs.LG},\n       adsurl = {https:\u002F\u002Fui.adsabs.harvard.edu\u002Fabs\u002F2019arXiv190707804P},\n      adsnote = {Provided by the SAO\u002FNASA Astrophysics Data System}\n}\n```\n","# OmniNet：多模态多任务学习的统一架构\n\n[![许可证](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202.0-blue.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FApache-2.0)\n\n*OmniNet* 是一种用于多模态多任务学习的统一且扩展版 Transformer 架构。单一的 OmniNet 架构可以编码来自几乎任何现实世界领域的多种输入（文本、图像、视频），并能够在广泛的任务范围内进行异步多任务学习。*OmniNet* 架构由多个称为神经外设的子网络组成，这些子网络用于将特定领域的输入编码为时空表示，并连接到一个名为中央神经处理器（CNP）的通用中央神经网络。CNP 实现了一个基于 Transformer 的通用时空编码器和一个多任务解码器。\n\n本仓库包含 \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F1907.07804\">OmniNet：多模态多任务学习的统一架构\u003C\u002Fa>（Pramanik 等人）的官方 PyTorch 实现。论文展示了一个 *OmniNet* 实例，该实例经过联合训练，能够同时执行词性标注、图像字幕生成、视觉问答和视频动作识别等任务。我们还开源了预训练模型，以便复现论文中展示的结果。\n\n\u003Cp align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsubho406_OmniNet_readme_d31bc782c9d3.png\" width=\"700\">\n\u003C\u002Fp>\n\n## 设置\n\n**要求**\n- 最低硬件：8GB 内存 + NVIDIA GPU（8GB 以上）\n- 基于 Linux 的操作系统\n- NVIDIA 驱动程序 410+\n- [Anaconda 包管理器](https:\u002F\u002Fanaconda.org\u002F)\n- 其余依赖将由 Anaconda 自动安装（见下文）\n\n**安装**\n1. 克隆代码库。\n2. 使用提供的文件创建并激活环境。（这将安装所有必需的依赖项，包括 CUDA 和 cuDNN）\n```\n$ conda env create -f environment.yml\n$ source activate omninet\n```\n\n**下载数据集**\n\n我们提供了一个下载脚本，用于下载并预处理论文中提到的所有任务（除 PENN 词性标注外）的训练和测试数据。下载的数据将存储在 \u002Fdata 文件夹中。\n\n```\n$ python scripts\u002Finit_setup.py\n```\n## 预训练模型\n\n论文中展示的各种单任务和多任务模型的预训练模型可以从以下 URL 获取，可用于评估架构性能或对外部数据进行预测。\n\n1. VQA：https:\u002F\u002Fstorage.googleapis.com\u002Fomninet\u002F200k_vqa.zip\n2. 字幕生成：https:\u002F\u002Fstorage.googleapis.com\u002Fomninet\u002F280k_caption.zip\n3. HMDB：https:\u002F\u002Fstorage.googleapis.com\u002Fomninet\u002F11k_hmdb.zip\n4. PENN：https:\u002F\u002Fstorage.googleapis.com\u002Fomninet\u002F70k_penn.zip\n5. VQA+HMDB+字幕生成+PENN：https:\u002F\u002Fstorage.googleapis.com\u002Fomninet\u002Fall_15k.zip\n\n## 训练\n\n训练脚本包含用于在 COCO 图像字幕生成、VQA、HMDB 动作识别以及 PENN 词性标注任务上训练模型的子程序。首先，请按照上述说明使用 `scripts\u002Finit_setup.py` 下载所有所需数据集。训练脚本既可以用于单任务训练，也可以用于多个不同任务的异步训练。它实现了多 GPU 的 hogwild 训练模式，允许在多个 GPU 上同时训练单个模型以完成多项任务。\n\n```\n$ python train.py \u003C训练迭代次数> \u003C任务列表> \u003C批大小> --n_gpus \u003CGPU 数量> \\\n--save_interval \u003C保存间隔> --eval_interval \u003C评估间隔>\n```\n\n支持的任务列表包括 `vqa`、`hmdb`、`caption` 和 `penn`。（然而，init_setup.py 中的数据下载工具不会下载 PENN 标注的数据集，因此需要手动下载并预处理 PENN 词性标注数据集，才能训练模型进行词性标注。）\n\n例如，要在视觉问答这一单一任务上训练模型，进行 100,000 次迭代，批大小为 128：\n\n```\n$ python train.py 100000 vqa 128 --n_gpus 1 --save_interval 500 --eval_interval 500\n```\n\n若要异步训练多个任务，只需用逗号分隔任务列表和对应的批大小即可。例如，在三个 GPU 上联合训练 VQA、HMDB 和 COCO 字幕生成任务，批大小分别为 128、64 和 128：\n\n```\n$ python train.py 100000 vqa,hmdb,caption 128,64,128 --n_gpus 3 --save_interval 500 --eval_interval 500\n```\n\n当同时训练多个任务时，建议使用多 GPU 系统；如果 GPU 显存不足，则可适当降低每个任务的批大小。\n\n## 评估\n\n评估脚本可用于评估任何给定任务的预训练模型。要评估从上述预训练模型链接下载的任意模型文件，需先解压下载的模型压缩包，然后运行以下脚本：\n\n```\n$ python evaluate.py \u003C任务名称 > \u003C model.pth 文件路径 > --batch_size \u003C 批大小 >\n```\n\n支持的任务名称如下：\n - `vqa`：计算 VQA 验证集上的得分\n - `hmdb`：计算 HMDB 第一版训练\u002F测试分割上的准确率\n - `caption`：计算 COCO 验证集上的得分\n\n## 预测\n\n预测脚本可用于对论文中提及的所有任务的外部数据进行预测，也可用于对未训练过的任务进行零样本预测。支持的任务包括 `vqa`、`hmdb`、`caption` 和 `penn`。当前的预测脚本仅实现贪心解码，未来我们将引入束搜索以提升性能。请从上述 URL 下载并解压多任务预训练模型。\n\n```\n$ wget https:\u002F\u002Fstorage.googleapis.com\u002Fomninet\u002Fall_15k.zip\n$ unzip all_15k.zip\n```\n\n### 对预训练任务的预测：\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsubho406_OmniNet_readme_207c932eb697.png\" width=\"800\">\n\n**词性标注**\n```\n$ python predict.py model.pth penn --text \"there is no dark side of the moon really, as a matter of fact its all dark\"\n词性标注预测：EX VBZ RB VBN IN DT NN IN NN PRP$ DT NN IN NN PRP$ DT JJ\n```\n\n**图像字幕生成**\n```\n$ python predict.py model.pth caption --image sample_data\u002Fkids-hand-signals.jpg \n字幕生成预测：一个人正在城市街道上骑自行车\n```\n\n**视觉问答**\n```\n$ python predict.py model.pth vqa --image sample_data\u002Fkids-hand-signals.jpg --text \"孩子在驾驶什么？\"\n视觉问答预测：自行车\n```\n\n**视频动作识别**\n```\n$ python predict.py model.pth hmdb --video sample_data\u002Friding_horse.avi \n动作识别预测：骑马\n```\n\n### 未训练任务上的预测（迈向零样本机器学习）：\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsubho406_OmniNet_readme_38d1e8dd23ec.gif\" width=\"425\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsubho406_OmniNet_readme_21d729effbcd.png\" width=\"425\">\n\n由于中央神经处理器采用了共享的多模态表征学习架构，*OmniNet* 也可以用于对其从未训练过的任务进行零样本预测。例如，尽管该模型从未在这些任务上进行过训练，但其多模态架构仍可用于视频字幕生成和视频问答。以下结果展示了对一段骑马视频进行视频字幕生成和视频问答的示例。（注：零样本学习的结果目前仍处于实验阶段，并非总是具有实际意义）\n\n**视频字幕生成**\n\n同样的预测脚本也可用于视频字幕生成。不过，此时我们不再提供图像，而是直接提供原始视频文件进行预测：\n\n```\n$ python predict.py model.pth caption --video sample_data\u002Friding_horse.avi\n字幕预测：一个人在靠近水域的海滩上骑马。\n```\n\n**视频问答**\n```\n$ python predict.py model.pth vqa --video sample_data\u002Friding_horse.avi --text \"他在做什么？\"\n视频问答预测：骑马\n```\n```\n$ python predict.py model.pth vqa --video sample_data\u002Friding_horse.avi --text \"里面是男人还是女人？\"\n视频问答预测：男人\n```\n```\n$ python predict.py model.pth vqa --video sample_data\u002Friding_horse.avi --text \"这匹马是什么颜色的？\"\n视频问答预测：棕色\n```\n\n## 作者\n1. Subhojeet Pramanik（IBM Watson）\u003Cemail@subho.in>\n2. Priyanka Agrawal（IBM Research）\u003Cpagrawal.ml@gmail.com>\n3. Aman Hussain（阿姆斯特丹大学）\u003Cemail@amanhussain.com>\n4. Sayan Dutta \u003Cduttasayan.7@gmail.com>\n\n## 引用\n我们欢迎研究界进一步拓展我们的工作。如果您觉得这段代码有用，请引用我们的论文：\u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F1907.07804\">OmniNet：一种用于多模态多任务学习的统一架构\u003C\u002Fa>\n```\n@ARTICLE{2019arXiv190707804P,\n       author = {{Pramanik}, Subhojeet and {Agrawal}, Priyanka and {Hussain}, Aman},\n        title = \"{OmniNet: 一种用于多模态多任务学习的统一架构}\",\n      journal = {arXiv e-prints},\n     keywords = {计算机科学——机器学习、计算机科学——计算与语言、计算机科学——计算机视觉与模式识别、计算机科学——神经与进化计算、统计学——机器学习},\n         year = \"2019\",\n        month = \"7月\",\n          eid = {arXiv:1907.07804},\n        pages = {arXiv:1907.07804},\narchivePrefix = {arXiv},\n       eprint = {1907.07804},\n primaryClass = {cs.LG},\n       adsurl = {https:\u002F\u002Fui.adsabs.harvard.edu\u002Fabs\u002F2019arXiv190707804P},\n      adsnote = {由SAO\u002FNASA天体物理数据系统提供}\n}\n```","# OmniNet 快速上手指南\n\nOmniNet 是一个用于多模态多任务学习的统一架构，基于 Transformer 扩展而成。单个模型即可同时处理文本、图像和视频输入，并支持异步多任务训练（如词性标注、图像描述、视觉问答和视频动作识别）。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下硬件和软件要求：\n\n*   **操作系统**: Linux\n*   **内存**: 至少 8GB RAM\n*   **GPU**: NVIDIA GPU (显存 8GB+)\n*   **驱动**: NVIDIA Driver 410+\n*   **包管理器**: [Anaconda](https:\u002F\u002Fanaconda.org\u002F)\n\n> **注意**：本项目依赖 CUDA 和 cuDNN，后续安装步骤将通过 Conda 自动配置。\n\n## 安装步骤\n\n### 1. 克隆仓库\n```bash\ngit clone \u003Crepo_url>\ncd \u003Crepo_directory>\n```\n*(请将 `\u003Crepo_url>` 和 `\u003Crepo_directory>` 替换为实际的项目地址和目录名)*\n\n### 2. 创建并激活环境\n使用提供的 `environment.yml` 文件创建隔离环境，该操作会自动安装 PyTorch、CUDA 及其他依赖项：\n```bash\nconda env create -f environment.yml\nsource activate omninet\n```\n\n### 3. 下载数据集\n运行初始化脚本以下载并预处理论文中提及的大部分任务数据（除 PENN 词性标注外），数据将保存至 `\u002Fdata` 目录：\n```bash\npython scripts\u002Finit_setup.py\n```\n*注：若需训练 PENN 词性标注任务，需手动下载并预处理该数据集。*\n\n## 基本使用\n\n以下展示如何使用预训练模型进行最简单的**预测（Prediction）**操作。\n\n### 1. 下载预训练模型\n下载包含所有任务的多任务预训练模型并解压：\n```bash\nwget https:\u002F\u002Fstorage.googleapis.com\u002Fomninet\u002Fall_15k.zip\nunzip all_15k.zip\n```\n\n### 2. 运行预测示例\nOmniNet 支持对未训练过的任务进行零样本（Zero-shot）预测。以下是几个典型用例：\n\n**图像描述生成 (Image Captioning)**\n```bash\npython predict.py model.pth caption --image sample_data\u002Fkids-hand-signals.jpg \n```\n*输出示例：a person riding a bike on a city street*\n\n**视觉问答 (Visual Question Answering)**\n```bash\npython predict.py model.pth vqa --image sample_data\u002Fkids-hand-signals.jpg --text \"What is the kid driving?\"\n```\n*输出示例：bike*\n\n**视频动作识别 (Video Action Recognition)**\n```bash\npython predict.py model.pth hmdb --video sample_data\u002Friding_horse.avi \n```\n*输出示例：ride_horse*\n\n**零样本视频描述 (Zero-shot Video Captioning)**\n*即使模型未在视频描述任务上专门训练，也可尝试直接预测：*\n```bash\npython predict.py model.pth caption --video sample_data\u002Friding_horse.avi\n```\n*输出示例：a person riding a horse on a beach near a body of water.*\n\n---\n*如需进行训练或评估，请参考官方文档中的 `train.py` 和 `evaluate.py` 使用说明。*","某智能内容审核团队需要构建一个系统，同时处理用户上传的视频、图片及伴随文本，以完成活动识别、图像描述生成、视觉问答及文本词性标注等多项任务。\n\n### 没有 OmniNet 时\n- **架构冗余严重**：团队需分别为视频、图像和文本维护四套独立的深度学习模型，导致代码库庞大且难以统一更新。\n- **资源消耗巨大**：多模型并行推理占用了大量 GPU 显存，硬件成本高昂，且在边缘设备上几乎无法部署。\n- **模态融合困难**：不同任务间的数据特征无法共享，模型难以利用视频中的动作信息辅助理解相关的文本描述，跨模态协同能力弱。\n- **训练流程繁琐**：每个模型需单独准备数据管道并进行串行训练，迭代周期长，难以实现多任务的异步联合优化。\n\n### 使用 OmniNet 后\n- **统一架构部署**：OmniNet 通过单一中央神经处理器（CNP）整合了所有模态输入，用一套代码即可支撑全部四项任务，极大简化了工程维护。\n- **计算效率提升**：共享的时空编码机制显著降低了显存占用，使得在单张显卡上并发处理多模态任务成为可能，大幅降低硬件门槛。\n- **跨模态智能增强**：OmniNet 的神经外设将不同域数据映射为统一的时空表示，使模型能自动关联视频动作与文本语义，提升了复杂场景下的判断准确率。\n- **异步联合训练**：支持多任务异步“霍格沃兹”训练模式，团队可一次性利用多卡资源同步优化所有任务，模型迭代速度提升数倍。\n\nOmniNet 通过其统一的 Transformer 架构，将原本割裂的多模态多任务流程整合为高效、低耗且具备强协同能力的单一智能系统。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsubho406_OmniNet_207c932e.png","subho406","Subhojeet Pramanik","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fsubho406_4c006ce1.jpg","Research at softmax.com","Softmax.com","San Francisco, California","email@subho.in","subho_in","www.subho.in","https:\u002F\u002Fgithub.com\u002Fsubho406",[83],{"name":84,"color":85,"percentage":86},"Python","#3572A5",100,513,59,"2025-11-19T11:20:05",null,"Linux","必需，NVIDIA GPU，显存 8GB+，需安装 NVIDIA 驱动 410+（具体 CUDA\u002FcuDNN 版本由 conda 环境自动安装）","最低 8GB",{"notes":95,"python":96,"dependencies":97},"必须使用 Anaconda 包管理器创建环境；训练多任务时建议使用多 GPU 系统或减小批次大小以防显存溢出；PENN POS  tagging 数据集需手动下载和预处理，脚本默认不包含该数据。","未说明（通过 environment.yml 由 Conda 管理）",[98,99,100],"PyTorch","CUDA","cuDNN",[14,102,103,35,15],"其他","视频",[105,106,107,108,109,110,111,112,113,114],"machine-learning","deep-learning","neural-network","artificial-intelligence","transformer","nlp","image-captioning","video-recognition","multitask-learning","multimodal-learning","2026-03-27T02:49:30.150509","2026-04-16T08:17:10.222744",[118,123,128],{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},35275,"运行 predict.py 时遇到 'RuntimeError: Expected object of scalar type Byte but got scalar type Bool' 错误，如何解决？","该问题通常是因为使用了过旧版本的 PyTorch。请确保安装的 PyTorch 版本 >= 1.0.1。建议通过以下命令重新创建环境以匹配项目依赖：\n$ conda env create -f environment.yml\n$ source activate omninet","https:\u002F\u002Fgithub.com\u002Fsubho406\u002FOmniNet\u002Fissues\u002F2",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},35276,"预训练模型的演示网站无法访问，显示 'UserProjectAccountProblem' 或账单错误，怎么办？","这通常是由于项目托管方的账单账户暂时欠费导致的临时性问题。维护者在收到通知并结清欠款后通常会很快修复。如果遇到此问题，请稍后再试或关注项目更新，无需在本地进行特殊配置。","https:\u002F\u002Fgithub.com\u002Fsubho406\u002FOmniNet\u002Fissues\u002F5",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},35277,"代码库中在哪里可以找到 model.train() 方法的具体实现？","model.train() 并不是该项目自定义的方法，而是 PyTorch 框架的标准内置函数。它用于将模型切换到训练模式（与 eval() 评估模式相对）。您不需要在代码库中寻找其定义，直接在 PyTorch 模型实例上调用即可使用。","https:\u002F\u002Fgithub.com\u002Fsubho406\u002FOmniNet\u002Fissues\u002F4",[]]