[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-learnables--learn2learn":3,"tool-learnables--learn2learn":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 真正成长为懂上",150037,2,"2026-04-10T23:33:47",[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":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":75,"owner_location":75,"owner_email":75,"owner_twitter":75,"owner_website":75,"owner_url":76,"languages":77,"stars":90,"forks":91,"last_commit_at":92,"license":93,"difficulty_score":94,"env_os":95,"env_gpu":95,"env_ram":95,"env_deps":96,"category_tags":104,"github_topics":105,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":116,"updated_at":117,"faqs":118,"releases":148},6551,"learnables\u002Flearn2learn","learn2learn","A PyTorch Library for Meta-learning Research","learn2learn 是一个基于 PyTorch 构建的开源库，专为元学习（Meta-learning）研究设计。它旨在解决该领域研究中两大核心痛点：一是帮助研究者快速验证新想法，实现高效的原型开发；二是确保实验过程的可复现性，让不同算法能在公平、标准化的基准下进行评估。\n\n这款工具非常适合从事人工智能算法研究的科研人员、研究生以及希望深入探索小样本学习或元强化学习的开发者使用。learn2learn 不仅提供了统一的接口来构建新的算法和数据域，还内置了多种经典元学习算法（如 MAML、ProtoNets 等）的高质量实现和标准数据集。其独特的技术亮点在于强大的模块化设计：通过 `learn2learn.data` 可轻松将任意 PyTorch 数据集转换为少样本任务；利用 `learn2learn.algorithms` 中的高级封装，仅需几行代码即可调用复杂算法；同时支持可微分优化与超梯度下降，为自定义优化器研究提供了便利。此外，它能无缝兼容 torchvision 等主流 PyTorch 生态库，让用户在熟悉的环境中流畅开展前沿研究。","\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flearnables_learn2learn_readme_f24e2068e8f6.png\" height=\"120px\" \u002F>\u003C\u002Fp>\n\n--------------------------------------------------------------------------------\n\n![Test Status](https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002Fworkflows\u002FTesting\u002Fbadge.svg?branch=master)\n[![arXiv](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-2008.12284-b31b1b.svg)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2008.12284)\n\nlearn2learn is a software library for meta-learning research.\n\nlearn2learn builds on top of PyTorch to accelerate two aspects of the meta-learning research cycle:\n\n* *fast prototyping*, essential in letting researchers quickly try new ideas, and\n* *correct reproducibility*, ensuring that these ideas are evaluated fairly.\n\nlearn2learn provides low-level utilities and unified interface to create new algorithms and domains, together with high-quality implementations of existing algorithms and standardized benchmarks.\nIt retains compatibility with [torchvision](https:\u002F\u002Fpytorch.org\u002Fvision\u002F), [torchaudio](https:\u002F\u002Fpytorch.org\u002Faudio\u002F), [torchtext](https:\u002F\u002Fpytorch.org\u002Ftext\u002F), [cherry](http:\u002F\u002Fcherry-rl.net\u002F), and any other PyTorch-based library you might be using.\n\nTo learn more, see our whitepaper: [arXiv:2008.12284](https:\u002F\u002Farxiv.org\u002Fabs\u002F2008.12284)\n\n**Overview**\n\n* [`learn2learn.data`](http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.data\u002F): `Taskset` and transforms to create few-shot tasks from any PyTorch dataset.\n* [`learn2learn.vision`](http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.vision\u002F): Models, datasets, and benchmarks for computer vision and few-shot learning.\n* [`learn2learn.gym`](http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.gym\u002F): Environment and utilities for meta-reinforcement learning.\n* [`learn2learn.algorithms`](http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.algorithms\u002F): High-level wrappers for existing meta-learning algorithms.\n* [`learn2learn.optim`](http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.optim\u002F): Utilities and algorithms for differentiable optimization and meta-descent.\n\n**Resources**\n\n* Website: [http:\u002F\u002Flearn2learn.net\u002F](http:\u002F\u002Flearn2learn.net\u002F)\n* Documentation: [http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn](http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn)\n* Tutorials: [http:\u002F\u002Flearn2learn.net\u002Ftutorials\u002Fgetting_started\u002F](http:\u002F\u002Flearn2learn.net\u002Ftutorials\u002Fgetting_started\u002F)\n* Examples: [https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002Ftree\u002Fmaster\u002Fexamples](https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002Ftree\u002Fmaster\u002Fexamples)\n* GitHub: [https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002F](https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002F)\n* Slack: [http:\u002F\u002Fslack.learn2learn.net\u002F](http:\u002F\u002Fslack.learn2learn.net\u002F)\n\n## Installation\n\n~~~bash\npip install learn2learn\n~~~\n\n## Snippets & Examples\n\nThe following snippets provide a sneak peek at the functionalities of learn2learn.\n\n### High-level Wrappers\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Few-Shot Learning with MAML\u003C\u002Fb>\u003C\u002Fsummary>\n\nFor more algorithms (ProtoNets, ANIL, Meta-SGD, Reptile, Meta-Curvature, KFO) refer to the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002Ftree\u002Fmaster\u002Fexamples\u002Fvision\">examples\u003C\u002Fa> folder.\nMost of them can be implemented with with the `GBML` wrapper. (\u003Ca href=\"http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.algorithms\u002F#gbml\">documentation\u003C\u002Fa>).\n    \n~~~python\nmaml = l2l.algorithms.MAML(model, lr=0.1)\nopt = torch.optim.SGD(maml.parameters(), lr=0.001)\nfor iteration in range(10):\n    opt.zero_grad()\n    task_model = maml.clone()  # torch.clone() for nn.Modules\n    adaptation_loss = compute_loss(task_model)\n    task_model.adapt(adaptation_loss)  # computes gradient, update task_model in-place\n    evaluation_loss = compute_loss(task_model)\n    evaluation_loss.backward()  # gradients w.r.t. maml.parameters()\n    opt.step()\n~~~\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Meta-Descent with Hypergradient\u003C\u002Fb>\u003C\u002Fsummary>\n    \nLearn any kind of optimization algorithm with the `LearnableOptimizer`. (\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002Ftree\u002Fmaster\u002Fexamples\u002Foptimization\">example\u003C\u002Fa> and \u003Ca href=\"http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.optim\u002F#learnableoptimizer\">documentation\u003C\u002Fa>)\n\n~~~python\nlinear = nn.Linear(784, 10)\ntransform = l2l.optim.ModuleTransform(l2l.nn.Scale)\nmetaopt = l2l.optim.LearnableOptimizer(linear, transform, lr=0.01)  # metaopt has .step()\nopt = torch.optim.SGD(metaopt.parameters(), lr=0.001)  # metaopt also has .parameters()\n\nmetaopt.zero_grad()\nopt.zero_grad()\nerror = loss(linear(X), y)\nerror.backward()\nopt.step()  # update metaopt\nmetaopt.step()  # update linear\n~~~\n\u003C\u002Fdetails>\n\n### Learning Domains\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Custom Few-Shot Dataset\u003C\u002Fb>\u003C\u002Fsummary>\n\nMany standardized datasets (Omniglot, mini-\u002Ftiered-ImageNet, FC100, CIFAR-FS) are readily available in `learn2learn.vision.datasets`.\n(\u003Ca href=\"http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.vision\u002F#learn2learnvisiondatasets\">documentation\u003C\u002Fa>)\n\n~~~python\ndataset = l2l.data.MetaDataset(MyDataset())  # any PyTorch dataset\ntransforms = [  # Easy to define your own transform\n    l2l.data.transforms.NWays(dataset, n=5),\n    l2l.data.transforms.KShots(dataset, k=1),\n    l2l.data.transforms.LoadData(dataset),\n]\ntaskset = Taskset(dataset, transforms, num_tasks=20000)\nfor task in taskset:\n    X, y = task\n    # Meta-train on the task\n~~~\n\u003C\u002Fdetails>\n\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Environments and Utilities for Meta-RL\u003C\u002Fb>\u003C\u002Fsummary>\n\nParallelize your own meta-environments with `AsyncVectorEnv`, or use the standardized ones.\n(\u003Ca href=\"http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.gym\u002F#metaenv\">documentation\u003C\u002Fa>)\n\n~~~python\ndef make_env():\n    env = l2l.gym.HalfCheetahForwardBackwardEnv()\n    env = cherry.envs.ActionSpaceScaler(env)\n    return env\n\nenv = l2l.gym.AsyncVectorEnv([make_env for _ in range(16)])  # uses 16 threads\nfor task_config in env.sample_tasks(20):\n    env.set_task(task)  # all threads receive the same task\n    state = env.reset()  # use standard Gym API\n    action = my_policy(env)\n    env.step(action)\n~~~\n\u003C\u002Fdetails>\n\n### Low-Level Utilities\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Differentiable Optimization\u003C\u002Fb>\u003C\u002Fsummary>\n\nLearn and differentiate through updates of PyTorch Modules.\n(\u003Ca href=\"http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.optim\u002F#parameterupdate\">documentation\u003C\u002Fa>)\n    \n~~~python\n\nmodel = MyModel()\ntransform = l2l.optim.KroneckerTransform(l2l.nn.KroneckerLinear)\nlearned_update = l2l.optim.ParameterUpdate(  # learnable update function\n        model.parameters(), transform)\nclone = l2l.clone_module(model)  # torch.clone() for nn.Modules\nerror = loss(clone(X), y)\nupdates = learned_update(  # similar API as torch.autograd.grad\n    error,\n    clone.parameters(),\n    create_graph=True,\n)\nl2l.update_module(clone, updates=updates)\nloss(clone(X), y).backward()  # Gradients w.r.t model.parameters() and learned_update.parameters()\n~~~\n\u003C\u002Fdetails>\n\n## Changelog\n\nA human-readable changelog is available in the [CHANGELOG.md](CHANGELOG.md) file.\n\n## Citation\n\nTo cite the `learn2learn` repository in your academic publications, please use the following reference.\n\n> Arnold, Sebastien M. R., Praateek Mahajan, Debajyoti Datta, Ian Bunner, and Konstantinos Saitas Zarkias. 2020. “learn2learn: A Library for Meta-Learning Research.” arXiv [cs.LG]. http:\u002F\u002Farxiv.org\u002Fabs\u002F2008.12284.\n\nYou can also use the following Bibtex entry.\n\n~~~bib\n@article{Arnold2020-ss,\n  title         = \"learn2learn: A Library for {Meta-Learning} Research\",\n  author        = \"Arnold, S{\\'e}bastien M R and Mahajan, Praateek and Datta,\n                   Debajyoti and Bunner, Ian and Zarkias, Konstantinos Saitas\",\n  month         =  aug,\n  year          =  2020,\n  url           = \"http:\u002F\u002Farxiv.org\u002Fabs\u002F2008.12284\",\n  archivePrefix = \"arXiv\",\n  primaryClass  = \"cs.LG\",\n  eprint        = \"2008.12284\"\n}\n\n~~~\n\n### Acknowledgements & Friends\n\n1. [TorchMeta](https:\u002F\u002Fgithub.com\u002Ftristandeleu\u002Fpytorch-meta) is similar library, with a focus on datasets for supervised meta-learning. \n2. [higher](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fhigher) is a PyTorch library that enables differentiating through optimization inner-loops. While they monkey-patch `nn.Module` to be stateless, learn2learn retains the stateful PyTorch look-and-feel. For more information, refer to [their ArXiv paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F1910.01727).\n3. We are thankful to the following open-source implementations which helped guide the design of learn2learn:\n    * Tristan Deleu's [pytorch-maml-rl](https:\u002F\u002Fgithub.com\u002Ftristandeleu\u002Fpytorch-maml-rl)\n    * Jonas Rothfuss' [ProMP](https:\u002F\u002Fgithub.com\u002Fjonasrothfuss\u002FProMP\u002F)\n    * Kwonjoon Lee's [MetaOptNet](https:\u002F\u002Fgithub.com\u002Fkjunelee\u002FMetaOptNet)\n    * Han-Jia Ye's and Hexiang Hu's [FEAT](https:\u002F\u002Fgithub.com\u002FSha-Lab\u002FFEAT)\n","\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flearnables_learn2learn_readme_f24e2068e8f6.png\" height=\"120px\" \u002F>\u003C\u002Fp>\n\n--------------------------------------------------------------------------------\n\n![测试状态](https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002Fworkflows\u002FTesting\u002Fbadge.svg?branch=master)\n[![arXiv](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-2008.12284-b31b1b.svg)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2008.12284)\n\nlearn2learn 是一个用于元学习研究的软件库。\n\nlearn2learn 基于 PyTorch 构建，旨在加速元学习研究周期中的两个关键方面：\n\n* *快速原型设计*，这对于研究人员迅速尝试新想法至关重要；\n* *正确的可重复性*，确保这些想法能够被公正地评估。\n\nlearn2learn 提供了低层工具和统一的接口，以创建新的算法和领域，同时还包含了现有算法的高质量实现以及标准化的基准测试。它与 [torchvision](https:\u002F\u002Fpytorch.org\u002Fvision\u002F)、[torchaudio](https:\u002F\u002Fpytorch.org\u002Faudio\u002F)、[torchtext](https:\u002F\u002Fpytorch.org\u002Ftext\u002F)、[cherry](http:\u002F\u002Fcherry-rl.net\u002F) 以及其他任何基于 PyTorch 的库都保持兼容。\n\n欲了解更多信息，请参阅我们的白皮书：[arXiv:2008.12284](https:\u002F\u002Farxiv.org\u002Fabs\u002F2008.12284)\n\n**概述**\n\n* [`learn2learn.data`](http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.data\u002F)：`Taskset` 和转换工具，可从任何 PyTorch 数据集创建少样本任务。\n* [`learn2learn.vision`](http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.vision\u002F)：用于计算机视觉和少样本学习的模型、数据集和基准测试。\n* [`learn2learn.gym`](http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.gym\u002F)：用于元强化学习的环境和实用工具。\n* [`learn2learn.algorithms`](http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.algorithms\u002F)：现有元学习算法的高层封装。\n* [`learn2learn.optim`](http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.optim\u002F)：用于可微优化和元下降的工具及算法。\n\n**资源**\n\n* 官网：[http:\u002F\u002Flearn2learn.net\u002F](http:\u002F\u002Flearn2learn.net\u002F)\n* 文档：[http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn](http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn)\n* 教程：[http:\u002F\u002Flearn2learn.net\u002Ftutorials\u002Fgetting_started\u002F](http:\u002F\u002Flearn2learn.net\u002Ftutorials\u002Fgetting_started\u002F)\n* 示例：[https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002Ftree\u002Fmaster\u002Fexamples](https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002Ftree\u002Fmaster\u002Fexamples)\n* GitHub：[https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002F](https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002F)\n* Slack：[http:\u002F\u002Fslack.learn2learn.net\u002F](http:\u002F\u002Fslack.learn2learn.net\u002F)\n\n## 安装\n\n~~~bash\npip install learn2learn\n~~~\n\n## 片段与示例\n\n以下片段将带您一窥 learn2learn 的功能。\n\n### 高层封装\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>使用 MAML 进行少样本学习\u003C\u002Fb>\u003C\u002Fsummary>\n\n如需更多算法（ProtoNets、ANIL、Meta-SGD、Reptile、Meta-Curvature、KFO），请参考 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002Ftree\u002Fmaster\u002Fexamples\u002Fvision\">examples\u003C\u002Fa> 文件夹。大多数算法都可以通过 `GBML` 封装来实现。（\u003Ca href=\"http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.algorithms\u002F#gbml\">文档\u003C\u002Fa>）\n\n~~~python\nmaml = l2l.algorithms.MAML(model, lr=0.1)\nopt = torch.optim.SGD(maml.parameters(), lr=0.001)\nfor iteration in range(10):\n    opt.zero_grad()\n    task_model = maml.clone()  # 对 nn.Module 使用 torch.clone()\n    adaptation_loss = compute_loss(task_model)\n    task_model.adapt(adaptation_loss)  # 计算梯度，并就地更新 task_model\n    evaluation_loss = compute_loss(task_model)\n    evaluation_loss.backward()  # 关于 maml.parameters() 的梯度\n    opt.step()\n~~~\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>使用超梯度进行元下降\u003C\u002Fb>\u003C\u002Fsummary>\n\n利用 `LearnableOptimizer` 学习任意类型的优化算法。（\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002Ftree\u002Fmaster\u002Fexamples\u002Foptimization\">示例\u003C\u002Fa> 和 \u003Ca href=\"http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.optim\u002F#learnableoptimizer\">文档\u003C\u002Fa>）\n\n~~~python\nlinear = nn.Linear(784, 10)\ntransform = l2l.optim.ModuleTransform(l2l.nn.Scale)\nmetaopt = l2l.optim.LearnableOptimizer(linear, transform, lr=0.01)  # metaopt 有 .step()\nopt = torch.optim.SGD(metaopt.parameters(), lr=0.001)  # metaopt 也有 .parameters()\n\nmetaopt.zero_grad()\nopt.zero_grad()\nerror = loss(linear(X), y)\nerror.backward()\nopt.step()  # 更新 metaopt\nmetaopt.step()  # 更新 linear\n~~~\n\u003C\u002Fdetails>\n\n### 学习领域\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>自定义少样本数据集\u003C\u002Fb>\u003C\u002Fsummary>\n\n许多标准化数据集（Omniglot、mini-\u002Ftiered-ImageNet、FC100、CIFAR-FS）在 `learn2learn.vision.datasets` 中可以直接使用。（\u003Ca href=\"http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.vision\u002F#learn2learnvisiondatasets\">文档\u003C\u002Fa>）\n\n~~~python\ndataset = l2l.data.MetaDataset(MyDataset())  # 任何 PyTorch 数据集\ntransforms = [  # 轻松定义自己的转换\n    l2l.data.transforms.NWays(dataset, n=5),\n    l2l.data.transforms.KShots(dataset, k=1),\n    l2l.data.transforms.LoadData(dataset),\n]\ntaskset = Taskset(dataset, transforms, num_tasks=20000)\nfor task in taskset:\n    X, y = task\n    # 在该任务上进行元训练\n~~~\n\u003C\u002Fdetails>\n\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>元强化学习的环境与工具\u003C\u002Fb>\u003C\u002Fsummary>\n\n使用 `AsyncVectorEnv` 并行化您自己的元环境，或直接使用标准化环境。（\u003Ca href=\"http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.gym\u002F#metaenv\">文档\u003C\u002Fa>）\n\n~~~python\ndef make_env():\n    env = l2l.gym.HalfCheetahForwardBackwardEnv()\n    env = cherry.envs.ActionSpaceScaler(env)\n    return env\n\nenv = l2l.gym.AsyncVectorEnv([make_env for _ in range(16)])  # 使用 16 个线程\nfor task_config in env.sample_tasks(20):\n    env.set_task(task)  # 所有线程接收相同的任务\n    state = env.reset()  # 使用标准 Gym API\n    action = my_policy(env)\n    env.step(action)\n~~~\n\u003C\u002Fdetails>\n\n### 低层工具\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>可微优化\u003C\u002Fb>\u003C\u002Fsummary>\n\n学习并通过对 PyTorch 模块的更新进行反向传播。（\u003Ca href=\"http:\u002F\u002Flearn2learn.net\u002Fdocs\u002Flearn2learn.optim\u002F#parameterupdate\">文档\u003C\u002Fa>）\n\n~~~python\n\nmodel = MyModel()\ntransform = l2l.optim.KroneckerTransform(l2l.nn.KroneckerLinear)\nlearned_update = l2l.optim.ParameterUpdate(  # 可学习的更新函数\n        model.parameters(), transform)\nclone = l2l.clone_module(model)  # 对 nn.Module 使用 torch.clone()\nerror = loss(clone(X), y)\nupdates = learned_update(  # 类似于 torch.autograd.grad 的 API\n    error,\n    clone.parameters(),\n    create_graph=True,\n)\nl2l.update_module(clone, updates=updates)\nloss(clone(X), y).backward()  # 关于 model.parameters() 和 learned_update.parameters() 的梯度\n~~~\n\u003C\u002Fdetails>\n\n## 更改日志\n\n人类可读的更改日志可在 [CHANGELOG.md](CHANGELOG.md) 文件中找到。\n\n## 引用\n\n若要在您的学术出版物中引用 `learn2learn` 仓库，请使用以下参考文献。\n\n> Arnold, Sebastien M. R., Praateek Mahajan, Debajyoti Datta, Ian Bunner, and Konstantinos Saitas Zarkias. 2020. “learn2learn: 用于元学习研究的库。” arXiv [cs.LG]. http:\u002F\u002Farxiv.org\u002Fabs\u002F2008.12284.\n\n您也可以使用以下 BibTeX 条目。\n\n~~~bib\n@article{Arnold2020-ss,\n  title         = {learn2learn：用于{元学习}研究的库},\n  author        = {Arnold, Sébastien M R 和 Mahajan, Praateek 和 Datta, Debajyoti 和 Bunner, Ian 和 Zarkias, Konstantinos Saitas},\n  month         =  八月,\n  year          =  2020,\n  url           = {http:\u002F\u002Farxiv.org\u002Fabs\u002F2008.12284},\n  archivePrefix = {arXiv},\n  primaryClass  = {cs.LG},\n  eprint        = {2008.12284}\n}\n\n### 致谢与伙伴\n\n1. [TorchMeta](https:\u002F\u002Fgithub.com\u002Ftristandeleu\u002Fpytorch-meta) 是一个类似的库，专注于监督式元学习的数据集。\n2. [higher](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fhigher) 是一个 PyTorch 库，支持对优化内部循环进行梯度传播。尽管它通过猴子补丁使 `nn.Module` 变为无状态，但 learn2learn 仍保留了 PyTorch 的有状态设计风格。更多信息请参阅他们的 ArXiv 论文 [2019 年 10 月 17 日发表的论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F1910.01727)。\n3. 我们感谢以下开源实现，它们在 learn2learn 的设计过程中提供了重要指导：\n    * Tristan Deleu 的 [pytorch-maml-rl](https:\u002F\u002Fgithub.com\u002Ftristandeleu\u002Fpytorch-maml-rl)\n    * Jonas Rothfuss 的 [ProMP](https:\u002F\u002Fgithub.com\u002Fjonasrothfuss\u002FProMP\u002F)\n    * Kwonjoon Lee 的 [MetaOptNet](https:\u002F\u002Fgithub.com\u002Fkjunelee\u002FMetaOptNet)\n    * Han-Jia Ye 和 Hexiang Hu 的 [FEAT](https:\u002F\u002Fgithub.com\u002FSha-Lab\u002FFEAT)","# learn2learn 快速上手指南\n\n`learn2learn` 是一个基于 PyTorch 构建的元学习（Meta-Learning）研究库，旨在加速算法的原型设计与复现。它提供了从少样本学习（Few-Shot Learning）到元强化学习（Meta-RL）的统一接口和高质量实现。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows\n*   **Python 版本**：3.6 及以上\n*   **核心依赖**：\n    *   [PyTorch](https:\u002F\u002Fpytorch.org\u002F) (推荐最新稳定版)\n    *   `torchvision`, `torchaudio` (可选，用于视觉和音频任务)\n*   **其他依赖**：`numpy`, `scipy` 等科学计算库通常已随 PyTorch 环境安装。\n\n> **提示**：建议先配置好基础的 PyTorch 深度学习环境（推荐使用 Conda 或虚拟环境）。\n\n## 安装步骤\n\n### 方式一：通过 PyPI 安装（推荐）\n\n使用 pip 直接安装最新版本：\n\n```bash\npip install learn2learn\n```\n\n**国内加速方案**：\n如果您在中国大陆地区，建议使用清华源或阿里源以加快下载速度：\n\n```bash\npip install learn2learn -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n# 或者使用阿里源\npip install learn2learn -i https:\u002F\u002Fmirrors.aliyun.com\u002Fpypi\u002Fsimple\u002F\n```\n\n### 方式二：从源码安装（开发版）\n\n如果您需要最新的功能或参与贡献，可以从 GitHub 克隆源码安装：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn.git\ncd learn2learn\npip install -e .\n```\n\n## 基本使用\n\n`learn2learn` 的核心优势在于其简洁的高级封装。以下是一个使用 **MAML (Model-Agnostic Meta-Learning)** 算法进行少样本学习的极简示例。\n\n### 示例：使用 MAML 进行少样本学习\n\n此示例展示了如何克隆模型、在任务上进行自适应更新（adapt），并计算元梯度。\n\n```python\nimport torch\nimport torch.nn as nn\nimport learn2learn as l2l\n\n# 1. 定义基础模型\nmodel = nn.Sequential(\n    nn.Linear(784, 40),\n    nn.ReLU(),\n    nn.Linear(40, 10),\n)\n\n# 2. 包装为 MAML 模型\n# lr 是内部适应步骤的学习率\nmaml = l2l.algorithms.MAML(model, lr=0.1)\n\n# 3. 定义元优化器 (用于更新原始模型参数)\nopt = torch.optim.SGD(maml.parameters(), lr=0.001)\n\n# 模拟训练循环\nfor iteration in range(10):\n    opt.zero_grad()\n    \n    # 克隆模型用于当前任务的适应 (支持 nn.Modules 的深度克隆)\n    task_model = maml.clone()\n    \n    # --- 内循环 (Adaptation) ---\n    # 假设 compute_loss 是用户定义的损失计算函数，输入为 task_model\n    adaptation_loss = compute_loss(task_model) \n    \n    # 执行一步或多步梯度更新，直接修改 task_model\n    task_model.adapt(adaptation_loss)\n    \n    # --- 外循环 (Meta-Update) ---\n    # 在适应后的模型上计算评估损失\n    evaluation_loss = compute_loss(task_model)\n    \n    # 反向传播，梯度将累积到原始的 maml 参数上\n    evaluation_loss.backward()\n    \n    # 更新元参数\n    opt.step()\n```\n\n### 关键功能模块速览\n\n除了上述高级算法封装，`learn2learn` 还提供以下核心模块：\n\n*   **数据加载 (`learn2learn.data`)**: 轻松将任意 PyTorch Dataset 转换为少样本任务（Taskset），支持自定义 N-way K-shot 变换。\n*   **视觉基准 (`learn2learn.vision`)**: 内置 Omniglot, mini-ImageNet, CIFAR-FS 等标准数据集和预定义模型。\n*   **元强化学习 (`learn2learn.gym`)**: 提供并行化环境 (`AsyncVectorEnv`) 和 Meta-RL 专用工具。\n*   **可微优化 (`learn2learn.optim`)**: 支持超梯度（Hypergradient）和学习优化器（LearnableOptimizer），允许对优化过程本身进行求导。\n\n更多详细教程和完整代码示例，请访问官方文档：[http:\u002F\u002Flearn2learn.net\u002Ftutorials\u002Fgetting_started\u002F](http:\u002F\u002Flearn2learn.net\u002Ftutorials\u002Fgetting_started\u002F)","某初创医疗 AI 团队正致力于开发一种能快速适应罕见病影像诊断的模型，需要在仅有少量样本的情况下实现高精度识别。\n\n### 没有 learn2learn 时\n- **代码重复造轮子**：研究人员需手动编写 MAML、ProtoNets 等复杂算法的底层梯度更新逻辑，耗费数周时间且极易出错。\n- **任务构建繁琐**：从零构建符合“小样本学习”标准的任务数据加载器（Task DataLoader）极其困难，难以保证每次实验的任务分布一致性。\n- **复现性差**：由于缺乏统一的基准接口，团队成员间代码风格迥异，导致实验结果难以公平对比，甚至无法复现论文效果。\n- **调试周期漫长**：在尝试新想法时，大部分精力被消耗在处理 PyTorch 自动求导的边缘情况上，而非优化算法本身。\n\n### 使用 learn2learn 后\n- **算法即插即用**：通过 `l2l.algorithms.MAML` 等高级封装，几行代码即可调用成熟算法，将原型开发时间从数周缩短至几小时。\n- **标准化任务生成**：利用 `learn2learn.data` 模块，能轻松将任意 PyTorch 数据集转换为标准的小样本任务集，确保实验数据规范统一。\n- **公平可复现**：内置的高质量基准实现和统一接口，让团队能直接在相同起跑线上评估新策略，显著提升了科研产出的可信度。\n- **专注核心创新**：自动处理复杂的元梯度计算与模型克隆（clone），让研究者能全身心投入于针对医疗场景的算法改进。\n\nlearn2learn 通过提供标准化的元学习基础设施，将研究人员从繁琐的工程实现中解放出来，真正实现了“快速原型验证”与“正确实验复现”的双重加速。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flearnables_learn2learn_f24e2068.png","learnables","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Flearnables_e89fe026.png","",null,"https:\u002F\u002Fgithub.com\u002Flearnables",[78,82,86],{"name":79,"color":80,"percentage":81},"Python","#3572A5",93.8,{"name":83,"color":84,"percentage":85},"Cython","#fedf5b",5.8,{"name":87,"color":88,"percentage":89},"Makefile","#427819",0.4,2883,360,"2026-04-10T02:47:09","MIT",1,"未说明",{"notes":97,"python":95,"dependencies":98},"该工具是基于 PyTorch 的元学习研究库，兼容 torchvision、torchaudio、torchtext 和 cherry 等库。安装命令为 `pip install learn2learn`。具体版本要求未在 README 中明确列出，需参考官方文档或根据本地 PyTorch 环境适配。",[99,100,101,102,103],"torch","torchvision","torchaudio","torchtext","cherry",[14],[106,107,108,109,64,110,111,112,113,114,115],"pytorch","maml","meta-learning","learning2learn","metalearning","few-shot","meta-rl","meta-descent","meta-optimization","finetuning","2026-03-27T02:49:30.150509","2026-04-11T17:38:00.758286",[119,124,129,134,139,144],{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},29593,"如何在分布式训练（DDP）中正确使用 learn2learn 的 MAML 算法？","直接在包装了 DistributedDataParallel (DDP) 的模型上使用 MAML 会导致错误。推荐的解决方案是：不要在模型层面直接使用 DDP 包装器，而是将任务集（TaskSet）包装在标准 PyTorch DataLoader 的 collate 函数中。具体步骤如下：\n1. 创建一个用于任务的 DataLoader 和分布式数据并行处理。\n2. 在 collate 函数中，根据 batch size 多次采样任务数据。\n3. 使用标准的 PyTorch DataLoader 配合 DDP 启动工具（如 `torch.distributed.launch`），而不需要额外的特殊采样器。\n关键点：确保同一个任务的数据不会被拆分到不同的机器\u002F节点上，但不同的任务可以分布在不同节点间。","https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002Fissues\u002F263",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},29594,"下载 Mini-ImageNet 数据集时出现 '_pickle.UnpicklingError: invalid load key' 错误怎么办？","该错误通常是因为自动下载脚本未能正确检查 HTTPS 响应状态，导致下载了一个包含错误信息（如 HTML 页面）而非实际数据的文件，从而使得 pickle 解析失败。\n解决方案：\n1. 手动下载数据集文件，不要依赖库的自动下载功能。\n2. 或者等待官方修复（该问题已在后续版本如 v0.1.7 或相关 PR #400 中修复）。\n3. 如果必须使用代码下载，需修改底层下载逻辑，确保在保存文件前验证 HTTP 响应是否成功（状态码 200），避免保存错误页面为 .pkl 文件。","https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002Fissues\u002F310",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},29595,"运行 MAML 示例代码时遇到 CUDA 显存泄漏（CUDA out of memory）如何解决？","这是一个已知问题，特别是在包含 meta-validation（元验证）损失计算时，显存会随着迭代次数增加而逐渐耗尽。\n解决方案：\n1. **升级版本**：该问题已在 v0.1.7 版本中修复，请执行 `pip install --upgrade learn2learn`。\n2. **手动修复（若不升级）**：修改 `learn2learn\u002Futils\u002F__init__.py` 文件中的 `update_module` 函数。原实现可能在更新参数时未正确处理计算图，导致显存无法释放。修复后的逻辑应确保参数更新是原地（in-place）进行的，同时保持可微性，避免累积不必要的中间变量。","https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002Fissues\u002F284",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},29596,"将 nn.DistributedDataParallel 包裹在 MAML 外部时，调用 maml.clone() 报错该如何处理？","错误的顺序是导致问题的原因。不能先创建 MAML 对象再对底层模型进行 DDP 包装，因为 `maml.clone()` 需要访问模型的原始参数结构。\n正确的使用顺序应该是：\n1. 实例化基础模型：`model = MyModel()`\n2. 创建 MAML 包装器：`maml = l2l.algorithms.MAML(model, lr=0.5)`\n3. **最后**再进行分布式包装：`distrib_model = nn.DistributedDataParallel(maml, device_ids=[rank])` \n注意：在某些复杂的分布式任务采样场景下，可能仍需参考 Issue #263 中关于在 dataloader 层面处理分布式的建议，而不是简单地对整个 MAML 对象进行 DDP 包装。","https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002Fissues\u002F170",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},29597,"learn2learn 是否支持直接对模型使用 DistributedDataParallel 进行分布式训练？","直接支持有限，通常需要特定的配置。简单的 `nn.DistributedDataParallel` 包装可能会与 `maml.clone()` 冲突。\n推荐做法是参考 Issue #263 的讨论：\n- 不需要自定义的分布式采样器（Distributed Sampler），只需将任务集（TaskSet）放入标准 PyTorch DataLoader 的 collate 函数中进行采样。\n- 利用 PyTorch 原生的启动工具（launch utility）来运行分布式脚本。\n- 核心思路是在数据加载阶段分配任务，而不是在模型梯度更新阶段强行分割，以避免死锁和兼容性问题。","https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002Fissues\u002F197",{"id":145,"question_zh":146,"answer_zh":147,"source_url":133},29598,"在使用 learn2learn 进行测试推理时，如何避免显存泄漏？","在测试循环中，如果频繁克隆模型（`maml.clone()`）并进行适应（`adapt`）步骤，可能会导致计算图累积从而引发显存泄漏。\n建议的代码模式：\n1. 确保在每次迭代中正确管理上下文。\n2. 如果不需要计算高阶导数，可以在克隆时设置 `first_order=True`（例如：`learner = maml.clone(first_order=True)`）。\n3. 确保在内部循环结束后，不再保留对 `learner` 或其产生的 loss 的引用，以便 Python 垃圾回收机制能正常工作。\n4. 如果问题依旧，请检查是否遗漏了 `.detach()` 或是否在非训练模式下错误地保留了梯度历史。",[149,154,159,164,169,174,179,184,189,193,197],{"id":150,"version":151,"summary_zh":152,"released_at":153},206108,"v0.2.1","类似于 0.2.0，但将 qpth 设置为可选。","2023-06-27T18:04:02",{"id":155,"version":156,"summary_zh":157,"released_at":158},206109,"v0.2.0","### 新增\n\n* 新的视觉任务示例：MAML++。(@[Theo Morales](https:\u002F\u002Fgithub.com\u002FDubiousCactus))\n* 添加教程：“揭秘任务变换”，([Varad Pimpalkhute](https:\u002F\u002Fgithub.com\u002Fnightlessbaron\u002F))\n* 添加 `l2l.nn.MetaModule` 和 `l2l.nn.ParameterTransform`，用于参数高效的微调。\n* 添加 `l2l.nn.freeze` 和 `l2l.nn.unfreeze`。\n* 添加 Adapter 和 LoRA 示例。\n* 添加 TasksetSampler，与 PyTorch 的 DataLoader 兼容。\n\n### 变更\n\n* 文档：改用 `mkdocstrings` 代替 `pydoc-markdown`。\n* 移除 `text\u002Fnews_topic_classification.py` 示例。\n* 将 TaskDataset 重命名为 Taskset。\n\n### 修复\n\n* MAML 玩具示例。(@[Theo Morales](https:\u002F\u002Fgithub.com\u002FDubiousCactus))\n* `detach_module` 示例。([Nimish Sanghi](https:\u002F\u002Fgithub.com\u002Fnsanghi))\n* 修复 FGVC Aircraft 数据集中重复图像的加载问题。\n* 将视觉数据集迁移至 Zenodo。（mini-ImageNet、tiered-ImageNet、FC100、CIFAR-FS、CUB200）\n* mini-ImageNet 的标签现为整数类型（而非 np.float64）。\n* 按照 MetaDataset 的做法，在 FGVCAircraft 中将 family 和 variants 的顺序对调。","2023-06-03T21:18:56",{"id":160,"version":161,"summary_zh":162,"released_at":163},206110,"v0.1.7","v0.1.7\n======\n\n新增\n-----\n* 飞机和CUB200数据集的边界框裁剪功能。\n* 提供视觉模型的预训练权重，可通过 `l2l.vision.models.get_pretrained_backbone()` 获取。\n* 为 `detach_module` 添加 `keep_requires_grad` 标志。([Zhaofeng Wu](https:\u002F\u002Fgithub.com\u002FZhaofengWu))\n\n修复\n-----\n* 修复实例化 `l2l.nn.Scale` 时的参数问题。\n* 修复使用 PyTorch-Lightning 1.5 的 `LightningModule` 实现中 `train_loss` 日志记录的问题。\n* 修复 `RandomClassRotation`（[https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002Fpull\u002F283](https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002Fpull\u002F283)），使其能够处理多通道输入。([Varad Pimpalkhute](https:\u002F\u002Fgithub.com\u002Fnightlessbaron\u002F))\n* 修复 `maml.py` 和 `meta-sgd.py` 中的内存泄漏问题，并在 `maml_test.py` 和 `metasgd_test.py` 中添加测试，以检查未来可能出现的内存泄漏。([https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002Fissues\u002F284](https:\u002F\u002Fgithub.com\u002Flearnables\u002Flearn2learn\u002Fissues\u002F284)) ([Kevin Zhang](https:\u002F\u002Fgithub.com\u002Fkzhang2))","2022-02-10T03:30:46",{"id":165,"version":166,"summary_zh":167,"released_at":168},206111,"v0.1.6","v0.1.6\n======\n\n新增\n-----\n* 为 MAML、ANIL、ProtoNet、MetaOptNet 提供 PyTorch Lightning 接口。\n* Lightning 的自动批处理工具：`l2l.data.EpisodicBatcher`。\n* `l2l.nn.PrototypicalClassifier` 和 `l2l.nn.SVMClassifier`。\n* 添加 `l2l.vision.models.WRN28`。\n* 将 `CNN4Backbone`、`ResNet12Backbone`、`WRN28Backbones` 模块分离，并提供预训练权重。\n* 添加 `l2l.data.OnDeviceDataset`，并在基准测试中实现 `device` 参数。\n* （测试版）添加 `l2l.data.partition_task` 和 `l2l.data.InfiniteIterator`。\n\n变更\n-------\n* 重命名并澄清 `ResNet12` 的 dropout 参数。\n\n修复\n-----\n* 改进了 `l2l.nn.KroneckerLinear` 对 1D 输入的支持。（@timweiland）","2021-09-07T06:56:10",{"id":170,"version":171,"summary_zh":172,"released_at":173},206112,"v0.1.5","## v0.1.5\n\n### 修复\n\n* 修复 Windows 安装的 `setup.py`。","2020-12-05T18:02:25",{"id":175,"version":176,"summary_zh":177,"released_at":178},206113,"v0.1.4","v0.1.4\r\n======\r\n\r\n新增\r\n-----\r\n\r\n* `FilteredMetaDatasest` 用于过滤用于采样任务的类别。\r\n* `UnionMetaDatasest` 用于获取多个元数据集的并集。\r\n* 将 `MiniImageNetCNN` 别名为 `CNN4`，并添加 `embedding_size` 参数。\r\n* 视觉基准测试中的可选数据增强方案。\r\n* `l2l.vision.models.ResNet12`\r\n* `l2l.vision.datasets.DescribableTextures`\r\n* `l2l.vision.datasets.Quickdraw`\r\n* `l2l.vision.datasets.FGVCFungi`\r\n* 在 `l2l.data.MetaDataset` 中添加 `labels_to_indices` 和 `indices_to_labels` 作为可选参数。\r\n\r\n更改\r\n-------\r\n\r\n* 更新了引用参考文献。","2020-11-24T18:46:32",{"id":180,"version":181,"summary_zh":182,"released_at":183},206114,"v0.1.3","新增\n-----\n\n* `l2l.vision.datasets.CUBirds200`。\n\n更改\n-------\n\n* 优化变换可以直接通过 `l2l.optim` 访问，例如 `l2l.optim.KroneckerTransform`。\n* 所有视觉模型都遵循 `.features` 和 `.classifier` 接口。\n\n修复\n-----\n\n* 修复了子模块共享参数的 Module 的 `clone_module` 方法。","2020-08-30T20:01:19",{"id":185,"version":186,"summary_zh":187,"released_at":188},206115,"v0.1.2","新增\n-----\n\n* 新示例：带有 MAML-TRPO 的 [Meta-World](https:\u002F\u002Fgithub.com\u002Frlworkgroup\u002Fmetaworld) 示例，配备了其专属的环境封装器。（@[Kostis-S-Z](https:\u002F\u002Fgithub.com\u002FKostis-S-Z)）\n* `l2l.vision.benchmarks` 接口。\n* 在 `l2l.optim` 中增加了可微优化工具（包括用于元梯度下降的 `l2l.optim.LearnableOptimizer`）。\n* 在 `l2l.algorithms.GBML` 中实现了通用的基于梯度的元学习封装器。\n* 在 `l2l.nn` 中提供了多种 `nn.Module`。\n* `l2l.update_module` 作为 `l2l.algorithms.maml_update` 的更通用替代方案。\n\n修复\n-----\n\n* `clone_module` 现在支持非 `Module` 对象。\n* VGG Flowers 数据集现在使用 `tarfile.open()` 而不是 `tarfile.TarFile()`。","2020-07-08T03:11:32",{"id":190,"version":191,"summary_zh":75,"released_at":192},206116,"v0.1.1","2020-04-24T16:59:07",{"id":194,"version":195,"summary_zh":75,"released_at":196},206117,"v0.1.0.1","2020-03-02T03:16:51",{"id":198,"version":199,"summary_zh":200,"released_at":201},206118,"v0.1.0","## v0.1.0\n\n### 新增\n\n* 添加了 CHANGELOG.md 文件。\n* 新增视觉数据集：FC100、tiered-Imagenet、FGVCAircraft、VGGFlowers102。\n* 新增视觉示例：Reptile 和 ANIL。\n* 对所有视觉示例进行了全面的基准测试。\n\n### 变更\n\n* 使用 Cython 重写了 TaskDataset 和任务变换，速度提升了 20 倍。\n* 在 Travis 上使用不同版本的 Python（3.6、3.7）、PyTorch（1.1、1.2、1.3、1.4）以及 torchvision（0.3、0.4、0.5）进行测试。\n* 引入新的 Material 文档主题，增加了指向变更日志和示例的链接。\n\n### 修复\n\n* 支持在较新版本的 torchvision 中使用 `RandomClassRotation`。\n* 修复了示例中的多个小问题。\n* 如果 FC100 的 GDrive 下载失败，则添加 Dropbox 下载选项。","2020-03-01T08:46:22"]