[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-lvapeab--nmt-keras":3,"tool-lvapeab--nmt-keras":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 真正成长为懂上",149489,2,"2026-04-10T11:32:46",[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":76,"owner_website":79,"owner_url":80,"languages":81,"stars":90,"forks":91,"last_commit_at":92,"license":93,"difficulty_score":94,"env_os":95,"env_gpu":96,"env_ram":95,"env_deps":97,"category_tags":107,"github_topics":108,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":126,"updated_at":127,"faqs":128,"releases":157},6399,"lvapeab\u002Fnmt-keras","nmt-keras","Neural Machine Translation with Keras ","nmt-keras 是一个基于 Keras 框架构建的开源神经机器翻译（NMT）工具库，旨在帮助开发者高效地训练和部署高质量的文本翻译模型。它主要解决了从零搭建复杂翻译系统门槛高、复现前沿算法困难的问题，让用户能专注于模型优化而非底层代码实现。\n\n这款工具非常适合自然语言处理领域的研究人员、算法工程师以及希望深入理解机器翻译机制的开发者使用。其核心技术亮点在于全面支持当前主流的翻译架构，既包含经典的注意力循环神经网络（RNN），也集成了高效的 Transformer 模型。此外，nmt-keras 提供了丰富的进阶功能，如多 GPU 并行加速训练、束搜索（Beam Search）解码、集成学习以及交互式神经机器翻译（INMT）。它还内置了多种注意力机制（如 Bahdanau 和 Luong）、标签平滑技术以及超参数优化工具，并支持与 TensorBoard 集成以可视化训练过程。无论是进行学术研究还是构建实际的多语言翻译应用，nmt-keras 都能提供灵活且强大的技术支持。","# NMT-Keras\n\n[![Documentation](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flvapeab_nmt-keras_readme_13d664e1afd7.png)](https:\u002F\u002Fnmt-keras.readthedocs.io) [![Build Status](https:\u002F\u002Ftravis-ci.org\u002Flvapeab\u002Fnmt-keras.svg)](https:\u002F\u002Ftravis-ci.org\u002Flvapeab\u002Fnmt-keras) [![Open in colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Ftutorial.ipynb)  ![Compatibility](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.7-blue.svg) [![license](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fmashape\u002Fapistatus.svg)](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002FLICENSE)\n\nNeural Machine Translation with Keras.\n\nLibrary documentation: [nmt-keras.readthedocs.io](https:\u002F\u002Fnmt-keras.readthedocs.io)\n\n\u003C!--\u003Cdiv align=\"left\">-->\n  \u003C!--\u003Cbr>\u003Cbr>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Flvapeab\u002Fnmt-keras\u002Fmaster\u002Fexamples\u002Fdocumentation\u002Fattention_nmt_model.png?token=AEf6E5RhGVqGRSmYi87EbtiGZK7lPxrFks5ZAx-KwA%3D%3D\">\u003Cbr>\u003Cbr>-->\n\u003C!--\u003C\u002Fdiv>-->\n\n\u003C!--\u003Cdiv align=\"left\">-->\n  \u003C!--\u003Cbr>\u003Cbr>\u003Cimg  width=\"100%\" \"height:100%\" \"object-fit: cover\" \"overflow: hidden\" src=\"\">\u003Cbr>\u003Cbr>-->\n\u003C!--\u003C\u002Fdiv>-->\n\n## Attentional recurrent neural network NMT model\n![alt text](examples\u002Fdocumentation\u002Fattention_nmt_model.png \"RNN NMT\")\n\n## Transformer NMT model\n![alt text](examples\u002Fdocumentation\u002Ftransformer_nmt_model.png \"Transformer NMT\")\n#\n\n\n## Features (in addition to the full Keras cosmos): .\n * :heavy_exclamation_mark: Multi-GPU training (only for Tensorflow). \n * [Transformer model](https:\u002F\u002Farxiv.org\u002Fabs\u002F1706.03762).\n * [Tensorboard integration](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Fdocumentation\u002Ftensorboard_integration.md).\n * Online learning and Interactive neural machine translation (INMT). See [the interactive NMT branch](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Ftree\u002Finteractive_NMT).\n * Attention model over the input sequence of annotations.\n   - Supporting [Bahdanau (Add)](https:\u002F\u002Farxiv.org\u002Fabs\u002F1409.0473) [Luong (Dot)](https:\u002F\u002Farxiv.org\u002Fabs\u002F1508.04025) attention mechanisms.\n   - Also supports double stochastic attention (Eq. 14 from [arXiv:1502.03044](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1502.03044.pdf))\n * Peeked decoder: The previously generated word is an input of the current timestep.\n * Beam search decoding.\n * Ensemble decoding ([sample_ensemble.py](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fsample_ensemble.py)).\n   - Featuring length and source coverage normalization ([reference](https:\u002F\u002Farxiv.org\u002Fabs\u002F1609.08144)).\n * Translation scoring ([score.py](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fsample_ensemble.py)).\n * Model averaging ([utils\u002Fmodel_average.py](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Futils\u002Faverage_models.py)).\n * Support for GRU\u002FLSTM networks:\n   - Regular GRU\u002FLSTM units.\n   - [Conditional](https:\u002F\u002Farxiv.org\u002Fabs\u002F1703.04357) GRU\u002FLSTM units in the decoder.   \n   - Multilayered residual GRU\u002FLSTM networks (and their Conditional version).\n * [Label smoothing](https:\u002F\u002Farxiv.org\u002Fabs\u002F1512.00567).  \n * N-best list generation (as byproduct of the beam search process).\n * Unknown words replacement (see Section 3.3 from [this paper](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1412.2007v2.pdf))\n * Use of pretrained ([Glove](http:\u002F\u002Fnlp.stanford.edu\u002Fprojects\u002Fglove\u002F) or [Word2Vec](https:\u002F\u002Fcode.google.com\u002Farchive\u002Fp\u002Fword2vec\u002F)) word embedding vectors.\n * MLPs for initializing the RNN hidden and memory state.\n * [Spearmint](https:\u002F\u002Fgithub.com\u002FHIPS\u002FSpearmint) [wrapper](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Ftree\u002Fmaster\u002Fmeta-optimizers\u002Fspearmint) for hyperparameter optimization.\n * [Client-server](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Ftree\u002Fmaster\u002Fdemo-web) architecture for web demos:\n    - Regular NMT.\n    - [Interactive NMT](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Ftree\u002Finteractive_NMT).\n    - [Check out the demo!](http:\u002F\u002Fcasmacat.prhlt.upv.es\u002Finmt)\n    \n## Installation\n\nAssuming that you have [pip](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPip_(package_manager)) installed and updated (>18), run:\n  \n  ```bash\n  git clone https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\n  cd nmt-keras\n  pip install -e .\n  ```\n \n for installing the library.\n \n\n### Requirements\n\nNMT-Keras requires the following libraries:\n\n - [Our version of Keras](https:\u002F\u002Fgithub.com\u002FMarcBS\u002Fkeras) (Recommended v. 2.0.7 or newer).\n - [Multimodal Keras Wrapper](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fmultimodal_keras_wrapper) (v. 2.0 or newer). ([Documentation](http:\u002F\u002Fmarcbs.github.io\u002Fstaged_keras_wrapper\u002F) and [tutorial](http:\u002F\u002Fmarcbs.github.io\u002Fmultimodal_keras_wrapper\u002Ftutorial.html)).\n\n\nFor accelerating the training and decoding on CUDA GPUs, you can optionally install:\n\n - [CuDNN](https:\u002F\u002Fdeveloper.nvidia.com\u002Fcudnn).\n - [CuPy](https:\u002F\u002Fgithub.com\u002Fcupy\u002Fcupy).\n\nFor evaluating with additional metrics (Meteor, TER, etc), you can use the [Coco-caption evaluation package](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fcoco-caption\u002Ftree\u002Fmaster\u002Fpycocoevalcap\u002F) and set `METRICS='coco'` in the `config.py` file. This package requires `java` (version 1.8.0 or newer).\n\n\n## Usage\n\n### Training\n 1) Set a training configuration in the `config.py` script. Each parameter is commented. See the [documentation file](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Fdocumentation\u002Fconfig.md) for further info about each specific hyperparameter.\n You can also specify the parameters when calling the `main.py` script following the syntax `Key=Value`\n\n 2) Train!:\n\n  ``\n python main.py\n ``\n\n\n### Decoding\n Once we have our model trained, we can translate new text using the [sample_ensemble.py](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fsample_ensemble.py) script. Please refer to the [ensembling_tutorial](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Fdocumentation\u002Fensembling_tutorial.md) for more details about this script. \nIn short, if we want to use the models from the first three epochs to translate the `examples\u002FEuTrans\u002Ftest.en` file, just run:\n ```bash\n  python sample_ensemble.py \n              --models trained_models\u002Ftutorial_model\u002Fepoch_1 \\ \n                       trained_models\u002Ftutorial_model\u002Fepoch_2 \\\n              --dataset datasets\u002FDataset_tutorial_dataset.pkl \\\n              --text examples\u002FEuTrans\u002Ftest.en\n  ```\n \n \n### Scoring\n \n The [score.py](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fscore.py) script can be used to obtain the (-log)probabilities of a parallel corpus. Its syntax is the following:\n```\npython score.py --help\nusage: Use several translation models for scoring source--target pairs\n       [-h] -ds DATASET [-src SOURCE] [-trg TARGET] [-s SPLITS [SPLITS ...]]\n       [-d DEST] [-v] [-c CONFIG] --models MODELS [MODELS ...]\noptional arguments:\n    -h, --help            show this help message and exit\n    -ds DATASET, --dataset DATASET\n                            Dataset instance with data\n    -src SOURCE, --source SOURCE\n                            Text file with source sentences\n    -trg TARGET, --target TARGET\n                            Text file with target sentences\n    -s SPLITS [SPLITS ...], --splits SPLITS [SPLITS ...]\n                            Splits to sample. Should be already includedinto the\n                            dataset object.\n    -d DEST, --dest DEST  File to save scores in\n    -v, --verbose         Be verbose\n    -c CONFIG, --config CONFIG\n                            Config pkl for loading the model configuration. If not\n                            specified, hyperparameters are read from config.py\n    --models MODELS [MODELS ...]\n                            path to the models\n  ```\n  \n  \n### Advanced features\n Other features such as online learning or interactive NMT protocols are implemented in the [interactiveNMT](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Ftree\u002Finteractive_NMT) branch.\n\n\n## Resources\n\n * [examples\u002Fdocumentation\u002Fnmt-keras_paper.pdf](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Fdocumentation\u002Fnmt-keras_paper.pdf) contains a general overview of the NMT-Keras framework.\n \n * In [examples\u002Fdocumentation\u002Fneural_machine_translation.pdf](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Fdocumentation\u002Fneural_machine_translation.pdf) you'll find an overview of an attentional NMT system.\n\n * In the [examples](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002F) folder you'll find  2 colab notebooks, explaining the basic usage of this library:\n \n * An introduction to a complete NMT experiment: [![Open in colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Ftutorial.ipynb) \n  * A dissected NMT model: [![Open in colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Fmodeling_tutorial.ipynb) \n \n\n * In the [examples\u002Fconfigs](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Fconfigs) folder you'll find two examples of configs for larger models.\n\n## Citation\n\nIf you use this toolkit in your research, please cite:\n\n```\n@article{nmt-keras:2018,\n journal = {The Prague Bulletin of Mathematical Linguistics},\n title = {{NMT-Keras: a Very Flexible Toolkit with a Focus on Interactive NMT and Online Learning}},\n author = {\\'{A}lvaro Peris and Francisco Casacuberta},\n year = {2018},\n volume = {111},\n pages = {113--124},\n doi = {10.2478\u002Fpralin-2018-0010},\n issn = {0032-6585},\n url = {https:\u002F\u002Fufal.mff.cuni.cz\u002Fpbml\u002F111\u002Fart-peris-casacuberta.pdf}\n}\n```\n\n\nNMT-Keras was used in a number of papers:\n\n* [Online Learning for Effort Reduction in Interactive Neural Machine Translation](https:\u002F\u002Farxiv.org\u002Fabs\u002F1802.03594)\n* [Adapting Neural Machine Translation with Parallel Synthetic Data](http:\u002F\u002Fwww.statmt.org\u002Fwmt17\u002Fpdf\u002FWMT14.pdf)\n* [Online Learning for Neural Machine Translation Post-editing](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1706.03196.pdf)\n\n\n### Acknowledgement\n\nMuch of this library has been developed together with [Marc Bolaños](https:\u002F\u002Fgithub.com\u002FMarcBS) ([web page](http:\u002F\u002Fwww.ub.edu\u002Fcvub\u002Fmarcbolanos\u002F)) for other sequence-to-sequence problems. \n\nTo see other projects following the same philosophy and style of NMT-Keras, take a look to:\n\n[TMA: Egocentric captioning based on temporally-linked sequences](https:\u002F\u002Fgithub.com\u002FMarcBS\u002FTMA).\n\n[VIBIKNet: Visual question answering](https:\u002F\u002Fgithub.com\u002FMarcBS\u002FVIBIKNet).\n\n[ABiViRNet: Video description](https:\u002F\u002Fgithub.com\u002Flvapeab\u002FABiViRNet).\n\n[Sentence SelectioNN: Sentence classification and selection](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fsentence-selectioNN).\n\n[DeepQuest: State-of-the-art models for multi-level Quality Estimation](https:\u002F\u002Fgithub.com\u002Fsheffieldnlp\u002FdeepQuest).\n\n\n### Warning!\n\nThe `Theano` backend is not tested anymore, although it should work. There is a [known issue](https:\u002F\u002Fgithub.com\u002FTheano\u002FTheano\u002Fissues\u002F5994) with the `Theano` backend. When running `NMT-Keras`, it will show the following message:\n\n```\n[...]\nraise theano.gof.InconsistencyError(\"Trying to reintroduce a removed node\")\nInconsistencyError: Trying to reintroduce a removed node\n```\n\nIt is not a critical error, the model keeps working and it is safe to ignore it. However, if you want the message to be gone, use the Theano flag `optimizer_excluding=scanOp_pushout_output`.\n\n\n\n## Contact\n\nÁlvaro Peris ([web page](http:\u002F\u002Flvapeab.github.io\u002F)): lvapeab@prhlt.upv.es \n\n","# NMT-Keras\n\n[![文档](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flvapeab_nmt-keras_readme_13d664e1afd7.png)](https:\u002F\u002Fnmt-keras.readthedocs.io) [![构建状态](https:\u002F\u002Ftravis-ci.org\u002Flvapeab\u002Fnmt-keras.svg)](https:\u002F\u002Ftravis-ci.org\u002Flvapeab\u002Fnmt-keras) [![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Ftutorial.ipynb)  ![兼容性](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.7-blue.svg) [![许可证](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fmashape\u002Fapistatus.svg)](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002FLICENSE)\n\n使用 Keras 的神经机器翻译。\n\n库文档：[nmt-keras.readthedocs.io](https:\u002F\u002Fnmt-keras.readthedocs.io)\n\n\u003C!--\u003Cdiv align=\"left\">-->\n  \u003C!--\u003Cbr>\u003Cbr>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Flvapeab\u002Fnmt-keras\u002Fmaster\u002Fexamples\u002Fdocumentation\u002Fattention_nmt_model.png?token=AEf6E5RhGVqGRSmYi87EbtiGZK7lPxrFks5ZAx-KwA%3D%3D\">\u003Cbr>\u003Cbr>-->\n\u003C!--\u003C\u002Fdiv>-->\n\n\u003C!--\u003Cdiv align=\"left\">-->\n  \u003C!--\u003Cbr>\u003Cbr>\u003Cimg  width=\"100%\" \"height:100%\" \"object-fit: cover\" \"overflow: hidden\" src=\"\">\u003Cbr>\u003Cbr>-->\n\u003C!--\u003C\u002Fdiv>-->\n\n## 注意力循环神经网络 NMT 模型\n![alt text](examples\u002Fdocumentation\u002Fattention_nmt_model.png \"RNN NMT\")\n\n## Transformer NMT 模型\n![alt text](examples\u002Fdocumentation\u002Ftransformer_nmt_model.png \"Transformer NMT\")\n#\n\n\n## 功能（除了完整的 Keras 生态系统之外）：\n * :heavy_exclamation_mark: 多 GPU 训练（仅适用于 Tensorflow）。\n * [Transformer 模型](https:\u002F\u002Farxiv.org\u002Fabs\u002F1706.03762)。\n * [TensorBoard 集成](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Fdocumentation\u002Ftensorboard_integration.md)。\n * 在线学习和交互式神经机器翻译 (INMT)。请参阅 [交互式 NMT 分支](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Ftree\u002Finteractive_NMT)。\n * 对输入序列的注释应用注意力机制。\n   - 支持 [Bahdanau (Add)](https:\u002F\u002Farxiv.org\u002Fabs\u002F1409.0473) 和 [Luong (Dot)](https:\u002F\u002Farxiv.org\u002Fabs\u002F1508.04025) 注意力机制。\n   - 还支持双重随机注意力（来自 [arXiv:1502.03044](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1502.03044.pdf) 的公式 14）。\n * 透视解码器：前一时刻生成的词作为当前时间步的输入。\n * 束搜索解码。\n * 集成解码（[sample_ensemble.py](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fsample_ensemble.py)）。\n   - 包含长度和源端覆盖率归一化（[参考文献](https:\u002F\u002Farxiv.org\u002Fabs\u002F1609.08144)）。\n * 翻译评分（[score.py](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fsample_ensemble.py)）。\n * 模型平均（[utils\u002Fmodel_average.py](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Futils\u002Faverage_models.py)）。\n * 支持 GRU\u002FLSTM 网络：\n   - 常规 GRU\u002FLSTM 单元。\n   - 解码器中的[条件式](https:\u002F\u002Farxiv.org\u002Fabs\u002F1703.04357) GRU\u002FLSTM 单元。\n   - 多层残差 GRU\u002FLSTM 网络（及其条件式版本）。\n * [标签平滑](https:\u002F\u002Farxiv.org\u002Fabs\u002F1512.00567)。\n * 生成 N-best 列表（作为束搜索过程的副产品）。\n * 未知词替换（参见 [这篇论文](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1412.2007v2.pdf) 第 3.3 节）。\n * 使用预训练的 ([Glove](http:\u002F\u002Fnlp.stanford.edu\u002Fprojects\u002Fglove\u002F) 或 [Word2Vec](https:\u002F\u002Fcode.google.com\u002Farchive\u002Fp\u002Fword2vec\u002F)) 词嵌入向量。\n * 用于初始化 RNN 隐状态和记忆状态的 MLP。\n * [Spearmint](https:\u002F\u002Fgithub.com\u002FHIPS\u002FSpearmint) [包装器](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Ftree\u002Fmaster\u002Fmeta-optimizers\u002Fspearmint) 用于超参数优化。\n * [客户端-服务器](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Ftree\u002Fmaster\u002Fdemo-web) 架构用于 Web 演示：\n    - 常规 NMT。\n    - [交互式 NMT](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Ftree\u002Finteractive_NMT)。\n    - [查看演示！](http:\u002F\u002Fcasmacat.prhlt.upv.es\u002Finmt)\n    \n## 安装\n\n假设您已安装并更新了 [pip](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPip_(package_manager))（>18），请运行：\n\n  ```bash\n  git clone https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\n  cd nmt-keras\n  pip install -e .\n  ```\n \n 以安装该库。\n \n\n### 要求\n\nNMT-Keras 需要以下库：\n\n - [我们版本的 Keras](https:\u002F\u002Fgithub.com\u002FMarcBS\u002Fkeras)（推荐 v. 2.0.7 或更高版本）。\n - [多模态 Keras 包装器](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fmultimodal_keras_wrapper)（v. 2.0 或更高版本）。([文档](http:\u002F\u002Fmarcbs.github.io\u002Fstaged_keras_wrapper\u002F) 和 [教程](http:\u002F\u002Fmarcbs.github.io\u002Fmultimodal_keras_wrapper\u002Ftutorial.html))。\n\n\n为了加速在 CUDA GPU 上的训练和解码，您可以选择安装：\n\n - [CuDNN](https:\u002F\u002Fdeveloper.nvidia.com\u002Fcudnn)。\n - [CuPy](https:\u002F\u002Fgithub.com\u002Fcupy\u002Fcupy)。\n\n若要使用额外的指标（Meteor、TER 等）进行评估，可以使用 [Coco-caption 评估包](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fcoco-caption\u002Ftree\u002Fmaster\u002Fpycocoevalcap\u002F)，并在 `config.py` 文件中设置 `METRICS='coco'`。该包需要 `java`（版本 1.8.0 或更高）。\n\n\n## 使用方法\n\n### 训练\n 1) 在 `config.py` 脚本中设置训练配置。每个参数都有注释说明。有关每个特定超参数的更多信息，请参阅 [文档文件](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Fdocumentation\u002Fconfig.md)。\n 您也可以在调用 `main.py` 脚本时按照 `Key=Value` 的语法指定参数。\n\n 2) 开始训练！\n\n  ``\n python main.py\n ``\n\n\n### 解码\n 训练好模型后，我们可以使用 [sample_ensemble.py](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fsample_ensemble.py) 脚本来翻译新文本。有关此脚本的更多详细信息，请参阅 [集成教程](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Fdocumentation\u002Fensembling_tutorial.md)。\n 简而言之，如果我们想使用前三个 epoch 的模型来翻译 `examples\u002FEuTrans\u002Ftest.en` 文件，只需运行：\n ```bash\n  python sample_ensemble.py \n              --models trained_models\u002Ftutorial_model\u002Fepoch_1 \\ \n                       trained_models\u002Ftutorial_model\u002Fepoch_2 \\\n              --dataset datasets\u002FDataset_tutorial_dataset.pkl \\\n              --text examples\u002FEuTrans\u002Ftest.en\n  ```\n\n### 评分\n \n 可以使用 [score.py](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fscore.py) 脚本来获取平行语料库的（-log）概率。其语法如下：\n```\npython score.py --help\n用法：使用多个翻译模型对源语言—目标语言对进行评分\n       [-h] -ds DATASET [-src SOURCE] [-trg TARGET] [-s SPLITS [SPLITS ...]]\n       [-d DEST] [-v] [-c CONFIG] --models MODELS [MODELS ...]\n可选参数：\n    -h, --help            显示此帮助信息并退出\n    -ds DATASET, --dataset DATASET\n                            包含数据的数据集实例\n    -src SOURCE, --source SOURCE\n                            包含源语言句子的文本文件\n    -trg TARGET, --target TARGET\n                            包含目标语言句子的文本文件\n    -s SPLITS [SPLITS ...], --splits SPLITS [SPLITS ...]\n                            用于采样的分割。应已包含在数据集对象中。\n    -d DEST, --dest DEST  保存评分结果的文件\n    -v, --verbose         输出详细信息\n    -c CONFIG, --config CONFIG\n                            用于加载模型配置的 config pkl 文件。若未指定，则从 config.py 中读取超参数\n    --models MODELS [MODELS ...]\n                            模型路径\n  ```\n  \n  \n### 高级功能\n 其他功能，例如在线学习或交互式 NMT 协议，已在 [interactiveNMT](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Ftree\u002Finteractive_NMT) 分支中实现。\n\n\n## 资源\n\n * [examples\u002Fdocumentation\u002Fnmt-keras_paper.pdf](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Fdocumentation\u002Fnmt-keras_paper.pdf) 包含 NMT-Keras 框架的总体概述。\n \n * 在 [examples\u002Fdocumentation\u002Fneural_machine_translation.pdf](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Fdocumentation\u002Fneural_machine_translation.pdf) 中，您可以找到关于注意力机制 NMT 系统的概述。\n\n * 在 [examples](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002F) 文件夹中，您会找到 2 个 Colab 笔记本，解释了该库的基本用法：\n \n * 完整 NMT 实验简介：[![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Ftutorial.ipynb) \n  * 解剖后的 NMT 模型：[![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Fmodeling_tutorial.ipynb) \n \n\n * 在 [examples\u002Fconfigs](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Fconfigs) 文件夹中，您会找到两个大型模型的配置示例。\n\n## 引用\n\n如果您在研究中使用此工具包，请引用以下内容：\n\n```\n@article{nmt-keras:2018,\n journal = {布拉格数学语言学通报},\n title = {{NMT-Keras：一个非常灵活的工具包，专注于交互式 NMT 和在线学习}},\n author = {Álvaro Peris 和 Francisco Casacuberta},\n year = {2018},\n volume = {111},\n pages = {113--124},\n doi = {10.2478\u002Fpralin-2018-0010},\n issn = {0032-6585},\n url = {https:\u002F\u002Fufal.mff.cuni.cz\u002Fpbml\u002F111\u002Fart-peris-casacuberta.pdf}\n}\n```\n\n\nNMT-Keras 已被用于多篇论文中：\n\n* [交互式神经机器翻译中的在线学习以减少工作量](https:\u002F\u002Farxiv.org\u002Fabs\u002F1802.03594)\n* [利用平行合成数据调整神经机器翻译](http:\u002F\u002Fwww.statmt.org\u002Fwmt17\u002Fpdf\u002FWMT14.pdf)\n* [用于神经机器翻译后编辑的在线学习](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1706.03196.pdf)\n\n\n### 致谢\n\n该库的大部分内容是与 [Marc Bolaños](https:\u002F\u002Fgithub.com\u002FMarcBS)（[个人主页](http:\u002F\u002Fwww.ub.edu\u002Fcvub\u002Fmarcbolanos\u002F)）共同开发的，用于解决其他序列到序列问题。 \n\n要查看遵循与 NMT-Keras 相同理念和风格的其他项目，请参阅：\n\n[TMA：基于时序关联序列的自我中心字幕生成](https:\u002F\u002Fgithub.com\u002FMarcBS\u002FTMA)。\n\n[VIBIKNet：视觉问答](https:\u002F\u002Fgithub.com\u002FMarcBS\u002FVIBIKNet)。\n\n[ABiViRNet：视频描述](https:\u002F\u002Fgithub.com\u002Flvapeab\u002FABiViRNet)。\n\n[Sentence SelectioNN：句子分类与选择](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fsentence-selectioNN)。\n\n[DeepQuest：用于多层次质量评估的最先进模型](https:\u002F\u002Fgithub.com\u002Fsheffieldnlp\u002FdeepQuest)。\n\n\n### 注意！\n\n`Theano` 后端已不再测试，尽管它应该可以正常工作。`Theano` 后端存在一个[已知问题](https:\u002F\u002Fgithub.com\u002FTheano\u002FTheano\u002Fissues\u002F5994)。运行 `NMT-Keras` 时，将显示以下消息：\n\n```\n[...]\nraise theano.gof.InconsistencyError(\"试图重新引入已被移除的节点\")\n不一致错误：试图重新引入已被移除的节点\n```\n\n这不是严重错误，模型仍能正常运行，可以忽略。然而，如果您希望消除该消息，可以使用 Theano 标志 `optimizer_excluding=scanOp_pushout_output`。\n\n\n\n## 联系方式\n\nÁlvaro Peris（[个人主页](http:\u002F\u002Flvapeab.github.io\u002F)）：lvapeab@prhlt.upv.es","# NMT-Keras 快速上手指南\n\nNMT-Keras 是一个基于 Keras 的灵活神经机器翻译（NMT）工具包，支持 Transformer、RNN（LSTM\u002FGRU）、注意力机制、束搜索（Beam Search）以及交互式翻译等高级功能。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux 或 macOS (Windows 需通过 WSL 运行)\n*   **Python 版本**: 3.7 及以上\n*   **包管理器**: pip (建议版本 > 18)\n*   **核心依赖**:\n    *   [Keras (特定版本)](https:\u002F\u002Fgithub.com\u002FMarcBS\u002Fkeras): 推荐使用 v2.0.7 或更新版本。\n    *   [Multimodal Keras Wrapper](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fmultimodal_keras_wrapper): v2.0 或更新版本。\n*   **可选加速依赖** (用于 CUDA GPU 加速):\n    *   CuDNN\n    *   CuPy\n*   **可选评估依赖** (用于计算 Meteor, TER 等指标):\n    *   Java (版本 1.8.0 或更新)\n    *   Coco-caption 评估包\n\n> **注意**: 该工具包主要针对 TensorFlow 后端进行了优化和多 GPU 支持。虽然理论上支持 Theano 后端，但已知存在非关键性报错信息，建议优先使用 TensorFlow。\n\n## 安装步骤\n\n请使用以下命令克隆仓库并进行本地安装：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\ncd nmt-keras\npip install -e .\n```\n\n安装完成后，库及其依赖项将配置就绪。如需使用特定的评估指标，请参考官方文档额外配置 `coco-caption` 包并在 `config.py` 中设置 `METRICS='coco'`。\n\n## 基本使用\n\n### 1. 模型训练\n\n训练过程主要通过修改配置文件并运行主脚本完成。\n\n**第一步：配置参数**\n编辑根目录下的 `config.py` 文件。该文件中每个参数均有注释说明。您也可以在运行命令时通过 `Key=Value` 的形式直接覆盖配置。\n*   详细参数说明可参考：[config.md](https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Fdocumentation\u002Fconfig.md)\n\n**第二步：启动训练**\n在终端执行以下命令开始训练：\n\n```bash\npython main.py\n```\n\n### 2. 模型解码（翻译）\n\n训练完成后，使用 `sample_ensemble.py` 脚本对新文本进行翻译。该脚本支持模型集成（Ensemble decoding）。\n\n**示例：**\n假设您已训练好模型，并希望使用前两个 epoch 的模型（`epoch_1`, `epoch_2`）来翻译 `examples\u002FEuTrans\u002Ftest.en` 文件，请运行：\n\n```bash\npython sample_ensemble.py \\\n    --models trained_models\u002Ftutorial_model\u002Fepoch_1 \\\n             trained_models\u002Ftutorial_model\u002Fepoch_2 \\\n    --dataset datasets\u002FDataset_tutorial_dataset.pkl \\\n    --text examples\u002FEuTrans\u002Ftest.en\n```\n\n*   `--models`: 指定一个或多个用于集成的模型路径。\n*   `--dataset`: 指定包含数据预处理信息的 pickle 文件。\n*   `--text`: 指定待翻译的源语言文本文件。\n\n### 3. 进阶资源\n\n*   **在线教程**: 项目提供了两个 Colab 笔记本，适合快速体验：\n    *   [完整 NMT 实验入门](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Ftutorial.ipynb)\n    *   [NMT 模型结构解析](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Flvapeab\u002Fnmt-keras\u002Fblob\u002Fmaster\u002Fexamples\u002Fmodeling_tutorial.ipynb)\n*   **交互式翻译**: 如需使用在线学习或交互式神经机器翻译（INMT）功能，请切换至 `interactive_NMT` 分支。","某跨境电商技术团队需要为平台构建一套支持多语种实时互动的商品评论翻译系统，以消除语言障碍并提升用户留存率。\n\n### 没有 nmt-keras 时\n- **模型架构单一且落后**：团队只能依赖基础 RNN 或手动拼凑代码实现 Transformer，难以复现论文中先进的注意力机制（如 Bahdanau 或 Luong），导致长句翻译丢失上下文语义。\n- **训练效率低下**：缺乏原生的多 GPU 训练支持，海量双语语料的模型训练周期长达数周，无法快速迭代以适应新出现的网络流行语。\n- **交互体验生硬**：仅能输出单一翻译结果，缺少束搜索（Beam Search）和 N-best 列表生成能力，用户无法在多种译法中选择最通顺的版本，互动性差。\n- **超参调优困难**：缺乏集成化的超参数优化接口，工程师需编写大量脚本进行人工试错，耗费大量算力却难获最优模型性能。\n\n### 使用 nmt-keras 后\n- **架构先进且灵活**：直接调用内置的 Transformer 及多种注意力机制模块，轻松构建高精度模型，显著提升了长难句和复杂语境下的翻译准确度。\n- **训练大幅加速**：利用原生多 GPU 训练功能，将模型收敛时间从数周缩短至数天，并能通过 Tensorboard 实时监控训练状态，快速响应业务需求。\n- **交互智能流畅**：借助束搜索和集成解码特性，系统可实时提供多个高质量候选译文，结合在线学习功能，让用户反馈能即时修正模型偏差。\n- **自动化调优高效**：通过集成的 Spearmint 包装器自动搜索最佳超参数组合，以最小的人力成本获得了翻译质量的最优解。\n\nnmt-keras 通过提供工业级的高性能架构与自动化训练流程，帮助团队以极低门槛构建了具备实时交互能力的顶尖神经机器翻译系统。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flvapeab_nmt-keras_1545eefa.png","lvapeab","Álvaro Peris","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Flvapeab_dc22e069.jpg","Machine learning engineer.",null,"Valencia, Spain","lvapeab@gmail.com","http:\u002F\u002Flvapeab.github.io","https:\u002F\u002Fgithub.com\u002Flvapeab",[82,86],{"name":83,"color":84,"percentage":85},"Python","#3572A5",97.7,{"name":87,"color":88,"percentage":89},"Shell","#89e051",2.3,532,126,"2026-03-26T03:09:04","MIT",4,"未说明","非必需。若需加速训练和解码，建议安装 NVIDIA GPU 并配置 CuDNN 和 CuPy（具体型号、显存及 CUDA 版本未在文中明确指定）。多 GPU 训练仅支持 Tensorflow 后端。",{"notes":98,"python":99,"dependencies":100},"该工具主要依赖作者维护的特定版本 Keras 分支，而非标准 Keras 包。Theano 后端虽理论上可用但已不再测试，且运行时会报错（可忽略或通过设置标志位消除）。若需使用 Meteor、TER 等评估指标，需安装 Java 环境并配置 coco-caption 评估包。支持交互式神经机器翻译 (INMT) 和在线学习的功能位于独立的 interactive_NMT 分支中。","3.7",[101,102,103,104,105,106],"keras (特定版本：https:\u002F\u002Fgithub.com\u002FMarcBS\u002Fkeras, v2.0.7+)","multimodal_keras_wrapper (v2.0+)","tensorflow (用于多 GPU 支持)","cudnn (可选，用于 GPU 加速)","cupy (可选，用于 GPU 加速)","java (1.8.0+, 用于额外评估指标如 Meteor\u002FTER)",[14,35],[109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125],"neural-machine-translation","keras","deep-learning","sequence-to-sequence","theano","machine-learning","nmt","machine-translation","lstm-networks","gru","tensorflow","attention-mechanism","web-demo","transformer","attention-is-all-you-need","attention-model","attention-seq2seq","2026-03-27T02:49:30.150509","2026-04-11T04:56:25.411192",[129,134,139,144,149,153],{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},28986,"如何在没有 GPU 的设备上使用 GPU 训练的模型进行推理？","如果您使用 CuDNN-GRU 训练了模型，可以尝试将其作为普通 GRU 加载。维护者提供了一个 Colab 笔记本示例（https:\u002F\u002Fcolab.research.google.com\u002Fgist\u002Flvapeab\u002F5cc6b2be9801f0502adccab200d0f5a9\u002Fcudnn_rnn.ipynb）展示如何操作。此外，需要更新 Keras 库以兼容 GRU\u002FLSTM 的调用，并在 config.py 中设置 `reset_after` 选项。默认的循环激活函数（recurrent activation）已经是 \"sigmoid\"，通常不需要更改，因为它是作为门控机制设计的。","https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fissues\u002F126",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},28987,"运行 main.py 时出现 Theano ScanOptimizer 错误或 METEOR 评分错误怎么办？","这通常是由于 Windows 上 subprocess 或 Java 环境配置问题导致的 METEOR 评分失败。解决方法是编辑 `keras_wrapper\u002Fextra\u002Fevaluation.py` 文件，注释掉调用 METEOR 的代码行（通常是第 56-57 行）：\n`# if extra_vars.get('language', 'en') in accepted_langs:`\n`# scorers.append((Meteor(language=extra_vars['language']), \"METEOR\"))`\n如果 TER 评分也有问题，同样注释掉对应的行即可绕过该错误继续训练。","https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fissues\u002F10",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},28988,"如何恢复中断的训练？配置文件中的 RELOAD 和 RELOAD_EPOCH 应该如何设置？","要恢复训练，需确保模型架构（网络结构、维度、词汇表）未发生改变。在配置文件中设置 `RELOAD` 为想要恢复的检查点 epoch 数（例如 10），并将 `RELOAD_EPOCH` 设置为 `True`。同时设置 `REBUILD_DATASET = False`。注意：如果是从头开始训练，应设置 `RELOAD=0` 且 `RELOAD_EPOCH=True`。如果修改了网络架构，则无法恢复训练，必须重新开始。","https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fissues\u002F43",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},28989,"恢复训练时遇到 'update_weights.h5' 文件找不到错误如何解决？","该错误通常发生在设置 `RELOAD_EPOCH = False` 但 `RELOAD` 不为 0 时。系统试图加载特定的更新权重文件但不存在。解决方法是将 `RELOAD_EPOCH` 设置为 `True`，这样系统会直接加载对应 epoch 的完整模型权重文件而不是增量更新文件。如果 `RELOAD=0`，则 `RELOAD_EPOCH` 的设置无关紧要。","https:\u002F\u002Fgithub.com\u002Flvapeab\u002Fnmt-keras\u002Fissues\u002F71",{"id":150,"question_zh":151,"answer_zh":152,"source_url":143},28990,"修改配置文件后还能否恢复之前的训练？","这取决于修改的内容。如果您更改了网络架构（如模型类型、层维度、词汇表等），则无法恢复训练，因为旧模型与新配置不兼容。如果仅更改了训练超参数（如学习率、batch size 等）而模型结构保持不变，则可以设置 `RELOAD` 为断点 epoch 数，`RELOAD_EPOCH = True` 以及 `REBUILD_DATASET = False` 来继续训练。",{"id":154,"question_zh":155,"answer_zh":156,"source_url":133},28991,"如何在 config.py 中设置 GRU 的 reset_after 和 recurrent_activation 参数？","维护者已在代码中添加了对这些选项的支持。您可以在 `config.py` 中设置 `GRU_RESET_AFTER` 来控制 `reset_after` 的值。对于 `recurrent_activation`，可以通过 `INNER_INIT` 选项进行配置（尽管默认通常为 sigmoid）。请注意，您可能还需要更新 Keras 库到特定版本以支持这些兼容性修复。",[158,163,167,172,177,181,185,189,193],{"id":159,"version":160,"summary_zh":161,"released_at":162},197820,"0.6","最后支持 TensorFlow 1.X 的版本。","2019-10-28T10:54:36",{"id":164,"version":165,"summary_zh":76,"released_at":166},197821,"v0.5","2019-06-19T08:28:35",{"id":168,"version":169,"summary_zh":170,"released_at":171},197822,"0.4","使用 CuPy。\nTransformer 模型。\n其他改进。","2018-12-18T16:36:42",{"id":173,"version":174,"summary_zh":175,"released_at":176},197823,"0.3","在 Theano 和 TensorFlow 中通过测试。\n\n最新添加：可训练的编码器\u002F解码器","2018-02-13T17:01:48",{"id":178,"version":179,"summary_zh":76,"released_at":180},197824,"0.2","2017-07-18T08:39:14",{"id":182,"version":183,"summary_zh":76,"released_at":184},197825,"0.1","2017-06-27T10:48:19",{"id":186,"version":187,"summary_zh":76,"released_at":188},197826,"0.0.3","2017-06-01T09:03:47",{"id":190,"version":191,"summary_zh":76,"released_at":192},197827,"0.0.2","2017-04-27T14:11:49",{"id":194,"version":195,"summary_zh":76,"released_at":196},197828,"0.0.1","2017-04-27T14:11:08"]