[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-tensorflow--lingvo":3,"tool-tensorflow--lingvo":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 真正成长为懂上",159267,2,"2026-04-17T11:29:14",[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":76,"owner_twitter":75,"owner_website":77,"owner_url":78,"languages":79,"stars":110,"forks":111,"last_commit_at":112,"license":113,"difficulty_score":114,"env_os":115,"env_gpu":116,"env_ram":117,"env_deps":118,"category_tags":125,"github_topics":128,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":145,"updated_at":146,"faqs":147,"releases":178},8560,"tensorflow\u002Flingvo","lingvo","Lingvo","Lingvo 是一个基于 TensorFlow 构建的深度学习框架，专为开发序列模型而设计。它旨在解决研究人员和工程师在复现前沿论文、搭建复杂神经网络时面临的代码重复与架构繁琐问题，提供了一套模块化、可扩展的解决方案。\n\n这款工具特别适合人工智能领域的研究人员、算法工程师以及希望快速验证想法的开发者使用。无论是自动语音识别、机器翻译、语言建模，还是图像分类与 3D 物体检测，Lingvo 都内置了丰富的参考模型，帮助用户轻松上手。其独特的技术亮点在于高度灵活的模型定义方式，能够高效支持从实验性研究到大规模生产环境的各类需求。此外，Lingvo 社区活跃，众多顶级学术论文均基于此框架实现，确保了其技术的前瞻性与可靠性。如果你正在寻找一个既能快速原型开发又能支撑严肃科研任务的工具，Lingvo 值得尝试。","# Lingvo\n\n[![PyPI](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Flingvo.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Flingvo)\n[![Python](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Flingvo)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Ftensorflow)\n\n[![Documentation](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fapi-reference-blue.svg)](https:\u002F\u002Ftensorflow.github.io\u002Flingvo)\n\n[![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Ftensorflow\u002Flingvo)](LICENSE)\n\n## What is it?\n\nLingvo is a framework for building neural networks in Tensorflow, particularly\nsequence models.\n\nA list of publications using Lingvo can be found [here](PUBLICATIONS.md).\n\n## Table of Contents\n\n*   [Releases](#releases)\n    *   [Major breaking changes](#major-breaking-changes)\n*   [Quick start](#quick-start)\n    *   [Installation](#installation)\n    *   [Running the MNIST image model](#running-the-mnist-image-model)\n    *   [Running the machine translation model](#running-the-machine-translation-model)\n    *   [Running the GShard transformer based giant language model](#running-the-gshard-transformer-based-giant-language-model)\n    *   [Running the 3d object detection model](#running-the-3d-object-detection-model)\n*   [Models](#models)\n    *   [Automatic Speech Recognition](#automatic-speech-recognition)\n    *   [Car](#car)\n    *   [Image](#image)\n    *   [Language Modelling](#language-modelling)\n    *   [Machine Translation](#machine-translation)\n*   [References](#references)\n*   [License](#license)\n\n## Releases\n\nPyPI Version | Commit\n------------ | ----------------------------------------\n0.12.4       | --\n0.11.0       | 6fae10077756f54beacd5c454959f20b33fd65e2\n0.10.0       | 075fd1d88fa6f92681f58a2383264337d0e737ee\n0.9.1        | c1124c5aa7af13d2dd2b6d43293c8ca6d022b008\n0.9.0        | f826e99803d1b51dccbbbed1ef857ba48a2bbefe\n\n\u003Cdetails>\u003Csummary>\n\u003Cb>Older releases\u003C\u002Fb>\n\u003C\u002Fsummary>\u003Cp>\n\nPyPI Version | Commit\n------------ | ----------------------------------------\n0.8.2        | 93e123c6788e934e6b7b1fd85770371becf1e92e\n0.7.2        | b05642fe386ee79e0d88aa083565c9a93428519e\n\nDetails for older releases are unavailable.\n\n\u003C\u002Fp>\u003C\u002Fdetails>\n\n### Major breaking changes\n\n**NOTE: this is not a comprehensive list. Lingvo releases do not offer any\nguarantees regarding backwards compatibility.**\n\n#### HEAD\n\nNothing here.\n\n#### 0.12.0\n\n*   **General**\n    *   Tensorflow 2.9 is now required.\n    *   Python 3.7 support has been removed.\n    *   Compatible with (up to) Tensorflow 2.10 and Python 3.10\n\n#### 0.11.0\n\n*   **General**\n    *   Tensorflow 2.7 is now the required version.\n    *   Python 3.6 support has been removed.\n\n#### 0.10.0\n\n*   **General**\n    *   Tensorflow 2.6 is now the required version.\n    *   The theta_fn arg to CreateVariable() has been removed.\n\n#### 0.9.1\n\n*   **General**\n    *   Python 3.9 is now supported.\n    *   ops.beam_search_step now takes and returns an additional arg\n        `beam_done`.\n    *   The namedtuple beam_search_helper.BeamSearchDecodeOutput now removes the\n        field `done_hyps`.\n\n#### 0.9.0\n\n*   **General**\n    *   Tensorflow 2.5 is now the required version.\n    *   Python 3.5 support has been removed.\n    *   py_utils.AddGlobalVN and py_utils.AddPerStepVN have been combined into\n        py_utils.AddVN.\n    *   BaseSchedule().Value() no longer takes a step arg.\n    *   Classes deriving from BaseSchedule should implement Value() not FProp().\n    *   theta.global_step has been removed in favor of py_utils.GetGlobalStep().\n    *   py_utils.GenerateStepSeedPair() no longer takes a global_step arg.\n    *   PostTrainingStepUpdate() no longer takes a global_step arg.\n    *   The fatal_errors argument to custom input ops now takes error message\n        substrings rather than integer error codes.\n\n\u003Cdetails>\u003Csummary>\n\u003Cb>Older releases\u003C\u002Fb>\n\u003C\u002Fsummary>\u003Cp>\n\n#### 0.8.2\n\n*   **General**\n    *   NestedMap Flatten\u002FPack\u002FTransform\u002FFilter etc now expand descendent dicts\n        as well.\n    *   Subclasses of BaseLayer extending from `abc.ABCMeta` should now extend\n        `base_layer.ABCLayerMeta` instead.\n    *   Trying to call self.CreateChild outside of `__init__` now raises an\n        error.\n    *   `base_layer.initializer` has been removed. Subclasses no longer need to\n        decorate their `__init__` function.\n    *   Trying to call self.CreateVariable outside of `__init__` or\n        `_CreateLayerVariables` now raises an error.\n    *   It is no longer possible to access self.vars or self.theta inside of\n        `__init__`. Refactor by moving the variable creation and access to\n        `_CreateLayerVariables`. The variable scope is set automatically\n        according to the layer name in `_CreateLayerVariables`.\n\nDetails for older releases are unavailable.\n\n\u003C\u002Fp>\u003C\u002Fdetails>\n\n## Quick start\n\n### Installation\n\nThere are two ways to set up Lingvo: installing a fixed version through pip, or\ncloning the repository and building it with bazel. Docker configurations are\nprovided for each case.\n\nIf you would just like to use the framework as-is, it is easiest to just install\nit through pip. This makes it possible to develop and train custom models using\na frozen version of the Lingvo framework. However, it is difficult to modify the\nframework code or implement new custom ops.\n\nIf you would like to develop the framework further and potentially contribute\npull requests, you should avoid using pip and clone the repository instead.\n\n**pip:**\n\nThe [Lingvo pip package](https:\u002F\u002Fpypi.org\u002Fproject\u002Flingvo) can be installed with\n`pip3 install lingvo`.\n\nSee the\n[codelab](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Fcodelabs\u002Fintroduction.ipynb)\nfor how to get started with the pip package.\n\n**From sources:**\n\nThe prerequisites are:\n\n*   a TensorFlow 2.7 [installation](https:\u002F\u002Fwww.tensorflow.org\u002Finstall\u002F),\n*   a `C++` compiler (only g++ 7.3 is officially supported), and\n*   the bazel build system.\n\nRefer to [docker\u002Fdev.Dockerfile](docker\u002Fdev.Dockerfile) for a set of working\nrequirements.\n\n`git clone` the repository, then use bazel to build and run targets directly.\nThe `python -m module` commands in the codelab need to be mapped onto `bazel\nrun` commands.\n\n**docker:**\n\nDocker configurations are available for both situations. Instructions can be\nfound in the comments on the top of each file.\n\n*   [lib.dockerfile](docker\u002Flib.dockerfile) has the Lingvo pip package\n    preinstalled.\n*   [dev.Dockerfile](docker\u002Fdev.Dockerfile) can be used to build Lingvo from\n    sources.\n\n[How to install docker.](https:\u002F\u002Fdocs.docker.com\u002Finstall\u002Flinux\u002Fdocker-ce\u002Fubuntu\u002F)\n\n### Running the MNIST image model\n\n#### Preparing the input data\n\n**pip:**\n\n```shell\nmkdir -p \u002Ftmp\u002Fmnist\npython3 -m lingvo.tools.keras2ckpt --dataset=mnist\n```\n\n**bazel:**\n\n```shell\nmkdir -p \u002Ftmp\u002Fmnist\nbazel run -c opt \u002F\u002Flingvo\u002Ftools:keras2ckpt -- --dataset=mnist\n```\n\nThe following files will be created in `\u002Ftmp\u002Fmnist`:\n\n*   `mnist.data-00000-of-00001`: 53MB.\n*   `mnist.index`: 241 bytes.\n\n#### Running the model\n\n**pip:**\n\n```shell\ncd \u002Ftmp\u002Fmnist\ncurl -O https:\u002F\u002Fraw.githubusercontent.com\u002Ftensorflow\u002Flingvo\u002Fmaster\u002Flingvo\u002Ftasks\u002Fimage\u002Fparams\u002Fmnist.py\npython3 -m lingvo.trainer --run_locally=cpu --mode=sync --model=mnist.LeNet5 --logdir=\u002Ftmp\u002Fmnist\u002Flog\n```\n\n**bazel:**\n\n```shell\n(cpu) bazel build -c opt \u002F\u002Flingvo:trainer\n(gpu) bazel build -c opt --config=cuda \u002F\u002Flingvo:trainer\nbazel-bin\u002Flingvo\u002Ftrainer --run_locally=cpu --mode=sync --model=image.mnist.LeNet5 --logdir=\u002Ftmp\u002Fmnist\u002Flog --logtostderr\n```\n\nAfter about 20 seconds, the loss should drop below 0.3 and a checkpoint will be\nsaved, like below. Kill the trainer with Ctrl+C.\n\n```\ntrainer.py:518] step:   205, steps\u002Fsec: 11.64 ... loss:0.25747201 ...\ncheckpointer.py:115] Save checkpoint\ncheckpointer.py:117] Save checkpoint done: \u002Ftmp\u002Fmnist\u002Flog\u002Ftrain\u002Fckpt-00000205\n```\n\nSome artifacts will be produced in `\u002Ftmp\u002Fmnist\u002Flog\u002Fcontrol`:\n\n*   `params.txt`: hyper-parameters.\n*   `model_analysis.txt`: model sizes for each layer.\n*   `train.pbtxt`: the training `tf.GraphDef`.\n*   `events.*`: a tensorboard events file.\n\nAs well as in `\u002Ftmp\u002Fmnist\u002Flog\u002Ftrain`:\n\n*   `checkpoint`: a text file containing information about the checkpoint files.\n*   `ckpt-*`: the checkpoint files.\n\nNow, let's evaluate the model on the \"Test\" dataset. In the normal training\nsetup the trainer and evaler should be run at the same time as two separate\nprocesses.\n\n**pip:**\n\n```shell\npython3 -m lingvo.trainer --job=evaler_test --run_locally=cpu --mode=sync --model=mnist.LeNet5 --logdir=\u002Ftmp\u002Fmnist\u002Flog\n```\n\n**bazel:**\n\n```shell\nbazel-bin\u002Flingvo\u002Ftrainer --job=evaler_test --run_locally=cpu --mode=sync --model=image.mnist.LeNet5 --logdir=\u002Ftmp\u002Fmnist\u002Flog --logtostderr\n```\n\nKill the job with Ctrl+C when it starts waiting for a new checkpoint.\n\n```\nbase_runner.py:177] No new check point is found: \u002Ftmp\u002Fmnist\u002Flog\u002Ftrain\u002Fckpt-00000205\n```\n\nThe evaluation accuracy can be found slightly earlier in the logs.\n\n```\nbase_runner.py:111] eval_test: step:   205, acc5: 0.99775392, accuracy: 0.94150388, ..., loss: 0.20770954, ...\n```\n\n### Running the machine translation model\n\nTo run a more elaborate model, you'll need a cluster with GPUs. Please refer to\n[`third_party\u002Fpy\u002Flingvo\u002Ftasks\u002Fmt\u002FREADME.md`](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fmt\u002FREADME.md)\nfor more information.\n\n### Running the GShard transformer based giant language model\n\nTo train a GShard language model with one trillion parameters on GCP using\nCloudTPUs v3-512 using 512-way model parallelism, please refer to\n[`third_party\u002Fpy\u002Flingvo\u002Ftasks\u002Flm\u002FREADME.md`](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Flm\u002FREADME.md)\nfor more information.\n\n### Running the 3d object detection model\n\nTo run the StarNet model using CloudTPUs on GCP, please refer to\n[`third_party\u002Fpy\u002Flingvo\u002Ftasks\u002Fcar\u002FREADME.md`](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fcar\u002FREADME.md).\n\n## Models\n\n### Automatic Speech Recognition\n\n*   [Listen, Attend and Spell](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1508.01211.pdf).\u003Cbr\u002F>\n    William Chan, Navdeep Jaitly, Quoc V. Le, and Oriol Vinyals. ICASSP 2016.\n\n    [End-to-end Continuous Speech Recognition using Attention-based Recurrent\n    NN: First Results](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1412.1602.pdf).\u003Cbr\u002F>Jan Chorowski,\n    Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. arXiv 2014.\n\n    *   [asr.librispeech.Librispeech960Grapheme](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fasr\u002Fparams\u002Flibrispeech.py)\n    *   [asr.librispeech.Librispeech960Wpm](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fasr\u002Fparams\u002Flibrispeech.py)\n\n### Car\n*   [DeepFusion: Lidar-Camera Deep Fusion for Multi-Modal 3D Object Detection](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2203.08195.pdf).\u003Cbr\u002F>\n    Yingwei Li, Adams Wei Yu, Tianjian Meng, Ben Caine, Jiquan Ngiam, Daiyi Peng, Junyang Shen, Bo Wu, Yifeng Lu, Denny \n    Zhou, Quoc V. Le, Alan Yuille, Mingxing Tan. CVPR 2022.\n    *   [car.waymo_deepfusion.DeepFusionCenterPointPed](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fcar\u002Fparams\u002Fwaymo_deepfusion.py)\n\n*   [StarNet: Targeted Computation for Object Detection in Point Clouds](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1908.11069.pdf).\u003Cbr\u002F>\n    Jiquan Ngiam, Benjamin Caine, Wei Han, Brandon Yang, Yuning Chai, Pei Sun, Yin\n    Zhou, Xi Yi, Ouais Alsharif, Patrick Nguyen, Zhifeng Chen, Jonathon Shlens,\n    and Vijay Vasudevan. arXiv 2019.\n\n    *   [car.kitti.StarNetCarModel0701](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fcar\u002Fparams\u002Fkitti.py)\n    *   [car.kitti.StarNetPedCycModel0704](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fcar\u002Fparams\u002Fkitti.py)\n    *   [car.waymo.StarNetVehicle](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fcar\u002Fparams\u002Fwaymo.py)\n    *   [car.waymo.StarNetPed](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fcar\u002Fparams\u002Fwaymo.py)\n\n### Image\n\n*   [Gradient-based learning applied to document recognition](http:\u002F\u002Fyann.lecun.com\u002Fexdb\u002Fpublis\u002Fpdf\u002Flecun-01a.pdf).\u003Cbr\u002F>\n    Yann LeCun, Leon Bottou, Yoshua Bengio, and Patrick Haffner. IEEE 1998.\n\n    *   [image.mnist.LeNet5](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fimage\u002Fparams\u002Fmnist.py)\n\n### Language Modelling\n\n*   [Exploring the Limits of Language Modeling](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1602.02410.pdf).\u003Cbr\u002F>\n    Rafal Jozefowicz, Oriol Vinyals, Mike Schuster, Noam Shazeer, and Yonghui\n    Wu. arXiv, 2016.\n\n    *   [lm.one_billion_wds.WordLevelOneBwdsSimpleSampledSoftmax](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Flm\u002Fparams\u002Fone_billion_wds.py)\n\n*   [GShard: Scaling Giant Models with Conditional Computation and Automatic\n    Sharding](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2006.16668.pdf).\u003Cbr\u002F>\n    Dmitry Lepikhin, HyoukJoong Lee, Yuanzhong Xu, Dehao Chen, Orhan Firat, Yanping Huang, Maxim Krikun,\n    Noam Shazeer and Zhifeng Chen arXiv, 2020.\n\n    *   [lm.synthetic_packed_input.DenseLm1T16x16](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Flm\u002Fparams\u002Fsynthetic_packed_input.py)\n\n### Machine Translation\n\n*   [The Best of Both Worlds: Combining Recent Advances in Neural Machine\n    Translation](http:\u002F\u002Faclweb.org\u002Fanthology\u002FP18-1008).\u003Cbr\u002F>\n    Mia X. Chen, Orhan Firat, Ankur Bapna, Melvin Johnson, Wolfgang Macherey, George Foster, Llion\n    Jones, Mike Schuster, Noam Shazeer, Niki Parmar, Ashish Vaswani, Jakob\n    Uszkoreit, Lukasz Kaiser, Zhifeng Chen, Yonghui Wu, and Macduff Hughes.\n    ACL 2018.\n\n    *   [mt.wmt14_en_de.WmtEnDeTransformerBase](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fmt\u002Fparams\u002Fwmt14_en_de.py)\n    *   [mt.wmt14_en_de.WmtEnDeRNMT](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fmt\u002Fparams\u002Fwmt14_en_de.py)\n    *   [mt.wmtm16_en_de.WmtCaptionEnDeTransformer](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fmt\u002Fparams\u002Fwmtm16_en_de.py)\n\n*   [Self-supervised and Supervised Joint Training for Resource-rich Neural\n    Machine Translation](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2106.04060.pdf).\u003Cbr\u002F>\n    Yong Cheng, Wei Wang, Lu Jiang, and Wolfgang Macherey. ICML 2021.\n\n    *   [mt.xendec.wmt14_en_de.WmtEnDeXEnDec](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fmt\u002Fparams\u002Fxendec\u002Fwmt14_en_de.py)\n\n## References\n\n*   [API Docs](https:\u002F\u002Ftensorflow.github.io\u002Flingvo\u002F)\n*   [Codelab](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Fcodelabs\u002Fintroduction.ipynb)\n\nPlease cite this [paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F1902.08295) when referencing\nLingvo.\n\n```\n@misc{shen2019lingvo,\n    title={Lingvo: a Modular and Scalable Framework for Sequence-to-Sequence Modeling},\n    author={Jonathan Shen and Patrick Nguyen and Yonghui Wu and Zhifeng Chen and others},\n    year={2019},\n    eprint={1902.08295},\n    archivePrefix={arXiv},\n    primaryClass={cs.LG}\n}\n```\n\n## License\n\n[Apache License 2.0](LICENSE)\n","# Lingvo\n\n[![PyPI](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Flingvo.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Flingvo)\n[![Python](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Flingvo)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Ftensorflow)\n\n[![Documentation](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fapi-reference-blue.svg)](https:\u002F\u002Ftensorflow.github.io\u002Flingvo)\n\n[![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Ftensorflow\u002Flingvo)](LICENSE)\n\n## 是什么？\n\nLingvo 是一个用于在 TensorFlow 中构建神经网络的框架，特别是序列模型。\n\n使用 Lingvo 的相关论文列表可以在这里找到 [PUBLICATIONS.md](PUBLICATIONS.md)。\n\n## 目录\n\n*   [版本发布](#releases)\n    *   [重大破坏性变更](#major-breaking-changes)\n*   [快速入门](#quick-start)\n    *   [安装](#installation)\n    *   [运行 MNIST 图像模型](#running-the-mnist-image-model)\n    *   [运行机器翻译模型](#running-the-machine-translation-model)\n    *   [运行基于 GShard Transformer 的巨型语言模型](#running-the-gshard-transformer-based-giant-language-model)\n    *   [运行 3D 物体检测模型](#running-the-3d-object-detection-model)\n*   [模型](#models)\n    *   [自动语音识别](#automatic-speech-recognition)\n    *   [汽车](#car)\n    *   [图像](#image)\n    *   [语言建模](#language-modelling)\n    *   [机器翻译](#machine-translation)\n*   [参考文献](#references)\n*   [许可证](#license)\n\n## 版本发布\n\nPyPI 版本 | 提交记录\n------------ | ----------------------------------------\n0.12.4       | --\n0.11.0       | 6fae10077756f54beacd5c454959f20b33fd65e2\n0.10.0       | 075fd1d88fa6f92681f58a2383264337d0e737ee\n0.9.1        | c1124c5aa7af13d2dd2b6d43293c8ca6d022b008\n0.9.0        | f826e99803d1b51dccbbbed1ef857ba48a2bbefe\n\n\u003Cdetails>\u003Csummary>\n\u003Cb>旧版发布\u003C\u002Fb>\n\u003C\u002Fsummary>\u003Cp>\n\nPyPI 版本 | 提交记录\n------------ | ----------------------------------------\n0.8.2        | 93e123c6788e934e6b7b1fd85770371becf1e92e\n0.7.2        | b05642fe386ee79e0d88aa083565c9a93428519e\n\n旧版发布的详细信息暂不可用。\n\n\u003C\u002Fp>\u003C\u002Fdetails>\n\n### 重大破坏性变更\n\n**注意：这不是一个完整的列表。Lingvo 发布不提供任何关于向后兼容性的保证。**\n\n#### HEAD\n\n此处无内容。\n\n#### 0.12.0\n\n*   **通用**\n    *   现在需要 TensorFlow 2.9。\n    *   已移除对 Python 3.7 的支持。\n    *   兼容至多 TensorFlow 2.10 和 Python 3.10。\n\n#### 0.11.0\n\n*   **通用**\n    *   现在需要 TensorFlow 2.7。\n    *   已移除对 Python 3.6 的支持。\n\n#### 0.10.0\n\n*   **通用**\n    *   现在需要 TensorFlow 2.6。\n    *   已移除 CreateVariable() 方法中的 theta_fn 参数。\n\n#### 0.9.1\n\n*   **通用**\n    *   现在支持 Python 3.9。\n    *   ops.beam_search_step 现在接收并返回一个额外参数 `beam_done`。\n    *   namedtuple beam_search_helper.BeamSearchDecodeOutput 现在移除了字段 `done_hyps`。\n\n#### 0.9.0\n\n*   **通用**\n    *   现在需要 TensorFlow 2.5。\n    *   已移除对 Python 3.5 的支持。\n    *   py_utils.AddGlobalVN 和 py_utils.AddPerStepVN 已合并为 py_utils.AddVN。\n    *   BaseSchedule().Value() 不再接受 step 参数。\n    *   继承自 BaseSchedule 的类应实现 Value() 而不是 FProp()。\n    *   theta.global_step 已被移除，取而代之的是 py_utils.GetGlobalStep()。\n    *   py_utils.GenerateStepSeedPair() 不再接受 global_step 参数。\n    *   PostTrainingStepUpdate() 不再接受 global_step 参数。\n    *   自定义输入操作中的 fatal_errors 参数现在接受错误消息子字符串，而不是整数错误代码。\n\n\u003Cdetails>\u003Csummary>\n\u003Cb>旧版发布\u003C\u002Fb>\n\u003C\u002Fsummary>\u003Cp>\n\n#### 0.8.2\n\n*   **通用**\n    *   NestedMap Flatten\u002FPack\u002FTransform\u002FFilter 等方法现在也会展开其子字典。\n    *   继承自 `abc.ABCMeta` 的 BaseLayer 子类现在应继承 `base_layer.ABCLayerMeta`。\n    *   在 `__init__` 之外调用 self.CreateChild 现在会引发错误。\n    *   `base_layer.initializer` 已被移除。子类不再需要装饰其 `__init__` 函数。\n    *   在 `__init__` 或 `_CreateLayerVariables` 之外调用 self.CreateVariable 现在会引发错误。\n    *   在 `__init__` 内部无法再访问 self.vars 或 self.theta。请将变量的创建和访问移到 `_CreateLayerVariables` 中。变量作用域会在 `_CreateLayerVariables` 中根据层名自动设置。\n\n旧版发布的详细信息暂不可用。\n\n\u003C\u002Fp>\u003C\u002Fdetails>\n\n## 快速入门\n\n### 安装\n\n有两种方式来设置 Lingvo：通过 pip 安装固定版本，或者克隆仓库并使用 Bazel 构建。每种情况都提供了 Docker 配置。\n\n如果您只想直接使用该框架，最简单的方式是通过 pip 安装。这样可以使用冻结版本的 Lingvo 框架开发和训练自定义模型。然而，这种方式难以修改框架代码或实现新的自定义操作。\n\n如果您希望进一步开发框架并可能贡献 Pull Request，则应避免使用 pip，而选择克隆仓库。\n\n**pip:**\n\n可以通过 `pip3 install lingvo` 安装 [Lingvo pip 包](https:\u002F\u002Fpypi.org\u002Fproject\u002Flingvo)。\n\n有关如何开始使用 pip 包，请参阅 [codelab](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Fcodelabs\u002Fintroduction.ipynb)。\n\n**从源码安装:**\n\n所需条件如下：\n\n*   TensorFlow 2.7 的安装（[安装指南](https:\u002F\u002Fwww.tensorflow.org\u002Finstall\u002F)），\n*   C++ 编译器（官方仅支持 g++ 7.3），以及\n*   Bazel 构建系统。\n\n请参考 [docker\u002Fdev.Dockerfile](docker\u002Fdev.Dockerfile) 以获取一组可行的配置。\n\n使用 `git clone` 克隆仓库，然后使用 Bazel 直接构建和运行目标。Codelab 中的 `python -m module` 命令需要映射为 `bazel run` 命令。\n\n**Docker:**\n\n两种情况下都有可用的 Docker 配置。具体说明可在每个文件顶部的注释中找到。\n\n*   [lib.dockerfile](docker\u002Flib.dockerfile) 已预装 Lingvo pip 包。\n*   [dev.Dockerfile](docker\u002Fdev.Dockerfile) 可用于从源码构建 Lingvo。\n\n[Docker 安装指南](https:\u002F\u002Fdocs.docker.com\u002Finstall\u002Flinux\u002Fdocker-ce\u002Fubuntu\u002F)\n\n### 运行 MNIST 图像模型\n\n#### 准备输入数据\n\n**pip:**\n\n```shell\nmkdir -p \u002Ftmp\u002Fmnist\npython3 -m lingvo.tools.keras2ckpt --dataset=mnist\n```\n\n**bazel:**\n\n```shell\nmkdir -p \u002Ftmp\u002Fmnist\nbazel run -c opt \u002F\u002Flingvo\u002Ftools:keras2ckpt -- --dataset=mnist\n```\n\n以下文件将在 `\u002Ftmp\u002Fmnist` 中创建：\n\n*   `mnist.data-00000-of-00001`: 53MB。\n*   `mnist.index`: 241 字节。\n\n#### 运行模型\n\n**pip:**\n\n```shell\ncd \u002Ftmp\u002Fmnist\ncurl -O https:\u002F\u002Fraw.githubusercontent.com\u002Ftensorflow\u002Flingvo\u002Fmaster\u002Flingvo\u002Ftasks\u002Fimage\u002Fparams\u002Fmnist.py\npython3 -m lingvo.trainer --run_locally=cpu --mode=sync --model=mnist.LeNet5 --logdir=\u002Ftmp\u002Fmnist\u002Flog\n```\n\n**bazel:**\n\n```shell\n(cpu) bazel build -c opt \u002F\u002Flingvo:trainer\n(gpu) bazel build -c opt --config=cuda \u002F\u002Flingvo:trainer\nbazel-bin\u002Flingvo\u002Ftrainer --run_locally=cpu --mode=sync --model=image.mnist.LeNet5 --logdir=\u002Ftmp\u002Fmnist\u002Flog --logtostderr\n```\n\n大约 20 秒后，损失应降至 0.3 以下，并会保存一个检查点，如下所示。使用 Ctrl+C 终止训练程序。\n\n```\ntrainer.py:518] step:   205, steps\u002Fsec: 11.64 ... loss:0.25747201 ...\ncheckpointer.py:115] 保存检查点\ncheckpointer.py:117] 检查点保存完成：\u002Ftmp\u002Fmnist\u002Flog\u002Ftrain\u002Fckpt-00000205\n```\n\n在 `\u002Ftmp\u002Fmnist\u002Flog\u002Fcontrol` 中会产生一些文件：\n\n*   `params.txt`: 超参数。\n*   `model_analysis.txt`: 各层的模型大小。\n*   `train.pbtxt`: 训练用的 `tf.GraphDef`。\n*   `events.*`: TensorBoard 事件文件。\n\n同时，在 `\u002Ftmp\u002Fmnist\u002Flog\u002Ftrain` 中也会生成：\n\n*   `checkpoint`: 包含检查点文件信息的文本文件。\n*   `ckpt-*`: 检查点文件。\n\n现在，让我们在“测试”数据集上评估模型。在正常的训练设置中，训练器和评估器应作为两个独立的进程同时运行。\n\n**pip:**\n\n```shell\npython3 -m lingvo.trainer --job=evaler_test --run_locally=cpu --mode=sync --model=mnist.LeNet5 --logdir=\u002Ftmp\u002Fmnist\u002Flog\n```\n\n**bazel:**\n\n```shell\nbazel-bin\u002Flingvo\u002Ftrainer --job=evaler_test --run_locally=cpu --mode=sync --model=image.mnist.LeNet5 --logdir=\u002Ftmp\u002Fmnist\u002Flog --logtostderr\n```\n\n当它开始等待新的检查点时，使用 Ctrl+C 终止任务。\n\n```\nbase_runner.py:177] 未找到新检查点：\u002Ftmp\u002Fmnist\u002Flog\u002Ftrain\u002Fckpt-00000205\n```\n\n评估准确率可以在日志中稍早的位置找到。\n\n```\nbase_runner.py:111] eval_test: step:   205, acc5: 0.99775392, accuracy: 0.94150388, ..., loss: 0.20770954, ...\n```\n\n### 运行机器翻译模型\n\n要运行更复杂的模型，您需要一个配备 GPU 的集群。更多信息请参阅 [`third_party\u002Fpy\u002Flingvo\u002Ftasks\u002Fmt\u002FREADME.md`](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fmt\u002FREADME.md)。\n\n### 运行基于 GShard 变压器的巨型语言模型\n\n要在 GCP 上使用 CloudTPUs v3-512 和 512 路模型并行性训练具有一万亿参数的 GShard 语言模型，请参阅 [`third_party\u002Fpy\u002Flingvo\u002Ftasks\u002Flm\u002FREADME.md`](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Flm\u002FREADME.md) 获取更多信息。\n\n### 运行 3D 对象检测模型\n\n要在 GCP 上使用 CloudTPUs 运行 StarNet 模型，请参阅 [`third_party\u002Fpy\u002Flingvo\u002Ftasks\u002Fcar\u002FREADME.md`](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fcar\u002FREADME.md)。\n\n## 模型\n\n### 自动语音识别\n\n*   [Listen, Attend and Spell](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1508.01211.pdf)。\u003Cbr\u002F>\n    William Chan、Navdeep Jaitly、Quoc V. Le 和 Oriol Vinyals。ICASSP 2016。\n\n    [基于注意力的循环神经网络的端到端连续语音识别：初步结果](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1412.1602.pdf)。\u003Cbr\u002F>Jan Chorowski、Dzmitry Bahdanau、Kyunghyun Cho 和 Yoshua Bengio。arXiv 2014。\n\n    *   [asr.librispeech.Librispeech960Grapheme](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fasr\u002Fparams\u002Flibrispeech.py)\n    *   [asr.librispeech.Librispeech960Wpm](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fasr\u002Fparams\u002Flibrispeech.py)\n\n### 汽车\n*   [DeepFusion：用于多模态 3D 对象检测的激光雷达-摄像头深度融合](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2203.08195.pdf)。\u003Cbr\u002F>\n    Yingwei Li、Adams Wei Yu、Tianjian Meng、Ben Caine、Jiquan Ngiam、Daiyi Peng、Junyang Shen、Bo Wu、Yifeng Lu、Denny Zhou、Quoc V. Le、Alan Yuille、Mingxing Tan。CVPR 2022。\n    *   [car.waymo_deepfusion.DeepFusionCenterPointPed](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fcar\u002Fparams\u002Fwaymo_deepfusion.py)\n\n*   [StarNet：点云中对象检测的定向计算](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1908.11069.pdf)。\u003Cbr\u002F>\n    Jiquan Ngiam、Benjamin Caine、Wei Han、Brandon Yang、Yuning Chai、Pei Sun、Yin Zhou、Xi Yi、Ouais Alsharif、Patrick Nguyen、Zhifeng Chen、Jonathon Shlens 和 Vijay Vasudevan。arXiv 2019。\n\n    *   [car.kitti.StarNetCarModel0701](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fcar\u002Fparams\u002Fkitti.py)\n    *   [car.kitti.StarNetPedCycModel0704](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fcar\u002Fparams\u002Fkitti.py)\n    *   [car.waymo.StarNetVehicle](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fcar\u002Fparams\u002Fwaymo.py)\n    *   [car.waymo.StarNetPed](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fcar\u002Fparams\u002Fwaymo.py)\n\n### 图像\n*   [应用于文档识别的基于梯度的学习](http:\u002F\u002Fyann.lecun.com\u002Fexdb\u002Fpublis\u002Fpdf\u002Flecun-01a.pdf)。\u003Cbr\u002F>\n    Yann LeCun、Leon Bottou、Yoshua Bengio 和 Patrick Haffner。IEEE 1998。\n\n    *   [image.mnist.LeNet5](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fimage\u002Fparams\u002Fmnist.py)\n\n### 语言建模\n*   [探索语言模型的极限](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1602.02410.pdf)。\u003Cbr\u002F>\n    Rafal Jozefowicz、Oriol Vinyals、Mike Schuster、Noam Shazeer 和 Yonghui Wu。arXiv 2016。\n\n    *   [lm.one_billion_wds.WordLevelOneBwdsSimpleSampledSoftmax](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Flm\u002Fparams\u002Fone_billion_wds.py)\n\n*   [GShard：利用条件计算和自动分片扩展巨型模型](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2006.16668.pdf)。\u003Cbr\u002F>\n    Dmitry Lepikhin、HyoukJoong Lee、Yuanzhong Xu、Dehao Chen、Orhan Firat、Yanping Huang、Maxim Krikun、Noam Shazeer 和 Zhifeng Chen。arXiv 2020。\n\n    *   [lm.synthetic_packed_input.DenseLm1T16x16](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Flm\u002Fparams\u002Fsynthetic_packed_input.py)\n\n### 机器翻译\n\n*   [两全其美：结合神经机器翻译的最新进展](http:\u002F\u002Faclweb.org\u002Fanthology\u002FP18-1008)。\u003Cbr\u002F>\n    Mia X. Chen、Orhan Firat、Ankur Bapna、Melvin Johnson、Wolfgang Macherey、George Foster、Llion Jones、Mike Schuster、Noam Shazeer、Niki Parmar、Ashish Vaswani、Jakob Uszkoreit、Lukasz Kaiser、Zhifeng Chen、Yonghui Wu 和 Macduff Hughes。ACL 2018。\n\n    *   [mt.wmt14_en_de.WmtEnDeTransformerBase](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fmt\u002Fparams\u002Fwmt14_en_de.py)\n    *   [mt.wmt14_en_de.WmtEnDeRNMT](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fmt\u002Fparams\u002Fwmt14_en_de.py)\n    *   [mt.wmtm16_en_de.WmtCaptionEnDeTransformer](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fmt\u002Fparams\u002Fwmtm16_en_de.py)\n\n*   [资源丰富的神经机器翻译中的自监督与监督联合训练](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2106.04060.pdf)。\u003Cbr\u002F>\n    Yong Cheng、Wei Wang、Lu Jiang 和 Wolfgang Macherey。ICML 2021。\n\n    *   [mt.xendec.wmt14_en_de.WmtEnDeXEnDec](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Flingvo\u002Ftasks\u002Fmt\u002Fparams\u002Fxendec\u002Fwmt14_en_de.py)\n\n## 参考文献\n\n*   [API 文档](https:\u002F\u002Ftensorflow.github.io\u002Flingvo\u002F)\n*   [Codelab](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Fcodelabs\u002Fintroduction.ipynb)\n\n引用 Lingvo 时，请引用此[论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F1902.08295)。\n\n```\n@misc{shen2019lingvo,\n    title={Lingvo：一个模块化且可扩展的序列到序列建模框架},\n    author={Jonathan Shen、Patrick Nguyen、Yonghui Wu、Zhifeng Chen 等},\n    year={2019},\n    eprint={1902.08295},\n    archivePrefix={arXiv},\n    primaryClass={cs.LG}\n}\n```\n\n## 许可证\n\n[Apache 许可证 2.0](LICENSE)","# Lingvo 快速上手指南\n\nLingvo 是一个基于 TensorFlow 构建神经网络的框架，特别适用于序列模型（如语音识别、机器翻译等）。本指南将帮助中国开发者快速完成环境配置并运行第一个示例。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**: Linux (推荐 Ubuntu) 或 macOS。\n*   **Python**: 3.7 - 3.10 (推荐使用 3.8 或 3.9)。\n*   **TensorFlow**: 2.9 或更高版本 (兼容至 2.10)。\n*   **编译器**: g++ 7.3 (仅当从源码构建时需要)。\n*   **构建工具**: Bazel (仅当从源码构建时需要)。\n\n> **注意**：如果您仅需使用框架进行模型开发或训练，推荐通过 `pip` 安装，无需配置 C++ 编译器和 Bazel。\n\n## 安装步骤\n\n您可以选择通过 `pip` 安装稳定版，或通过源码克隆进行开发。\n\n### 方式一：通过 pip 安装（推荐）\n\n这是最简单的方式，适合大多数用户。\n\n```bash\npip3 install lingvo\n```\n\n*国内加速建议*：如果下载速度较慢，可使用国内镜像源：\n```bash\npip3 install lingvo -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n安装完成后，建议参考官方 Colab 教程熟悉基础用法：\n[https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Fcodelabs\u002Fintroduction.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Ftensorflow\u002Flingvo\u002Fblob\u002Fmaster\u002Fcodelabs\u002Fintroduction.ipynb)\n\n### 方式二：从源码构建（进阶）\n\n如果您需要修改框架代码或贡献 PR，请克隆仓库并使用 Bazel 构建。\n\n1.  **克隆仓库**：\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo.git\n    cd lingvo\n    ```\n\n2.  **构建与运行**：\n    使用 Bazel 直接构建和运行目标。注意，`python -m module` 命令需映射为 `bazel run` 命令。\n    \n    *参考 Docker 配置*: 项目提供了 `docker\u002Fdev.Dockerfile`，其中包含了完整的构建依赖环境，建议优先参考该文件配置本地环境。\n\n## 基本使用\n\n以下以运行 **MNIST 图像分类模型** 为例，演示完整流程。\n\n### 1. 准备数据\n\n首先需要将 MNIST 数据集转换为 Lingvo 所需的 checkpoint 格式。\n\n**如果你使用 pip 安装：**\n```shell\nmkdir -p \u002Ftmp\u002Fmnist\npython3 -m lingvo.tools.keras2ckpt --dataset=mnist\n```\n\n**如果你使用 bazel 构建：**\n```shell\nmkdir -p \u002Ftmp\u002Fmnist\nbazel run -c opt \u002F\u002Flingvo\u002Ftools:keras2ckpt -- --dataset=mnist\n```\n\n执行成功后，`\u002Ftmp\u002Fmnist` 目录下将生成 `mnist.data-00000-of-00001` 和 `mnist.index` 文件。\n\n### 2. 获取模型配置文件\n\n下载 MNIST 模型的参数配置文件：\n\n```shell\ncd \u002Ftmp\u002Fmnist\ncurl -O https:\u002F\u002Fraw.githubusercontent.com\u002Ftensorflow\u002Flingvo\u002Fmaster\u002Flingvo\u002Ftasks\u002Fimage\u002Fparams\u002Fmnist.py\n```\n*(注：国内网络若无法访问 raw.githubusercontent.com，可手动下载该文件或使用代理)*\n\n### 3. 开始训练\n\n启动训练任务。以下命令将在 CPU 上同步运行 LeNet5 模型。\n\n**如果你使用 pip 安装：**\n```shell\npython3 -m lingvo.trainer --run_locally=cpu --mode=sync --model=mnist.LeNet5 --logdir=\u002Ftmp\u002Fmnist\u002Flog\n```\n\n**如果你使用 bazel 构建：**\n```shell\n# CPU 构建\nbazel build -c opt \u002F\u002Flingvo:trainer\n# 运行\nbazel-bin\u002Flingvo\u002Ftrainer --run_locally=cpu --mode=sync --model=image.mnist.LeNet5 --logdir=\u002Ftmp\u002Fmnist\u002Flog --logtostderr\n```\n\n**预期输出**：\n约 20 秒后，Loss 应降至 0.3 以下，并保存 checkpoint：\n```text\ntrainer.py:518] step:   205, steps\u002Fsec: 11.64 ... loss:0.25747201 ...\ncheckpointer.py:115] Save checkpoint\ncheckpointer.py:117] Save checkpoint done: \u002Ftmp\u002Fmnist\u002Flog\u002Ftrain\u002Fckpt-00000205\n```\n按 `Ctrl+C` 停止训练。\n\n### 4. 评估模型\n\n训练完成后，使用测试集评估模型准确率。\n\n**如果你使用 pip 安装：**\n```shell\npython3 -m lingvo.trainer --job=evaler_test --run_locally=cpu --mode=sync --model=mnist.LeNet5 --logdir=\u002Ftmp\u002Fmnist\u002Flog\n```\n\n**如果你使用 bazel 构建：**\n```shell\nbazel-bin\u002Flingvo\u002Ftrainer --job=evaler_test --run_locally=cpu --mode=sync --model=image.mnist.LeNet5 --logdir=\u002Ftmp\u002Fmnist\u002Flog --logtostderr\n```\n\n**预期输出**：\n日志中将显示评估结果，例如：\n```text\nbase_runner.py:111] eval_test: step:   205, acc5: 0.99775392, accuracy: 0.94150388, ..., loss: 0.20770954, ...\n```\n\n---\n*更多复杂模型（如机器翻译、GShard 大语言模型、3D 物体检测）的运行方法，请参考项目仓库中对应任务目录下的 `README.md` 文件。*","某跨国科技公司的算法团队正致力于构建一个支持多语种的高精度语音识别系统，以优化其全球会议转录服务。\n\n### 没有 lingvo 时\n- 团队需从零搭建复杂的序列模型架构，重复编写大量底层 TensorFlow 代码，导致开发周期长达数月。\n- 在尝试复现顶级学术会议（如 ICASSP）的语音识别模型时，因缺乏标准化的组件库，难以对齐论文中的网络结构。\n- 不同工程师编写的训练脚本风格迥异，超参数配置混乱，导致模型实验结果无法公平对比，复现性极差。\n- 扩展至新语言或调整模型规模时，需手动修改大量耦合代码，极易引入隐蔽的 Bug 且维护成本高昂。\n\n### 使用 lingvo 后\n- 直接调用 lingvo 内置的成熟序列模型框架和预定义层，将核心模型的开发时间从数月缩短至数周。\n- 利用官方提供的自动语音识别（ASR）参考实现，快速复现并微调业界领先的模型架构，确保技术起点处于前沿。\n- 借助统一的配置系统和实验管理规范，团队成员能轻松共享和复现实验设置，显著提升了协作效率与结果可信度。\n- 通过模块化设计灵活替换编码器或解码器组件，轻松适配不同语种数据，并在不改动核心逻辑的前提下实现模型规模化扩展。\n\nlingvo 通过提供标准化、模块化的序列建模框架，让团队从繁琐的基础设施构建中解放出来，专注于核心算法的创新与迭代。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftensorflow_lingvo_d973e8c0.png","tensorflow","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Ftensorflow_07ed5093.png","",null,"github-admin@tensorflow.org","http:\u002F\u002Fwww.tensorflow.org","https:\u002F\u002Fgithub.com\u002Ftensorflow",[80,84,88,92,96,100,103,107],{"name":81,"color":82,"percentage":83},"Python","#3572A5",91.1,{"name":85,"color":86,"percentage":87},"C++","#f34b7d",5.9,{"name":89,"color":90,"percentage":91},"Starlark","#76d275",1.7,{"name":93,"color":94,"percentage":95},"Shell","#89e051",0.5,{"name":97,"color":98,"percentage":99},"TeX","#3D6117",0.4,{"name":101,"color":102,"percentage":99},"Jupyter Notebook","#DA5B0B",{"name":104,"color":105,"percentage":106},"Dockerfile","#384d54",0.1,{"name":108,"color":109,"percentage":106},"C","#555555",2860,450,"2026-04-02T08:37:35","Apache-2.0",4,"Linux","训练复杂模型（如机器翻译、GShard）需要 GPU 集群或 Cloud TPUs。官方 Docker 配置支持 CUDA (通过 --config=cuda 构建)，具体显存和 CUDA 版本取决于安装的 TensorFlow 版本，文中未明确指定最低显存要求。","未说明",{"notes":119,"python":120,"dependencies":121},"1. 核心依赖是 TensorFlow (0.12.4 版本要求 TF 2.9，兼容至 2.10)。2. 从源码构建必须使用 Bazel 构建系统和 g++ 7.3 编译器。3. 官方仅提供 Linux 环境的 Docker 配置 (dev.Dockerfile\u002Flib.dockerfile)，Windows 和 macOS 原生支持未明确提及，建议通过 Docker 运行。4. 大规模模型（如万亿参数 GShard）需要在 GCP 上使用 Cloud TPUs v3-512 集群。5. 可通过 pip 安装直接使用，或通过 git clone + bazel 进行开发。","3.7 - 3.10 (0.12.4 版本移除 3.7 支持，推荐 3.8-3.10；旧版本支持情况不同)",[122,123,124],"tensorflow>=2.9","bazel","g++ 7.3",[14,126,35,127],"音频","其他",[129,130,131,132,133,134,135,136,137,138,139,72,140,141,142,143,144],"speech-recognition","translation","speech-to-text","machine-translation","mnist","seq2seq","language-model","tts","asr","lm","nlp","speech","research","distributed","gpu-computing","speech-synthesis","2026-03-27T02:49:30.150509","2026-04-18T00:45:52.786943",[148,153,158,163,168,173],{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},38345,"构建时出现 'undefined reference to google::protobuf::FileDescriptor::DebugString()' 链接错误怎么办？","这通常是由于 C++ ABI 兼容性设置不匹配导致的。解决方法是修改 `lingvo\u002Flingvo.bzl` 文件中的编译标志。\n\n具体步骤：\n1. 打开 `lingvo\u002Flingvo.bzl` 文件。\n2. 找到 `tf_copts()` 函数。\n3. 将 `-D_GLIBCXX_USE_CXX11_ABI=0` 修改为 `-D_GLIBCXX_USE_CXX11_ABI=1`。\n\n修改后的代码片段如下：\n```python\ndef tf_copts():\n    return [\"-D_GLIBCXX_USE_CXX11_ABI=1\", \"-Wno-sign-compare\", \"-mavx\"] + select({\n        \"\u002F\u002Flingvo:cuda\": [\"-DGOOGLE_CUDA=1\"],\n        \"\u002F\u002Fconditions:default\": [],\n    })\n```\n保存后重新运行 `bazel build` 即可解决该问题。","https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fissues\u002F32",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},38346,"如何在 Predictor 中使用 tf_debug (如 TensorBoardDebugWrapperSession) 来调试 RNN 推理过程中的张量值？","在 Lingvo 的 Predictor 中直接使用 `TensorBoardDebugWrapperSession` 或 `LocalCLIDebugWrapperSession` 可能会遇到编码错误或会话包装问题（例如 `UnicodeDecodeError`）。\n\n目前社区反馈表明，直接修改 `predictor.py` 包裹 session 的方法容易引发底层 TensorFlow debug 库的编码问题（特别是涉及非 ASCII 字符时）。维护者建议如果没有特别的变通方案，可能需要等待 TensorFlow debug 团队的修复。如果遇到 `UnicodeDecodeError: 'ascii' codec can't decode byte...`，这通常是 TensorFlow 内部调试库在处理图元素名称时的已知限制，尝试转换编码格式可能无效。建议暂时通过打印日志或在模型定义阶段插入 `tf.print` 来进行调试，而不是依赖运行时 Debug Session 包裹。","https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fissues\u002F94",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},38347,"如何在正在执行的 tf.Session 图中调用另一个模型（例如在 ASR 模型中调用语言模型）？","TensorFlow 不允许直接将一个图中的张量（Tensor）作为 `feed_dict` 传递给另一个独立的图或会话。\n\n解决方案通常涉及以下思路：\n1. **模型融合**：在构建图的过程中，将语言模型直接作为子网络集成到 ASR 模型的计算图中，这样它们共享同一个 Session 和张量流，无需通过 `feed_dict` 传递中间结果。\n2. **使用控制依赖**：如果必须分离，需确保两个模型在同一个图定义中实例化，并通过 TensorFlow 的操作（Ops）直接连接张量，而不是在会话运行期间动态传递。\n\n关于语言模型融合的具体参数（如 fusion lambda），通常在 0.1 到 0.3 之间，建议在开发集上进行微调以找到最佳值。参考论文：https:\u002F\u002Farxiv.org\u002Fpdf\u002F1807.10857.pdf (Section 4.1.2 & 4.2.2)。","https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fissues\u002F108",{"id":164,"question_zh":165,"answer_zh":166,"source_url":167},38348,"运行模型训练时出现 'list index out of range' 错误是什么原因？","该错误通常发生在命令行参数解析阶段。当使用 `tf.app.run(trainer.main, argv=argv)` 时，如果传入的参数列表为空或缺少必要的参数（如实验配置路径、模型参数等），代码尝试访问不存在的列表索引就会报错。\n\n解决方法：\n1. 检查启动脚本或命令行输入，确保提供了所有必需的参数。\n2. 确认 `argv` 列表在传递给 `trainer.main` 之前包含了正确的配置文件路径或标志位。\n3. 如果是默认配置运行，检查代码中是否有硬编码的索引访问逻辑未对空列表做防御性判断。","https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fissues\u002F22",{"id":169,"question_zh":170,"answer_zh":171,"source_url":172},38349,"本地构建时出现 'no such package '@subpar\u002F\u002F'' 或 'error cloning subpar' 错误如何解决？","此错误表示 Bazel 无法克隆或找到 `subpar` 依赖包。这通常与网络问题或 Bazel 的外部仓库配置有关。\n\n此外，如果该问题解决后仍遇到链接错误（如 protobuf 相关），请参照 Issue #32 的解决方案，修改 `lingvo\u002Flingvo.bzl` 中的 ABI 标志。\n\n对于虚拟环境用户，如果 `lingvo\u002Frepo.bzl` 中的路径检测函数失效，可能需要手动修复这些函数以返回正确的虚拟环境目录路径。确保 Bazel 能够访问互联网以克隆外部仓库，或者检查防火墙设置。","https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fissues\u002F23",{"id":174,"question_zh":175,"answer_zh":176,"source_url":177},38350,"运行大型模型（如 GPipe Transformer）时遇到 OOM (显存不足) 问题怎么办？","运行十亿词级（One Billion Words）等大型模型时，显存不足是常见问题。\n\n建议采取以下措施：\n1. **减小 Batch Size**：降低每次迭代处理的样本数量。\n2. **使用 GPipe**：Lingvo 支持 GPipe 进行模型并行训练，可以将大模型切分到多个 GPU 上。确保在参数配置中正确启用了 GPipe 相关设置（如 `num_micro_batches`）。\n3. **混合精度训练**：如果硬件支持（如 Volta 架构及以后的 GPU），启用混合精度（FP16）可以显著减少显存占用。\n4. **检查配置参数**：参考 `lingvo\u002Ftasks\u002Flm\u002Fparams\u002Fone_billion_wds.py` 中的注释，确认是否按照推荐的大模型配置进行了调整。","https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Flingvo\u002Fissues\u002F100",[]]