[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-aspuru-guzik-group--chemical_vae":3,"tool-aspuru-guzik-group--chemical_vae":65},[4,23,32,40,49,57],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":22},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85052,2,"2026-04-08T11:03:08",[13,14,15,16,17,18,19,20,21],"图像","数据工具","视频","插件","Agent","其他","语言模型","开发框架","音频","ready",{"id":24,"name":25,"github_repo":26,"description_zh":27,"stars":28,"difficulty_score":29,"last_commit_at":30,"category_tags":31,"status":22},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,3,"2026-04-04T04:44:48",[17,13,20,19,18],{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":29,"last_commit_at":38,"category_tags":39,"status":22},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",75149,"2026-04-08T11:09:19",[19,13,20,18],{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":46,"last_commit_at":47,"category_tags":48,"status":22},3215,"awesome-machine-learning","josephmisiti\u002Fawesome-machine-learning","awesome-machine-learning 是一份精心整理的机器学习资源清单，汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点，这份清单按编程语言（如 Python、C++、Go 等）和应用场景（如计算机视觉、自然语言处理、深度学习等）进行了系统化分类，帮助使用者快速定位高质量项目。\n\n它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库，还是资深工程师对比不同语言的技术选型，都能从中获得极具价值的参考。此外，清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源，构建了从学习到实践的全链路支持体系。\n\n其独特亮点在于严格的维护标准：明确标记已停止维护或长期未更新的项目，确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”，awesome-machine-learning 以开源协作的方式持续更新，旨在降低技术探索门槛，让每一位从业者都能高效地站在巨人的肩膀上创新。",72149,1,"2026-04-03T21:50:24",[20,18],{"id":50,"name":51,"github_repo":52,"description_zh":53,"stars":54,"difficulty_score":46,"last_commit_at":55,"category_tags":56,"status":22},2234,"scikit-learn","scikit-learn\u002Fscikit-learn","scikit-learn 是一个基于 Python 构建的开源机器学习库，依托于 SciPy、NumPy 等科学计算生态，旨在让机器学习变得简单高效。它提供了一套统一且简洁的接口，涵盖了从数据预处理、特征工程到模型训练、评估及选择的全流程工具，内置了包括线性回归、支持向量机、随机森林、聚类等在内的丰富经典算法。\n\n对于希望快速验证想法或构建原型的数据科学家、研究人员以及 Python 开发者而言，scikit-learn 是不可或缺的基础设施。它有效解决了机器学习入门门槛高、算法实现复杂以及不同模型间调用方式不统一的痛点，让用户无需重复造轮子，只需几行代码即可调用成熟的算法解决分类、回归、聚类等实际问题。\n\n其核心技术亮点在于高度一致的 API 设计风格，所有估算器（Estimator）均遵循相同的调用逻辑，极大地降低了学习成本并提升了代码的可读性与可维护性。此外，它还提供了强大的模型选择与评估工具，如交叉验证和网格搜索，帮助用户系统地优化模型性能。作为一个由全球志愿者共同维护的成熟项目，scikit-learn 以其稳定性、详尽的文档和活跃的社区支持，成为连接理论学习与工业级应用的最",65709,"2026-04-08T08:24:55",[20,18,14],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":10,"last_commit_at":63,"category_tags":64,"status":22},3364,"keras","keras-team\u002Fkeras","Keras 是一个专为人类设计的深度学习框架，旨在让构建和训练神经网络变得简单直观。它解决了开发者在不同深度学习后端之间切换困难、模型开发效率低以及难以兼顾调试便捷性与运行性能的痛点。\n\n无论是刚入门的学生、专注算法的研究人员，还是需要快速落地产品的工程师，都能通过 Keras 轻松上手。它支持计算机视觉、自然语言处理、音频分析及时间序列预测等多种任务。\n\nKeras 3 的核心亮点在于其独特的“多后端”架构。用户只需编写一套代码，即可灵活选择 TensorFlow、JAX、PyTorch 或 OpenVINO 作为底层运行引擎。这一特性不仅保留了 Keras 一贯的高层易用性，还允许开发者根据需求自由选择：利用 JAX 或 PyTorch 的即时执行模式进行高效调试，或切换至速度最快的后端以获得最高 350% 的性能提升。此外，Keras 具备强大的扩展能力，能无缝从本地笔记本电脑扩展至大规模 GPU 或 TPU 集群，是连接原型开发与生产部署的理想桥梁。",63927,"2026-04-04T15:24:37",[20,14,18],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":80,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":88,"forks":89,"last_commit_at":90,"license":91,"difficulty_score":92,"env_os":93,"env_gpu":94,"env_ram":93,"env_deps":95,"category_tags":104,"github_topics":80,"view_count":10,"oss_zip_url":80,"oss_zip_packed_at":80,"status":22,"created_at":105,"updated_at":106,"faqs":107,"releases":143},5548,"aspuru-guzik-group\u002Fchemical_vae","chemical_vae","Code for 10.1021\u002Facscentsci.7b00572, now running on Keras 2.0 and Tensorflow","chemical_vae 是一个专为分子发现设计的变分自编码器（VAE）框架，基于 Keras 和 TensorFlow 构建。它核心解决了如何将离散的化学分子结构（SMILES 字符串）转化为连续的数学向量表示这一难题。通过编码 - 解码机制，chemical_vae 能将分子压缩为潜在空间向量，并无损还原；更独特的是，它支持联合训练属性预测模型（如溶解度、药效等），从而塑造出具有明确化学意义的潜在空间。研究人员可在此空间中高效搜索，直接定位具备最优目标属性的新分子结构，极大加速了药物研发与材料设计过程。\n\n该工具主要面向计算化学家、AI 药物研发人员及相关领域的开发者。其技术亮点在于自定义的 Teacher Forcing GRU 层，有效提升了序列生成的稳定性与准确率，并提供了灵活的超参数配置以适配不同数据集（如 ZINC）。虽然部署需要一定的 Python 深度学习环境基础，但它为探索生成式 AI 在科学领域的应用提供了坚实且开源的代码基准。","![chemical VAE](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Faspuru-guzik-group_chemical_vae_readme_db0c99c338d7.png)\n=============\n\nThis repository contains the framework and code for constructing a variational autoencoder (VAE) for use with molecular SMILES, as described in [doi:10.1021\u002Facscentsci.7b00572](http:\u002F\u002Fpubs.acs.org\u002Fdoi\u002Fabs\u002F10.1021\u002Facscentsci.7b00572), with preprint at [https:\u002F\u002Farxiv.org\u002Fpdf\u002F1610.02415.pdf](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1610.02415.pdf).\n\nIn short, molecular SMILES are encoded into a code vector representation, and can be decoded from the code representation back to molecular SMILES. The autoencoder may also be jointly trained with property prediction to help shape the latent space. The new latent space can then be optimized upon to find the molecules with the most optimized properties of interest.\n\nIn our example, we perform encoding\u002Fdecoding with the ZINC dataset, and shape the latent space on prediction on logP, QED, and SAS properties.\n\n#### Upcoming updates:\n- [ ] Updated Docker environment\n- [ ] Improved tutorial\n\n## Questions, problems?\nMake a [github issue](https:\u002F\u002Fgithub.com\u002Faspuru-guzik-group\u002Fchemical_vae\u002Fissues\u002Fnew) :smile:. Please be as clear and descriptive as possible.\n\n## How to install\n### Requirements: \nAn [Anaconda python environment](https:\u002F\u002Fwww.anaconda.com\u002Fdownload) is recommend.\nCheck the environment.yml file, but primarily:\n- Python >= 3.5\n- Keras >= 2.0.0 && \u003C= 2.0.7\n- Tensorflow == 1.1\n- RDKit\n- Numpy\n\nJupyter notebook is required to run the ipynb examples.\nMake sure that the [Keras backend](https:\u002F\u002Fkeras.io\u002Fbackend\u002F) is set to use Tensorflow\n\n### via Anaconda (recommended way)\nCreate a conda enviroment:\n```\nconda env create -f environment.yml\nsource activate chemvae\npython setup.py install\n```\n### via pip\nAssuming you have all the requirements:\n\n`pip install git+https:\u002F\u002Fgithub.com\u002Faspuru-guzik-group\u002Fchemical_vae.git`\n\n## Example: ZINC dataset\n\nThis repository contains an example of how to run the autoencoder on the zinc dataset.\n\nFirst, take a look at the zinc directory. Parameters are set in the following jsons\n  - **exp.json**  - Sets parameters for location of data, global experimental parameters number of epochs to run, properties to predict etc. \n\nFor a full description of all the parameters, see hyperparameters.py ; parameters set in exp.json will overwrite parameters in hyperparameters.py, and parameters set in params.json will overwrite parameters in both exp.json and hyperparameters.py\n\nOnce you have set the parameters, run the autoencoder using the command from directory with exp.json: \n\n`\npython -m chemvae.train_vae\n`\n\n_(Make sure you copy examples directories to not overwrite the trained weights (*.h5))_\n\n## Components\ntrain_vae.py : main script for training variational autoencoder\n    Accepts arguments -d ...\n    Example of how to run (with example directory here)\n\n- **models.py** - Library of models, contains the encoder, decoder and property prediction models.\n- **tgru_k2_gpu.py** - Custom keras layer containing custom teacher forcing\u002Fsampling \n- **sampled_rnn_tf.py** - Custom rnn function for tgru_k2_gpu.py, written in tensorflow backend.\n- **hyperparameters.py** - Some default parameter settings for the autoencoder\n- **mol_utils.py** - library for parsing SMILES into one-hot encoding and vice versa\n- **mol_callbacks.py** - library containing callbacks used by train_vae.py\n  - Includes Weight_Annealer callback, which is used to update the weight of the KL loss component\n- **vae_utils.py** - utility functions for an autoencoder object, used post processing.\n\n## Authors:\nThis software is written by Jennifer Wei, Benjamin Sanchez-Lengeling, Dennis Sheberla, Rafael Gomez-Bomberelli, and Alan Aspuru-Guzik (alan@aspuru.com). \nIt is based on the work published in https:\u002F\u002Farxiv.org\u002Fpdf\u002F1610.02415.pdf by\n \n * [Rafa Gómez-Bombarelli](http:\u002F\u002Faspuru.chem.harvard.edu\u002Frafa-gomez-bombarelli\u002F),\n * [Jennifer Wei](http:\u002F\u002Faspuru.chem.harvard.edu\u002Fjennifer-wei),\n * [David Duvenaud](https:\u002F\u002Fwww.cs.toronto.edu\u002F~duvenaud\u002F),\n * [José Miguel Hernández-Lobato](https:\u002F\u002Fjmhl.org\u002F),\n * [Benjamín Sánchez-Lengeling](),\n * [Dennis Sheberla](https:\u002F\u002Fwww.sheberla.com\u002F),\n * [Jorge Aguilera-Iparraguirre](http:\u002F\u002Faspuru.chem.harvard.edu\u002Fjorge-aguilera\u002F),\n * [Timothy Hirzel](https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Ft1m0thy),\n * [Ryan P. Adams](http:\u002F\u002Fpeople.seas.harvard.edu\u002F~rpa\u002F'),\n * [Alán Aspuru-Guzik](http:\u002F\u002Faspuru.chem.harvard.edu\u002Fabout-alan\u002F)\n\n\nFeel free to reach out to us with any questions! \n\n## Funding acknowledgements\n\n\"This work was supported by the Computational Chemical Sciences Program funded by the U.S.Department of Energy, Office of Science, Basic Energy Sciences, under Award #DE- FG02-17ER16362\"\n","![化学 VAE](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Faspuru-guzik-group_chemical_vae_readme_db0c99c338d7.png)\n=============\n\n本仓库包含用于构建分子 SMILES 变分自编码器（VAE）的框架与代码，相关描述见 [doi:10.1021\u002Facscentsci.7b00572](http:\u002F\u002Fpubs.acs.org\u002Fdoi\u002Fabs\u002F10.1021\u002Facscentsci.7b00572)，预印本可参阅 [https:\u002F\u002Farxiv.org\u002Fpdf\u002F1610.02415.pdf](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1610.02415.pdf)。\n\n简而言之，分子 SMILES 被编码为代码向量表示，并可从该代码表示解码回分子 SMILES。该自编码器还可与属性预测联合训练，以引导潜在空间的结构。随后，可在新的潜在空间中进行优化，从而找到具有最优目标属性的分子。\n\n在我们的示例中，我们使用 ZINC 数据集进行编码和解码，并基于 logP、QED 和 SAS 属性的预测来塑造潜在空间。\n\n#### 即将推出的更新：\n- [ ] 更新 Docker 环境\n- [ ] 改进教程\n\n## 有任何问题或困难吗？\n请提交一个 [GitHub 问题](https:\u002F\u002Fgithub.com\u002Faspuru-guzik-group\u002Fchemical_vae\u002Fissues\u002Fnew) :smile:。请尽量清晰、详细地描述您的问题。\n\n## 安装方法\n### 需求：\n建议使用 [Anaconda Python 环境](https:\u002F\u002Fwww.anaconda.com\u002Fdownload)。\n请参考 environment.yml 文件，主要需求如下：\n- Python >= 3.5\n- Keras >= 2.0.0 && \u003C= 2.0.7\n- Tensorflow == 1.1\n- RDKit\n- Numpy\n\n运行 ipynb 示例需要 Jupyter Notebook。请确保将 [Keras 后端](https:\u002F\u002Fkeras.io\u002Fbackend\u002F) 设置为使用 Tensorflow。\n\n### 通过 Anaconda（推荐方式）\n创建一个 conda 环境：\n```\nconda env create -f environment.yml\nsource activate chemvae\npython setup.py install\n```\n\n### 通过 pip\n假设您已满足所有依赖项：\n\n`pip install git+https:\u002F\u002Fgithub.com\u002Faspuru-guzik-group\u002Fchemical_vae.git`\n\n## 示例：ZINC 数据集\n\n本仓库包含如何在 ZINC 数据集中运行该自编码器的示例。\n\n首先，请查看 zinc 目录。参数设置在以下 JSON 文件中：\n  - **exp.json**  - 设置数据位置、全局实验参数、运行轮次数、待预测属性等。\n\n有关所有参数的完整说明，请参阅 hyperparameters.py；exp.json 中设置的参数会覆盖 hyperparameters.py 中的参数，而 params.json 中设置的参数则会覆盖 exp.json 和 hyperparameters.py 中的所有参数。\n\n设置好参数后，在包含 exp.json 的目录下运行以下命令以启动自编码器训练：\n\n`\npython -m chemvae.train_vae\n`\n\n_(请务必复制 examples 目录，以免覆盖已训练好的权重文件 (*.h5))_\n\n## 组件\ntrain_vae.py：变分自编码器训练主脚本\n    接受参数 -d ...\n    运行示例（此处为示例目录）\n\n- **models.py** - 模型库，包含编码器、解码器以及属性预测模型。\n- **tgru_k2_gpu.py** - 自定义 Keras 层，实现自定义的教师强制\u002F采样机制。\n- **sampled_rnn_tf.py** - 为 tgru_k2_gpu.py 编写的自定义 RNN 函数，基于 TensorFlow 后端实现。\n- **hyperparameters.py** - 自编码器的一些默认参数设置。\n- **mol_utils.py** - 用于将 SMILES 解析为独热编码及反向操作的工具库。\n- **mol_callbacks.py** - 包含 train_vae.py 使用的回调函数库。\n  - 其中包括 Weight_Annealer 回调，用于动态调整 KL 散度损失项的权重。\n- **vae_utils.py** - 自编码器对象的实用函数，用于后处理。\n\n## 作者：\n本软件由 Jennifer Wei、Benjamin Sanchez-Lengeling、Dennis Sheberla、Rafael Gomez-Bomberelli 和 Alan Aspuru-Guzik（alan@aspuru.com）编写。\n其基础源自于发表在 https:\u002F\u002Farxiv.org\u002Fpdf\u002F1610.02415.pdf 上的工作，作者包括：\n * [Rafa Gómez-Bombarelli](http:\u002F\u002Faspuru.chem.harvard.edu\u002Frafa-gomez-bombarelli\u002F)，\n * [Jennifer Wei](http:\u002F\u002Faspuru.chem.harvard.edu\u002Fjennifer-wei)，\n * [David Duvenaud](https:\u002F\u002Fwww.cs.toronto.edu\u002F~duvenaud\u002F)，\n * [José Miguel Hernández-Lobato](https:\u002F\u002Fjmhl.org\u002F)，\n * [Benjamín Sánchez-Lengeling]()，\n * [Dennis Sheberla](https:\u002F\u002Fwww.sheberla.com\u002F)，\n * [Jorge Aguilera-Iparraguirre](http:\u002F\u002Faspuru.chem.harvard.edu\u002Fjorge-aguilera\u002F)，\n * [Timothy Hirzel](https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Ft1m0thy)，\n * [Ryan P. Adams](http:\u002F\u002Fpeople.seas.harvard.edu\u002F~rpa\u002F)，\n * [Alán Aspuru-Guzik](http:\u002F\u002Faspuru.chem.harvard.edu\u002Fabout-alan\u002F)\n\n如有任何问题，欢迎随时联系我们！\n\n## 资助致谢\n\n“本研究得到了美国能源部科学办公室基础能源科学司资助的计算化学科学项目的支持，项目编号为 DE-FG02-17ER16362。”","# Chemical VAE 快速上手指南\n\nChemical VAE 是一个用于处理分子 SMILES 字符串的变分自编码器（VAE）框架。它能够将分子编码为潜在向量，并解码回 SMILES，同时支持结合属性预测（如 logP、QED、SAS）来优化潜在空间，从而发现具有特定优化属性的新分子。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**: Linux 或 macOS (Windows 需通过 WSL 或 Docker 运行)\n*   **Python**: >= 3.5 (推荐使用 Anaconda 管理环境)\n*   **核心依赖**:\n    *   Keras: 2.0.0 - 2.0.7\n    *   TensorFlow: 1.1 (注意版本严格匹配)\n    *   RDKit\n    *   Numpy\n*   **其他工具**: Jupyter Notebook (用于运行示例笔记)\n\n> **注意**: 必须将 Keras 的后端设置为 TensorFlow。\n\n## 安装步骤\n\n推荐使用 **Anaconda** 进行安装，以自动解决复杂的依赖关系。\n\n### 方法一：通过 Anaconda 安装（推荐）\n\n1.  克隆仓库或下载源码后，进入项目目录。\n2.  创建并激活 Conda 环境：\n    ```bash\n    conda env create -f environment.yml\n    source activate chemvae\n    ```\n    *(国内用户若下载缓慢，可配置清华源或中科大源：`conda config --add channels https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Fanaconda\u002Fpkgs\u002Fmain\u002F`)*\n\n3.  安装项目包：\n    ```bash\n    python setup.py install\n    ```\n\n### 方法二：通过 pip 安装\n\n如果您已手动安装好所有前置依赖（特别是特定版本的 TensorFlow 和 Keras），可直接使用 pip 安装：\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Faspuru-guzik-group\u002Fchemical_vae.git\n```\n\n## 基本使用\n\n本项目提供了基于 **ZINC 数据集** 的完整示例，涵盖编码、解码及属性预测训练。\n\n### 1. 配置参数\n\n进入 `zinc` 示例目录，主要配置文件为 `exp.json`。该文件定义了数据路径、实验全局参数、训练轮数（epochs）以及需要预测的属性等。\n\n*   **优先级说明**: `params.json` > `exp.json` > `hyperparameters.py`。即 `exp.json` 中的设置会覆盖默认值，而 `params.json` 拥有最高优先级。\n\n### 2. 运行训练\n\n在包含 `exp.json` 的目录下执行以下命令启动训练：\n\n```bash\npython -m chemvae.train_vae\n```\n\n> **提示**: 建议先复制 `examples` 目录到新的文件夹中进行操作，避免覆盖已训练好的权重文件 (`*.h5`)。\n\n### 3. 核心组件说明\n\n*   `train_vae.py`: 训练主脚本。\n*   `models.py`: 包含编码器、解码器及属性预测模型的定义。\n*   `mol_utils.py`: 用于 SMILES 字符串与 One-hot 编码之间的相互转换。\n*   `vae_utils.py`: 提供自动编码器的后处理工具函数。","某制药公司的 AI 研发团队正致力于从数亿种潜在分子中筛选出具有特定药效且合成难度低的新药候选物。\n\n### 没有 chemical_vae 时\n- **搜索效率极低**：研究人员只能在已有的有限数据库中进行线性检索，难以发现结构新颖的未知分子。\n- **性质预测滞后**：每设计一个新分子结构，都需要依赖耗时的量子化学计算或湿实验来验证其溶解度（logP）等关键属性。\n- **优化方向盲目**：缺乏连续的数学空间来指导分子演化，修改分子结构往往像“盲人摸象”，难以定向提升药物可及性评分（QED）。\n- **数据表示困难**：离散的 SMILES 字符串难以直接作为深度学习模型的输入，导致无法利用生成式模型进行自动化创新。\n\n### 使用 chemical_vae 后\n- **生成空间无限**：chemical_vae 将离散分子编码为连续潜向量，团队可在该空间中自由采样，瞬间生成数百万种理论上可行的全新分子结构。\n- **属性即时评估**：通过联合训练属性预测模型，系统在生成分子的同时即可预判其 logP、QED 和合成可及性（SAS），大幅减少无效计算。\n- **定向智能优化**：利用梯度下降在潜空间中直接搜索最优解，能精准导向兼具高药效与低合成难度的分子区域，实现“按需设计”。\n- **流程无缝闭环**：自动完成从 SMILES 到向量再回译 SMILES 的过程，让生成式 AI 真正融入药物发现的标准工作流。\n\nchemical_vae 通过将化学分子转化为可计算的连续空间，把新药研发从“大海捞针”的随机筛选转变为“按图索骥”的定向生成。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Faspuru-guzik-group_chemical_vae_24fee3bf.png","aspuru-guzik-group","The Matter Lab","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Faspuru-guzik-group_0821c20f.png","",null,"https:\u002F\u002Fwww.matter.toronto.edu\u002F","https:\u002F\u002Fgithub.com\u002Faspuru-guzik-group",[84],{"name":85,"color":86,"percentage":87},"Python","#3572A5",100,556,191,"2026-03-30T09:30:16","Apache-2.0",4,"未说明","未明确必需，但包含自定义 GPU 层 (tgru_k2_gpu.py)，暗示支持或需要 NVIDIA GPU 以加速训练；具体显存和 CUDA 版本未说明",{"notes":96,"python":97,"dependencies":98},"强烈建议使用 Anaconda 管理环境。必须将 Keras 后端设置为 Tensorflow。代码包含针对 TensorFlow 后端的自定义 RNN 函数和教师强制采样层。示例运行需复制目录以避免覆盖已训练的权重文件 (*.h5)。",">=3.5",[99,100,101,102,103],"Keras>=2.0.0,\u003C=2.0.7","Tensorflow==1.1","RDKit","Numpy","Jupyter notebook",[18],"2026-03-27T02:49:30.150509","2026-04-08T22:43:37.429369",[108,113,118,123,128,133,138],{"id":109,"question_zh":110,"answer_zh":111,"source_url":112},25190,"加载模型时出现 'Resource exhausted: OOM' 显存不足错误，是什么原因？","该错误通常是由于服务器显存（GPU Memory）不足导致的，而非系统内存（RAM）。报错信息显示在分配 tensor 时显存耗尽。如果您的服务器显存较小（如只有几 GB），可能需要减小 batch size、更换显存更大的 GPU，或者检查是否有其他进程占用了显存。","https:\u002F\u002Fgithub.com\u002Faspuru-guzik-group\u002Fchemical_vae\u002Fissues\u002F16",{"id":114,"question_zh":115,"answer_zh":116,"source_url":117},25185,"运行 train_vae 脚本时 GPU 未被使用，CPU 占用率却很高，如何解决？","这通常是由于环境配置冲突导致的。建议尝试在新机器上进行“干净”安装（不使用 conda install），或者检查 TensorFlow 和 Python 版本是否匹配。有用户反馈重新安装后问题解决。此外，确保 keras.json 中后端设置为 tensorflow，且环境变量 KERAS_BACKEND 也设为 tensorflow。","https:\u002F\u002Fgithub.com\u002Faspuru-guzik-group\u002Fchemical_vae\u002Fissues\u002F3",{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},25186,"项目要求的 Python 版本与 pyproject.toml 中指定的版本不一致，应该使用哪个版本？","该项目依赖复杂的环境配置。虽然环境创建命令可能指定了低于 3.12 的版本，但 pyproject.toml 文件中明确指定了 python = \"~3.12.4\"。请确保使用 Python 3.12.4 附近版本，并通过 poetry 命令安装依赖。如果遇到 TerminalGRU 相关问题，维护者已暂时移除了该模块以兼容新版本的包，这可能会略微降低精度但能解决兼容性问题。","https:\u002F\u002Fgithub.com\u002Faspuru-guzik-group\u002Fchemical_vae\u002Fissues\u002F59",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},25187,"运行 intro_to_chemvae.ipynb 时出现 'TerminalGRU' object has no attribute 'preprocess_input' 错误怎么办？","这是一个已知的兼容性问题。维护者在新版本中暂时移除了 TerminalGRU 模块以适配更新的依赖包版本。如果您遇到此错误，建议拉取最新代码或使用不包含该模块的分支。移除该模块可能会导致精度略有下降，但能确保算法在较新环境下的正常运行。","https:\u002F\u002Fgithub.com\u002Faspuru-guzik-group\u002Fchemical_vae\u002Fissues\u002F42",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},25188,"训练 ZINC 数据集速度非常慢，每个 epoch 耗时过长，如何优化？","如果是双 GPU 工作站但训练速度依然很慢，请尝试升级 tensorflow-gpu 版本。确保正确安装了支持 GPU 的 TensorFlow 版本，并检查 GPU 是否被正确识别和利用。","https:\u002F\u002Fgithub.com\u002Faspuru-guzik-group\u002Fchemical_vae\u002Fissues\u002F24",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},25189,"仓库中是否包含通过高斯过程（GP）进行分子属性优化的代码？","该仓库中并未发布高斯过程（Gaussian Process）优化方法的代码。如果您对化学领域的贝叶斯优化感兴趣，请关注 aspuru-guzik-group\u002Fgpmol 仓库，该相关功能预计将在未来发布。","https:\u002F\u002Fgithub.com\u002Faspuru-guzik-group\u002Fchemical_vae\u002Fissues\u002F11",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},25191,"如何配置以启用 GPU 进行训练？文档中相关的 gpu_utils 代码被注释了。","虽然示例代码中 gpu_utils 相关部分被注释，但该包理论上支持 GPU。您可以取消注释以下代码来自动选择显存最低的 GPU：\nfrom gpu_utils import pick_gpu_lowest_memory\ngpu_free_number = str(pick_gpu_lowest_memory())\nimport os\nos.environ['CUDA_VISIBLE_DEVICES'] = '{}'.format(gpu_free_number)\n如果没有 gpu_utils 模块，也可以手动设置 os.environ['CUDA_VISIBLE_DEVICES'] 为具体的 GPU 编号（如 '0'）。","https:\u002F\u002Fgithub.com\u002Faspuru-guzik-group\u002Fchemical_vae\u002Fissues\u002F44",[]]