[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-HendrikStrobelt--LSTMVis":3,"tool-HendrikStrobelt--LSTMVis":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 真正成长为懂上",160015,2,"2026-04-18T11:30:52",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[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":78,"owner_website":79,"owner_url":80,"languages":81,"stars":106,"forks":107,"last_commit_at":108,"license":109,"difficulty_score":110,"env_os":111,"env_gpu":111,"env_ram":111,"env_deps":112,"category_tags":119,"github_topics":120,"view_count":32,"oss_zip_url":78,"oss_zip_packed_at":78,"status":17,"created_at":125,"updated_at":126,"faqs":127,"releases":157},9182,"HendrikStrobelt\u002FLSTMVis","LSTMVis","Visualization Toolbox for Long Short Term Memory networks (LSTMs)","LSTMVis 是一款专为长短期记忆网络（LSTM）设计的可视化分析工具箱，旨在帮助开发者与研究人员直观地“看见”递归神经网络内部的状态变化。在处理序列数据时，RNN 和 LSTM 模型往往被视为难以理解的“黑盒”，用户很难追踪特定词语如何影响模型的隐藏状态或最终预测。LSTMVis 通过交互式图表，将抽象的高维状态向量转化为可视化的轨迹，清晰展示时间步长下的状态演变、元数据标注及预测结果，从而有效解决了模型可解释性差的难题。\n\n该工具特别适合从事自然语言处理的研究人员、深度学习工程师以及需要调试复杂序列模型的数据科学家使用。其技术亮点在于支持离散缩放查看隐藏状态轨迹、提供灵活的注释轨道以关联元数据，并兼容 TensorFlow 和 Keras 等主流框架的工作流。用户只需准备简单的 HDF5 状态文件和词表映射，即可快速部署本地服务，在浏览器中深入分析模型行为。无论是验证训练效果还是探索模型失效原因，LSTMVis 都能提供强有力的视觉辅助，让复杂的神经网络逻辑变得有迹可循。","# ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHendrikStrobelt_LSTMVis_readme_ef5c214be598.png) Visual Analysis for State Changes in RNNs\n\nMore information about LSTMVis, an introduction video, and the link to the live demo can be found at **[lstm.seas.harvard.edu](http:\u002F\u002Flstm.seas.harvard.edu)**\n\nAlso check out our new work on Sequence-to-Sequence models on [github](https:\u002F\u002Fgithub.com\u002Fhendrikstrobelt\u002Fseq2seq-vis) or the live demo at **[http:\u002F\u002Fseq2seq-vis.io\u002F](http:\u002F\u002Fseq2seq-vis.io\u002F)**\n\n\u003Cdiv style='text-align:center'>\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHendrikStrobelt_LSTMVis_readme_2d7c365f67a6.png\" \u002F>\n\u003C\u002Fdiv>\n\n## Changes in V2.1\n- update to Python 3.7++ (thanks to @nneophyt)\n\n## Changes in V2\n- new design and server-backend\n- discrete zooming for hidden-state track\n- added annotation tracks for meta-data and prediction\n- added training and extraction workflow for tensorflow\n- client is now ES6 and D3v4\n- some performance enhancements on client side\n- Added Keras tutorial [here](docs\u002Fkeras.md) (thanks to Mohammadreza Ebrahimi)\n\n\n\n## Install\n\nPlease use **python 3.7 or later** to install LSTMVis.\n\nClone the repository:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FHendrikStrobelt\u002FLSTMVis.git; cd LSTMVis\n```\n\nInstall python (server-side) requirements using [pip](https:\u002F\u002Fpip.pypa.io\u002Fen\u002Fstable\u002Finstalling\u002F):\n\n```bash\npython -m venv  venv3\nsource venv3\u002Fbin\u002Factivate\npip install -r requirements.txt\n```\n\n\u003C!--Install [bower](https:\u002F\u002Fbower.io\u002F) (client side) requirements:\n\n```bash\ncd client; bower install; cd ..\n```-->\n\nDownload & Unzip example dataset(s) into `\u003CLSTMVis>\u002Fdata\u002F05childbook`:\n\n[Children Book - Gutenberg](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F0B542UFSlrvMjMHcxWHluNzh3clU\u002Fview?usp=sharing) - 2.2 GB\n\n[Parens Dataset - 10k small](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F0B3yX0IkfCkLvWUowazhOZHFuSms\u002Fview?usp=sharing&resourcekey=0-JPmD2S5SFne6iTyOzAT3_w) - 0.03 GB\n\nstart server:\n\n```bash\nsource venv3\u002Fbin\u002Factivate\npython lstm_server.py -dir \u003Cdatadir>\n```\n\nFor the example dataset, use `python lstm_server.py -dir data`\n\n\nopen browser at [http:\u002F\u002Flocalhost:8888](http:\u002F\u002Flocalhost:8888\u002Fclient\u002Findex.html) - eh voila !\n\n\n## Adding Your Own Data\n\nIf you want to train your own data first, please read the [Training](docs\u002Fchapter\u002Ftrain.md) document. If you have your own data at hand, adding it to LSTMVis is very easy. You only need three files:\n\n* HDF5 file containing the state vectors for each time step (e.g. `states.hdf5`)\n* HDF5 file containing a word ID for each time step (e.g. `train.hdf5`)*\n* Dict file containing the mapping from word ID to word (e.g. `train.dict`)*\n\nA schematic representation of the data:\n\n![Data Format](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHendrikStrobelt_LSTMVis_readme_ee3bc7854cb8.png)\n\n\n*If you don't have these files yet, but a space-separated `.txt` file of your training data instead, check out our [text conversion tool](docs\u002Fchapter\u002Ftools.md#convert-.txt-to-.h5-and-.dict)\n\n\n### Data Directory\nLSTMVis parses all subdirectories of `\u003Cdatadir>` for config files `lstm.yml`.\nA typical `\u003Cdatadir>` might look like this:\n\n```\n\u003Cdatadir>\n├── paren  \t\t        \u003C--- project directory\n│   ├── lstm.yml \t\t\u003C--- config file\n│   ├── states.hdf5 \t        \u003C--- states for each time step\n│   ├── train.hdf5 \t\t\u003C--- word ID for each time step\n│   └── train.dict \t\t\u003C--- mapping word ID -> word\n├── fun .. \n```\n\n\n### Config File\n\na simple example of an `lstm.yml` is:\n\n```yaml\nname: children books  # project name\ndescription: children book texts from the Gutenberg project # little description\n\nfiles: # assign files to reference name\n  states: states.hdf5 # HDF5 files have to end with .h5 or .hdf5 !!!\n  train: train.hdf5 # word ids of training set\n  words: train.dict # dict files have to end with .dict !!\n\nword_sequence: # defines the word sequence\n  file: train # HDF5 file\n  path: word_ids # path to table in HDF5\n  dict_file: words # dictionary to map IDs from HDF5 to words\n\nstates: # section to define which states of your model you want to look at\n  file: states # HDF5 files containing the state for each position\n  types: [\n        {type: state, layer: 1, path: states1}, # type={state, output}, layer=[1..x], path = HDF5 path\n        {type: state, layer: 2, path: states2},\n        {type: output, layer: 2, path: output2}\n  ]\n\n```\n\n## Intrigued ? Here is more.. \n\nCheck out our documents about:\n\n* [details about configuring the states file input](docs\u002Fchapter\u002Fconfig_states.md)\n* [adding annotation files for result heatmaps](docs\u002Fchapter\u002Fmeta.md)\n* [training a model with torch](docs\u002Fchapter\u002Ftrain.md)\n* NEW !!! [training a model with tensorflow (link)](https:\u002F\u002Fgithub.com\u002FsebastianGehrmann\u002Ftensorflow-statereader)\n* [tools that make your life easier](docs\u002Fchapter\u002Ftools.md)\n\n\n\n\n\n\n## Credits\n\nLSTMVis is a collaborative project of Hendrik Strobelt, Sebastian Gehrmann, Bernd Huber, Hanspeter Pfister, and Alexander M. Rush at Harvard SEAS.\n","# ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHendrikStrobelt_LSTMVis_readme_ef5c214be598.png) 针对 RNN 中状态变化的可视化分析\n\n有关 LSTMVis 的更多信息、介绍视频以及在线演示链接，请访问 **[lstm.seas.harvard.edu](http:\u002F\u002Flstm.seas.harvard.edu)**。\n\n同时，也请查看我们在序列到序列模型方面的最新工作，相关代码可在 [github](https:\u002F\u002Fgithub.com\u002Fhendrikstrobelt\u002Fseq2seq-vis) 上找到，或访问在线演示页面 **[http:\u002F\u002Fseq2seq-vis.io\u002F](http:\u002F\u002Fseq2seq-vis.io\u002F)**。\n\n\u003Cdiv style='text-align:center'>\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHendrikStrobelt_LSTMVis_readme_2d7c365f67a6.png\" \u002F>\n\u003C\u002Fdiv>\n\n## V2.1 版本更新\n- 更新至 Python 3.7 及以上版本（感谢 @nneophyt）\n\n## V2 版本更新\n- 全新设计与服务器后端\n- 隐藏状态轨迹支持离散缩放\n- 新增元数据与预测标注轨道\n- 添加了针对 TensorFlow 的训练与数据提取流程\n- 客户端现采用 ES6 和 D3v4\n- 客户端侧进行了一些性能优化\n- 增加了 Keras 教程 [此处](docs\u002Fkeras.md)（感谢 Mohammadreza Ebrahimi）\n\n\n\n## 安装\n\n请使用 **Python 3.7 或更高版本** 来安装 LSTMVis。\n\n克隆仓库：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FHendrikStrobelt\u002FLSTMVis.git; cd LSTMVis\n```\n\n使用 [pip](https:\u002F\u002Fpip.pypa.io\u002Fen\u002Fstable\u002Finstalling\u002F) 安装服务器端依赖：\n\n```bash\npython -m venv  venv3\nsource venv3\u002Fbin\u002Factivate\npip install -r requirements.txt\n```\n\n\u003C!--安装 [bower](https:\u002F\u002Fbower.io\u002F) 客户端依赖：\n\n```bash\ncd client; bower install; cd ..\n```-->\n\n下载并解压示例数据集至 `\u003CLSTMVis>\u002Fdata\u002F05childbook`：\n\n[儿童读物 - 古腾堡计划](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F0B542UFSlrvMjMHcxWHluNzh3clU\u002Fview?usp=sharing) - 2.2 GB\n\n[Parens 数据集 - 1 万条小样本](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F0B3yX0IkfCkLvWUowazhOZHFuSms\u002Fview?usp=sharing&resourcekey=0-JPmD2S5SFne6iTyOzAT3_w) - 0.03 GB\n\n启动服务器：\n\n```bash\nsource venv3\u002Fbin\u002Factivate\npython lstm_server.py -dir \u003Cdatadir>\n```\n\n对于示例数据集，使用 `python lstm_server.py -dir data`\n\n\n在浏览器中打开 [http:\u002F\u002Flocalhost:8888](http:\u002F\u002Flocalhost:8888\u002Fclient\u002Findex.html)，大功告成！\n\n\n## 添加您自己的数据\n\n如果您希望先训练自己的数据，请阅读 [训练](docs\u002Fchapter\u002Ftrain.md) 文档。如果您已有数据，将其添加到 LSTMVis 非常简单，您只需要三个文件：\n\n* 包含每个时间步状态向量的 HDF5 文件（例如 `states.hdf5`）\n* 包含每个时间步单词 ID 的 HDF5 文件（例如 `train.hdf5`）*\n* 包含单词 ID 到单词映射的字典文件（例如 `train.dict`）*\n\n数据格式示意如下：\n\n![数据格式](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHendrikStrobelt_LSTMVis_readme_ee3bc7854cb8.png)\n\n\n*如果您还没有这些文件，而只有以空格分隔的 `.txt` 格式训练数据，请查看我们的 [文本转换工具](docs\u002Fchapter\u002Ftools.md#convert-.txt-to-.h5-and-.dict)\n\n\n### 数据目录\nLSTMVis 会解析 `\u003Cdatadir>` 下的所有子目录，查找配置文件 `lstm.yml`。典型的 `\u003Cdatadir>` 目录结构可能如下所示：\n\n```\n\u003Cdatadir>\n├── paren  \t\t        \u003C--- 项目目录\n│   ├── lstm.yml \t\t\u003C--- 配置文件\n│   ├── states.hdf5 \t        \u003C--- 每个时间步的状态\n│   ├── train.hdf5 \t\t\u003C--- 每个时间步的单词 ID\n│   └── train.dict \t\t\u003C--- 单词 ID 到单词的映射\n├── fun .. \n```\n\n\n### 配置文件\n\n一个简单的 `lstm.yml` 示例：\n\n```yaml\nname: children books  # 项目名称\ndescription: children book texts from the Gutenberg project # 简要描述\n\nfiles: # 将文件分配给引用名称\n  states: states.hdf5 # HDF5 文件必须以 .h5 或 .hdf5 结尾！！！\n  train: train.hdf5 # 训练集的单词 ID\n  words: train.dict # 字典文件必须以 .dict 结尾！！！\n\nword_sequence: # 定义单词序列\n  file: train # HDF5 文件\n  path: word_ids # HDF5 中表格的路径\n  dict_file: words # 用于将 HDF5 中的 ID 映射为单词的字典\n\nstates: # 定义您希望查看的模型状态部分\n  file: states # 包含各位置状态的 HDF5 文件\n  types: [\n        {type: state, layer: 1, path: states1}, # type={state, output}, layer=[1..x], path = HDF5 路径\n        {type: state, layer: 2, path: states2},\n        {type: output, layer: 2, path: output2}\n  ]\n\n```\n\n## 感兴趣吗？更多内容如下……\n\n请参阅我们的文档，了解：\n\n* [关于配置状态文件输入的详细说明](docs\u002Fchapter\u002Fconfig_states.md)\n* [添加结果热图的注释文件](docs\u002Fchapter\u002Fmeta.md)\n* [使用 PyTorch 训练模型](docs\u002Fchapter\u002Ftrain.md)\n* 新增！！！[使用 TensorFlow 训练模型（链接）](https:\u002F\u002Fgithub.com\u002FsebastianGehrmann\u002Ftensorflow-statereader)\n* [让您的工作更轻松的工具](docs\u002Fchapter\u002Ftools.md)\n\n\n\n\n\n\n## 致谢\n\nLSTMVis 是哈佛大学工程与应用科学学院 Hendrik Strobelt、Sebastian Gehrmann、Bernd Huber、Hanspeter Pfister 和 Alexander M. Rush 共同合作的项目。","# LSTMVis 快速上手指南\n\nLSTMVis 是一个用于可视化递归神经网络（RNN\u002FLSTM）状态变化的工具，帮助开发者直观分析模型内部隐藏状态的动态变化。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**：Linux \u002F macOS \u002F Windows (需支持 Python 虚拟环境)\n*   **Python 版本**：**Python 3.7 或更高版本** (必须)\n*   **依赖管理**：`pip` (Python 包管理器)\n*   **浏览器**：现代浏览器 (Chrome, Firefox, Edge 等)，用于访问本地可视化界面\n\n> **注意**：本项目后端基于 Python，前端已编译为 ES6\u002FD3v4，通常无需额外安装 Node.js 或 Bower，除非您需要修改前端源码。\n\n## 安装步骤\n\n### 1. 克隆项目\n打开终端，执行以下命令下载源代码：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FHendrikStrobelt\u002FLSTMVis.git\ncd LSTMVis\n```\n\n### 2. 创建并激活虚拟环境\n为了避免依赖冲突，建议创建独立的 Python 虚拟环境：\n\n```bash\npython -m venv venv3\nsource venv3\u002Fbin\u002Factivate\n# Windows 用户请使用: venv3\\Scripts\\activate\n```\n\n### 3. 安装 Python 依赖\n安装服务器端所需的库：\n\n```bash\npip install -r requirements.txt\n```\n*(国内用户若下载缓慢，可添加 `-i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple` 使用清华镜像源)*\n\n### 4. 准备示例数据\n下载示例数据集并解压到 `data` 目录下。您可以选择以下任一数据集进行测试：\n\n*   **Children Book (较大，2.2 GB)**: [Google Drive 链接](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F0B542UFSlrvMjMHcxWHluNzh3clU\u002Fview?usp=sharing)\n*   **Parens Dataset (较小，0.03 GB，推荐快速测试)**: [Google Drive 链接](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F0B3yX0IkfCkLvWUowazhOZHFuSms\u002Fview?usp=sharing&resourcekey=0-JPmD2S5SFne6iTyOzAT3_w)\n\n将解压后的文件夹放入 `\u003CLSTMVis>\u002Fdata\u002F` 目录中。例如，若下载了 Parens 数据集，目录结构应类似 `data\u002Fparen\u002F...`。\n\n## 基本使用\n\n### 1. 启动服务\n在激活虚拟环境的状态下，运行服务器脚本并指定数据目录。\n\n如果使用上述下载的示例数据（假设数据位于 `data` 文件夹内）：\n\n```bash\nsource venv3\u002Fbin\u002Factivate\npython lstm_server.py -dir data\n```\n\n*如果您自定义了数据路径，请将 `data` 替换为您的实际路径，例如 `-dir \u002Fpath\u002Fto\u002Fmy\u002Fproject`。*\n\n### 2. 访问界面\n服务启动后，打开浏览器访问以下地址：\n\n```text\nhttp:\u002F\u002Flocalhost:8888\u002Fclient\u002Findex.html\n```\n\n您将看到 LSTMVis 的可视化界面，可以加载示例项目（如 \"paren\" 或 \"children books\"）进行探索。\n\n### 3. 接入自有数据（简述）\n若要分析自己的模型，需在数据目录下创建一个子文件夹（例如 `my_model`），并在其中放置以下三个核心文件及配置文件 `lstm.yml`：\n\n1.  `states.hdf5`: 包含每个时间步的状态向量。\n2.  `train.hdf5`: 包含每个时间步的词 ID。\n3.  `train.dict`: 词 ID 到单词的映射字典。\n4.  `lstm.yml`: 配置文件，定义项目名称、文件路径及要可视化的层级（参考 README 中的 Config File 章节）。\n\n配置完成后，重启服务器并使用 `-dir` 指向包含该子文件夹的根目录即可。","某自然语言处理团队正在优化一个基于 LSTM 的童话风格文本生成模型，试图解决生成的故事在长句中逻辑断裂、语法结构混乱的问题。\n\n### 没有 LSTMVis 时\n- 研究人员只能面对黑盒般的数值矩阵，无法直观判断模型在处理长距离依赖（如主语与谓语相隔甚远）时，内部状态是否真正记住了关键信息。\n- 调试过程依赖盲目调整超参数或网络层数，缺乏对特定时间步隐藏状态变化的微观洞察，导致试错成本极高。\n- 难以定位模型为何在特定词汇（如转折词“但是”）处丢失上下文，无法区分是数据噪声还是架构缺陷导致的失效。\n- 团队协作困难，因为纯代码和日志难以向非算法背景的成员解释模型内部的决策机制和状态流转路径。\n\n### 使用 LSTMVis 后\n- 通过可视化隐藏状态轨迹，团队清晰看到模型在阅读长句时，特定神经元如何被激活以维持对前文主语的记忆，从而确认长依赖机制是否生效。\n- 利用离散缩放和注释轨道功能，研究人员能精确定位到状态发生剧烈波动的具体时间点，快速发现模型在遇到复杂从句时的“遗忘”现象。\n- 结合词序列与状态变化的联动视图，团队迅速识别出模型对某些连接词的响应异常，进而针对性地清洗训练数据或调整注意力机制。\n- 直观的交互界面让算法工程师能与产品经理共同复盘模型行为，将抽象的状态向量转化为可理解的故事逻辑链条，加速了迭代决策。\n\nLSTMVis 将不可见的 LSTM 内部状态流转转化为直观的视觉叙事，让开发者从“盲调参数”转变为“透视逻辑”，显著提升了递归神经网络的调试效率与可解释性。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHendrikStrobelt_LSTMVis_2d7c365f.png","HendrikStrobelt","Hendrik Strobelt","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FHendrikStrobelt_0a8211ab.png","IBM Research \u002F\u002F MIT-IBM AI Lab\r\n-- Co-author of MiniConf, GLTR, LSTMVis, GanPaint,...","IBM Research","Cambridge, MA, USA",null,"hendrik.strobelt.com","https:\u002F\u002Fgithub.com\u002FHendrikStrobelt",[82,86,90,94,98,102],{"name":83,"color":84,"percentage":85},"Jupyter Notebook","#DA5B0B",82.1,{"name":87,"color":88,"percentage":89},"JavaScript","#f1e05a",9.1,{"name":91,"color":92,"percentage":93},"Python","#3572A5",4.3,{"name":95,"color":96,"percentage":97},"Lua","#000080",2.9,{"name":99,"color":100,"percentage":101},"HTML","#e34c26",0.9,{"name":103,"color":104,"percentage":105},"CSS","#663399",0.7,1265,259,"2026-04-17T17:09:09","BSD-3-Clause",4,"未说明",{"notes":113,"python":114,"dependencies":115},"该工具主要是一个可视化分析服务器，核心依赖为 Python 3.7+ 及 requirements.txt 中定义的库。客户端原需 Bower 但相关安装步骤在文档中已被注释。支持 TensorFlow 和 Keras 模型的状态提取，需提供特定格式的 HDF5 状态文件和字典文件。示例数据集较大（儿童书籍数据集约 2.2GB），需手动下载并解压至指定目录。启动服务后通过浏览器访问本地端口进行交互。","3.7+",[116,117,118],"venv (Python 虚拟环境)","pip","HDF5 (数据文件格式依赖)",[35,14],[121,122,123,124],"lstm","neural-network","visualization","recurrent-neural-networks","2026-03-27T02:49:30.150509","2026-04-19T03:03:46.248616",[128,133,138,143,148,152],{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},41227,"运行服务器时遇到 'helper_functions' 模块缺失错误怎么办？","该错误通常是因为使用了 Python 3 环境，而 LSTMVis 目前仅支持 Python 2.7。维护者指出，兼容 Python 3 需要完全重写代码，目前不可行。请尝试在 Python 2.7 环境（例如 Anaconda 的 py27 环境）中运行项目，问题即可解决。","https:\u002F\u002Fgithub.com\u002FHendrikStrobelt\u002FLSTMVis\u002Fissues\u002F49",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},41228,"执行 get_states.lua 时出现 'bad argument #1 to copy' 错误如何解决？","这是因为调用脚本时缺少必要的参数。请在运行 get_states.lua 命令时显式添加 '-rnn_size' 参数（数值需与训练时一致，例如 128）以及 '-gpuid' 参数。完整的修正命令示例：\nth model\u002Fget_states.lua -data_file \u003C数据文件> -checkpoint_file \u003C检查点文件> -output_file \u003C输出文件> -rnn_size 128 -gpuid 0","https:\u002F\u002Fgithub.com\u002FHendrikStrobelt\u002FLSTMVis\u002Fissues\u002F43",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},41229,"启动服务器时遇到 SwaggerValidationError 或类型验证错误怎么办？","如果主分支（master）出现此类验证错误，建议切换到 'live_demo' 分支使用稳定版本。具体操作步骤如下：\n1. 切换分支：git checkout live_demo\n2. 重新安装依赖：pip install -r requirements\n3. 使用正确的脚本启动服务器：python server.py -dir .\u002Fdata\n4. 确保数据目录结构正确（例如 data\u002Fparens），然后访问 localhost:8888。","https:\u002F\u002Fgithub.com\u002FHendrikStrobelt\u002FLSTMVis\u002Fissues\u002F58",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},41230,"启动服务器时报 'SyntaxError: Missing parentheses in call to print' 错误是什么原因？","这是典型的 Python 版本不匹配错误。该错误表明你正在使用 Python 3 运行代码，但该项目是为 Python 2.7 编写的（Python 2 的 print 是语句而非函数）。请确保使用 Python 2.7 解释器来运行 server.py 脚本。","https:\u002F\u002Fgithub.com\u002FHendrikStrobelt\u002FLSTMVis\u002Fissues\u002F34",{"id":149,"question_zh":150,"answer_zh":151,"source_url":147},41231,"运行 server.py 时遇到 'ImportError: No module named lstmdata.data_handler' 怎么办？","这通常是因为 Python 无法找到当前目录下的模块。在启动服务器之前，请先设置 PYTHONPATH 环境变量指向当前目录。请在终端执行以下命令后再运行服务器：\nexport PYTHONPATH='.'\n或者在代码中检查 sys.path 确认当前目录是否在路径中。",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},41232,"states.h5 输入文件中的状态向量具体指什么？","states.h5 文件中存储的状态向量指的是 LSTM 在每个时间步 t 输出的隐藏状态 h_t。这些状态依赖于输入序列，代表了 LSTM 在该时刻的内部记忆表示。用户可以通过该项目提供的工具从训练好的模型中提取这些状态并保存为 HDF5 格式供可视化使用。","https:\u002F\u002Fgithub.com\u002FHendrikStrobelt\u002FLSTMVis\u002Fissues\u002F52",[158,163],{"id":159,"version":160,"summary_zh":161,"released_at":162},330928,"2.1","已结束 Python 2.7 版本","2021-02-07T10:46:05",{"id":164,"version":165,"summary_zh":78,"released_at":166},330929,"2.0","2017-07-14T19:51:41"]