[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-onnx--onnxmltools":3,"tool-onnx--onnxmltools":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 真正成长为懂上",156804,2,"2026-04-15T11:34:33",[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":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":77,"owner_email":77,"owner_twitter":77,"owner_website":78,"owner_url":79,"languages":80,"stars":89,"forks":90,"last_commit_at":91,"license":92,"difficulty_score":32,"env_os":93,"env_gpu":93,"env_ram":93,"env_deps":94,"category_tags":107,"github_topics":108,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":113,"updated_at":114,"faqs":115,"releases":116},7743,"onnx\u002Fonnxmltools","onnxmltools","ONNXMLTools enables conversion of models to ONNX","onnxmltools 是一款专为机器学习开发者设计的开源工具，核心功能是将各种主流框架训练的模型统一转换为 ONNX（开放神经网络交换）格式。在人工智能开发中，不同框架（如 TensorFlow、PyTorch、Scikit-learn 等）往往存在生态壁垒，导致模型部署和跨平台迁移困难。onnxmltools 有效解决了这一痛点，它充当了“通用转换器”的角色，支持将来自 Scikit-learn、LightGBM、XGBoost、CatBoost、Apple Core ML 甚至 Spark ML 等多种工具包的模型无缝转化为标准的 ONNX 格式，从而让模型能够在不同的推理引擎和硬件平台上流畅运行。\n\n该工具特别适合需要处理多框架模型整合的算法工程师、后端开发人员以及致力于模型落地的研究人员。其独特亮点在于提供了高度集成的转换接口，例如对 TensorFlow 和 Scikit-learn 的支持分别封装了成熟的 tf2onnx 和 skl2onnx 转换器，同时允许用户通过指定 target_opset 参数来精确控制生成的 ONNX 版本，确保与特定运行环境的兼容性。无论是希","onnxmltools 是一款专为机器学习开发者设计的开源工具，核心功能是将各种主流框架训练的模型统一转换为 ONNX（开放神经网络交换）格式。在人工智能开发中，不同框架（如 TensorFlow、PyTorch、Scikit-learn 等）往往存在生态壁垒，导致模型部署和跨平台迁移困难。onnxmltools 有效解决了这一痛点，它充当了“通用转换器”的角色，支持将来自 Scikit-learn、LightGBM、XGBoost、CatBoost、Apple Core ML 甚至 Spark ML 等多种工具包的模型无缝转化为标准的 ONNX 格式，从而让模型能够在不同的推理引擎和硬件平台上流畅运行。\n\n该工具特别适合需要处理多框架模型整合的算法工程师、后端开发人员以及致力于模型落地的研究人员。其独特亮点在于提供了高度集成的转换接口，例如对 TensorFlow 和 Scikit-learn 的支持分别封装了成熟的 tf2onnx 和 skl2onnx 转换器，同时允许用户通过指定 target_opset 参数来精确控制生成的 ONNX 版本，确保与特定运行环境的兼容性。无论是希望打破框架限制优化部署流程的开发者，还是需要在异构系统中复用模型的研究团队，onnxmltools 都能提供简洁高效的解决方案，助力实现“一次训练，到处运行”的目标。","\u003C!--- SPDX-License-Identifier: Apache-2.0 -->\n#\n\n![ONNXMLTools_logo_main](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fonnx_onnxmltools_readme_f7720083e361.png)\n\n[![CI](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Factions\u002Fworkflows\u002Fci.yml)\n\n## Introduction\n\nONNXMLTools enables you to convert models from different machine learning toolkits into [ONNX](https:\u002F\u002Fonnx.ai). Currently the following toolkits are supported:\n\n* Tensorflow (a wrapper of [tf2onnx converter](https:\u002F\u002Fgithub.com\u002Fonnx\u002Ftensorflow-onnx\u002F))\n* scikit-learn (a wrapper of [skl2onnx converter](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fsklearn-onnx\u002F))\n* Apple Core ML\n* Spark ML (experimental)\n* LightGBM\n* libsvm\n* XGBoost\n* H2O\n* CatBoost\n\nPytorch has its builtin ONNX exporter check [here](https:\u002F\u002Fpytorch.org\u002Fdocs\u002Fstable\u002Fonnx.html) for details.\n\n## Install\n\nYou can install latest release of ONNXMLTools from [PyPi](https:\u002F\u002Fpypi.org\u002Fproject\u002Fonnxmltools\u002F):\n\n```bash\npip install onnxmltools\n```\n\nor install from source:\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\n```\n\nIf you choose to install `onnxmltools` from its source code, you must set the environment variable `ONNX_ML=1` before installing the `onnx` package.\n\n## Dependencies\n\nThis package relies on ONNX, NumPy, and ProtoBuf. If you are converting a model from scikit-learn, Core ML, Keras, LightGBM, SparkML, XGBoost, H2O, CatBoost or LibSVM, you will need an environment with the respective package installed from the list below:\n\n1. scikit-learn\n2. CoreMLTools (version 3.1 or lower)\n3. Keras (version 2.0.8 or higher) with the corresponding Tensorflow version\n4. LightGBM\n5. SparkML\n6. XGBoost\n7. libsvm\n8. H2O\n9. CatBoost\n\nONNXMLTools is tested with Python **3.7+**.\n\n# Examples\n\nIf you want the converted ONNX model to be compatible with a certain ONNX version, please specify the target_opset parameter upon invoking the convert function. The following Keras model conversion example demonstrates this below. You can identify the mapping from ONNX Operator Sets (referred to as opsets) to ONNX releases in the [versioning documentation](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnx\u002Fblob\u002Fmain\u002Fdocs\u002FVersioning.md#released-versions).\n\n## Keras to ONNX Conversion\n\nNext, we show an example of converting a Keras model into an ONNX model with `target_opset=7`, which corresponds to ONNX release version 1.2.\n\n```python\nimport onnxmltools\nfrom keras.layers import Input, Dense, Add\nfrom keras.models import Model\n\n# N: batch size, C: sub-model input dimension, D: final model's input dimension\nN, C, D = 2, 3, 3\n\n# Define a sub-model, it will become a part of our final model\nsub_input1 = Input(shape=(C,))\nsub_mapped1 = Dense(D)(sub_input1)\nsub_model1 = Model(inputs=sub_input1, outputs=sub_mapped1)\n\n# Define another sub-model, it will become a part of our final model\nsub_input2 = Input(shape=(C,))\nsub_mapped2 = Dense(D)(sub_input2)\nsub_model2 = Model(inputs=sub_input2, outputs=sub_mapped2)\n\n# Define a model built upon the previous two sub-models\ninput1 = Input(shape=(D,))\ninput2 = Input(shape=(D,))\nmapped1_2 = sub_model1(input1)\nmapped2_2 = sub_model2(input2)\nsub_sum = Add()([mapped1_2, mapped2_2])\nkeras_model = Model(inputs=[input1, input2], outputs=sub_sum)\n\n# Convert it! The target_opset parameter is optional.\nonnx_model = onnxmltools.convert_keras(keras_model, target_opset=7)\n```\n\n## CoreML to ONNX Conversion\n\nHere is a simple code snippet to convert a Core ML model into an ONNX model.\n\n```python\nimport onnxmltools\nimport coremltools\n\n# Load a Core ML model\ncoreml_model = coremltools.utils.load_spec('example.mlmodel')\n\n# Convert the Core ML model into ONNX\nonnx_model = onnxmltools.convert_coreml(coreml_model, 'Example Model')\n\n# Save as protobuf\nonnxmltools.utils.save_model(onnx_model, 'example.onnx')\n```\n\n## H2O to ONNX Conversion\n\nBelow is a code snippet to convert a H2O MOJO model into an ONNX model. The only prerequisite is to have a MOJO model saved on the local file-system.\n\n```python\nimport onnxmltools\n\n# Convert the Core ML model into ONNX\nonnx_model = onnxmltools.convert_h2o('\u002Fpath\u002Fto\u002Fh2o\u002Fgbm_mojo.zip')\n\n# Save as protobuf\nonnxmltools.utils.save_model(onnx_model, 'h2o_gbm.onnx')\n```\n\n# Testing model converters\n\n*onnxmltools* converts models into the ONNX format which\ncan be then used to compute predictions with the\nbackend of your choice.\n\n## Checking the operator set version of your converted ONNX model\n\nYou can check the operator set of your converted ONNX model using [Netron](https:\u002F\u002Fgithub.com\u002Flutzroeder\u002FNetron), a viewer for Neural Network models. Alternatively, you could identify your converted model's opset version through the following line of code.\n\n```python\nopset_version = onnx_model.opset_import[0].version\n```\n\nIf the result from checking your ONNX model's opset is smaller than the `target_opset` number you specified in the onnxmltools.convert function, be assured that this is likely intended behavior. The ONNXMLTools converter works by converting each operator to the ONNX format individually and finding the corresponding opset version that it was most recently updated in. Once all of the operators are converted, the resultant ONNX model has the maximal opset version of all of its operators.\n\nTo illustrate this concretely, let's consider a model with two operators, Abs and Add. As of December 2018, [Abs](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnx\u002Fblob\u002Fmain\u002Fdocs\u002FOperators.md#abs) was most recently updated in opset 6, and [Add](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnx\u002Fblob\u002Fmain\u002Fdocs\u002FOperators.md#add) was most recently updated in opset 7. Therefore, the converted ONNX model's opset will always be 7, even if you request `target_opset=8`. The converter behavior was defined this way to ensure backwards compatibility.\n\nDocumentation for the [ONNX Model format](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnx) and more examples for converting models from different frameworks can be found in the [ONNX tutorials](https:\u002F\u002Fgithub.com\u002Fonnx\u002Ftutorials) repository.\n\n## Test all existing converters\n\nAll converter unit test can generate the original model and converted model to automatically be checked with\n[onnxruntime](https:\u002F\u002Fpypi.org\u002Fproject\u002Fonnxruntime\u002F) or\n[onnxruntime-gpu](https:\u002F\u002Fpypi.org\u002Fproject\u002Fonnxruntime-gpu\u002F).\nThe unit test cases are all the normal python unit test cases, you can run it with pytest command line, for example:\n\n```bash\npython -m pytest --ignore .\\tests\\\n```\n\nIt requires *onnxruntime*, *numpy* for most models,\n*pandas* for transforms related to text features, and\n*scipy* for sparse features. One test also requires\n*keras* to test a custom operator. That means\n*sklearn* or any machine learning library is requested.\n\n## Add a new converter\n\nOnce the converter is implemented, a unit test is added\nto confirm that it works. At the end of the unit test, function\n*dump_data_and_model* or any equivalent function must be called\nto dump the expected output and the converted model.\nOnce these file are generated, a corresponding test must\nbe added in *tests_backend* to compute the prediction\nwith the runtime.\n\n# License\n\n[Apache License v2.0](LICENSE)\n","\u003C!--- SPDX-License-Identifier: Apache-2.0 -->\n#\n\n![ONNXMLTools_logo_main](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fonnx_onnxmltools_readme_f7720083e361.png)\n\n[![CI](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Factions\u002Fworkflows\u002Fci.yml)\n\n## 简介\n\nONNXMLTools 可以帮助您将来自不同机器学习工具包的模型转换为 [ONNX](https:\u002F\u002Fonnx.ai) 格式。目前支持以下工具包：\n\n* TensorFlow（基于 [tf2onnx 转换器](https:\u002F\u002Fgithub.com\u002Fonnx\u002Ftensorflow-onnx\u002F)）\n* scikit-learn（基于 [skl2onnx 转换器](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fsklearn-onnx\u002F)）\n* Apple Core ML\n* Spark ML（实验性支持）\n* LightGBM\n* libsvm\n* XGBoost\n* H2O\n* CatBoost\n\nPyTorch 自带 ONNX 导出功能，详情请参阅 [这里](https:\u002F\u002Fpytorch.org\u002Fdocs\u002Fstable\u002Fonnx.html)。\n\n## 安装\n\n您可以从 [PyPi](https:\u002F\u002Fpypi.org\u002Fproject\u002Fonnxmltools\u002F) 安装最新版本的 ONNXMLTools：\n\n```bash\npip install onnxmltools\n```\n\n或者直接从源代码安装：\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\n```\n\n如果您选择从源代码安装 `onnxmltools`，则必须在安装 `onnx` 包之前设置环境变量 `ONNX_ML=1`。\n\n## 依赖项\n\n本包依赖于 ONNX、NumPy 和 ProtoBuf。如果您要转换 scikit-learn、Core ML、Keras、LightGBM、SparkML、XGBoost、H2O、CatBoost 或 LibSVM 的模型，则需要确保环境中已安装相应的库：\n\n1. scikit-learn\n2. CoreMLTools（版本 3.1 或更低）\n3. Keras（版本 2.0.8 或更高）及对应的 TensorFlow 版本\n4. LightGBM\n5. SparkML\n6. XGBoost\n7. libsvm\n8. H2O\n9. CatBoost\n\nONNXMLTools 已在 Python **3.7+** 上进行测试。\n\n# 示例\n\n如果希望转换后的 ONNX 模型与特定的 ONNX 版本兼容，请在调用转换函数时指定 `target_opset` 参数。下面的 Keras 模型转换示例展示了这一点。您可以在 [版本控制文档](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnx\u002Fblob\u002Fmain\u002Fdocs\u002FVersioning.md#released-versions) 中找到 ONNX 操作集（称为 opsets）与 ONNX 发布版本之间的对应关系。\n\n## Keras 到 ONNX 的转换\n\n接下来，我们展示一个将 Keras 模型转换为 ONNX 模型的例子，其中 `target_opset=7`，对应 ONNX 发布版本 1.2。\n\n```python\nimport onnxmltools\nfrom keras.layers import Input, Dense, Add\nfrom keras.models import Model\n\n# N：批次大小，C：子模型输入维度，D：最终模型输入维度\nN, C, D = 2, 3, 3\n\n# 定义一个子模型，它将成为我们最终模型的一部分\nsub_input1 = Input(shape=(C,))\nsub_mapped1 = Dense(D)(sub_input1)\nsub_model1 = Model(inputs=sub_input1, outputs=sub_mapped1)\n\n# 定义另一个子模型，它将成为我们最终模型的一部分\nsub_input2 = Input(shape=(C,))\nsub_mapped2 = Dense(D)(sub_input2)\nsub_model2 = Model(inputs=sub_input2, outputs=sub_mapped2)\n\n# 定义一个基于前两个子模型的模型\ninput1 = Input(shape=(D,))\ninput2 = Input(shape=(D,))\nmapped1_2 = sub_model1(input1)\nmapped2_2 = sub_model2(input2)\nsub_sum = Add()([mapped1_2, mapped2_2])\nkeras_model = Model(inputs=[input1, input2], outputs=sub_sum)\n\n# 开始转换！`target_opset` 参数是可选的。\nonnx_model = onnxmltools.convert_keras(keras_model, target_opset=7)\n```\n\n## CoreML 到 ONNX 的转换\n\n以下是一个简单的代码片段，用于将 Core ML 模型转换为 ONNX 模型。\n\n```python\nimport onnxmltools\nimport coremltools\n\n# 加载一个 Core ML 模型\ncoreml_model = coremltools.utils.load_spec('example.mlmodel')\n\n# 将 Core ML 模型转换为 ONNX\nonnx_model = onnxmltools.convert_coreml(coreml_model, 'Example Model')\n\n# 保存为 protobuf 格式\nonnxmltools.utils.save_model(onnx_model, 'example.onnx')\n```\n\n## H2O 到 ONNX 的转换\n\n以下是将 H2O MOJO 模型转换为 ONNX 模型的代码片段。唯一的先决条件是本地文件系统中已保存 MOJO 模型。\n\n```python\nimport onnxmltools\n\n# 将 Core ML 模型转换为 ONNX\nonnx_model = onnxmltools.convert_h2o('\u002Fpath\u002Fto\u002Fh2o\u002Fgbm_mojo.zip')\n\n# 保存为 protobuf 格式\nonnxmltools.utils.save_model(onnx_model, 'h2o_gbm.onnx')\n```\n\n# 测试模型转换器\n\n*onnxmltools* 可以将模型转换为 ONNX 格式，随后您便可以使用任意后端来执行预测。\n\n## 检查转换后 ONNX 模型的操作集版本\n\n您可以通过 [Netron](https:\u002F\u002Fgithub.com\u002Flutzroeder\u002FNetron)，一款神经网络模型查看器，来检查转换后 ONNX 模型的操作集版本。此外，您也可以通过以下代码行确定转换后模型的操作集版本：\n\n```python\nopset_version = onnx_model.opset_import[0].version\n```\n\n如果检查结果低于您在 `onnxmltools.convert` 函数中指定的 `target_opset` 值，这通常是预期行为。ONNXMLTools 转换器会逐个将操作符转换为 ONNX 格式，并为其找到最近更新的操作集版本。当所有操作符都转换完毕后，生成的 ONNX 模型将采用其包含的所有操作符中的最高操作集版本。\n\n为了更具体地说明这一点，我们考虑一个包含 Abs 和 Add 两个操作符的模型。截至 2018 年 12 月，[Abs](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnx\u002Fblob\u002Fmain\u002Fdocs\u002FOperators.md#abs) 最近一次更新是在 opset 6，而 [Add](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnx\u002Fblob\u002Fmain\u002Fdocs\u002FOperators.md#add) 最近一次更新是在 opset 7。因此，即使您请求 `target_opset=8`，转换后的 ONNX 模型的操作集版本也将始终是 7。这种转换行为是为了确保向后兼容性而设计的。\n\n有关 [ONNX 模型格式](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnx) 的文档以及更多来自不同框架的模型转换示例，可在 [ONNX 教程](https:\u002F\u002Fgithub.com\u002Fonnx\u002Ftutorials) 仓库中找到。\n\n## 测试所有现有转换器\n\n所有转换器的单元测试都可以自动生成原始模型和转换后的模型，并使用 [onnxruntime](https:\u002F\u002Fpypi.org\u002Fproject\u002Fonnxruntime\u002F) 或 [onnxruntime-gpu](https:\u002F\u002Fpypi.org\u002Fproject\u002Fonnxruntime-gpu\u002F) 自动进行验证。这些单元测试案例均为标准的 Python 单元测试，您可以通过 pytest 命令行运行，例如：\n\n```bash\npython -m pytest --ignore .\\tests\\\n```\n\n大多数模型的测试需要 *onnxruntime* 和 *numpy*；与文本特征相关的转换则需要 *pandas*；稀疏特征则需要 *scipy*。还有一个测试需要 *keras* 来测试自定义操作符，这意味着也需要 *sklearn* 或其他机器学习库。\n\n## 添加一个新的转换器\n\n一旦转换器实现完毕，就会添加一个单元测试来确认其正常工作。在单元测试的最后，必须调用函数 *dump_data_and_model* 或任何等效函数，以导出预期的输出和转换后的模型。这些文件生成后，还需在 *tests_backend* 中添加相应的测试，以便使用运行时计算预测结果。\n\n# 许可证\n\n[Apache许可证v2.0](LICENSE)","# ONNXMLTools 快速上手指南\n\nONNXMLTools 是一个用于将多种机器学习框架（如 scikit-learn、Core ML、LightGBM、XGBoost 等）训练的模型转换为 **ONNX** 格式的工具库，便于模型在不同推理引擎间部署。\n\n## 环境准备\n\n### 系统要求\n- **Python 版本**：3.7 及以上\n\n### 前置依赖\n本工具依赖 `ONNX`、`NumPy` 和 `ProtoBuf`。根据你要转换的源模型框架，还需安装对应的库：\n\n| 源框架 | 需安装的额外依赖 |\n| :--- | :--- |\n| scikit-learn | `scikit-learn` |\n| Core ML | `coremltools` (版本 ≤ 3.1) |\n| Keras\u002FTensorFlow | `keras` (≥ 2.0.8) 及对应版本的 `tensorflow` |\n| LightGBM | `lightgbm` |\n| Spark ML | `pyspark` |\n| XGBoost | `xgboost` |\n| LibSVM | `libsvm` |\n| H2O | `h2o` |\n| CatBoost | `catboost` |\n\n> **注意**：如果你计划从源码安装，请在安装 `onnx` 包之前设置环境变量：`export ONNX_ML=1`。\n\n## 安装步骤\n\n### 方式一：通过 PyPI 安装（推荐）\n使用国内镜像源加速安装：\n\n```bash\npip install onnxmltools -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 方式二：从源码安装\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\n```\n\n## 基本使用\n\n以下示例展示如何将一个 **Keras** 模型转换为 ONNX 格式。其他框架（如 Core ML、H2O 等）的使用方式类似，只需调用对应的 `convert_\u003Cframework>` 函数。\n\n### 示例：Keras 模型转 ONNX\n\n```python\nimport onnxmltools\nfrom keras.layers import Input, Dense, Add\nfrom keras.models import Model\n\n# 1. 构建一个简单的 Keras 模型\nN, C, D = 2, 3, 3\n\nsub_input1 = Input(shape=(C,))\nsub_mapped1 = Dense(D)(sub_input1)\nsub_model1 = Model(inputs=sub_input1, outputs=sub_mapped1)\n\nsub_input2 = Input(shape=(C,))\nsub_mapped2 = Dense(D)(sub_input2)\nsub_model2 = Model(inputs=sub_input2, outputs=sub_mapped2)\n\ninput1 = Input(shape=(D,))\ninput2 = Input(shape=(D,))\nmapped1_2 = sub_model1(input1)\nmapped2_2 = sub_model2(input2)\nsub_sum = Add()([mapped1_2, mapped2_2])\n\nkeras_model = Model(inputs=[input1, input2], outputs=sub_sum)\n\n# 2. 转换为 ONNX 模型\n# target_opset 是可选参数，用于指定目标 ONNX 算子集版本\nonnx_model = onnxmltools.convert_keras(keras_model, target_opset=7)\n\n# 3. 保存模型\nonnxmltools.utils.save_model(onnx_model, 'keras_model.onnx')\n```\n\n### 其他框架转换简述\n\n- **Core ML**: 使用 `onnxmltools.convert_coreml(coreml_model, 'Model Name')`\n- **H2O**: 使用 `onnxmltools.convert_h2o('\u002Fpath\u002Fto\u002Fmodel.zip')`\n\n转换完成后，你可以使用 [Netron](https:\u002F\u002Fgithub.com\u002Flutzroeder\u002FNetron) 查看模型结构，或使用 `onnxruntime` 进行推理验证。","某金融科技公司需要将分散在数据科学团队手中的多个旧版机器学习模型（包括 scikit-learn、XGBoost 和 Core ML）统一集成到新的跨平台实时风控系统中。\n\n### 没有 onnxmltools 时\n- **格式孤岛严重**：不同算法框架生成的模型文件格式互不兼容，后端工程团队必须为每种框架单独编写推理引擎，开发成本极高。\n- **部署流程割裂**：从苹果设备上的 Core ML 模型到服务器端的 XGBoost 模型，缺乏统一的转换标准，导致测试和验证工作重复且繁琐。\n- **维护难度巨大**：每当更新底层推理库时，需要同时维护多套代码逻辑，任何一处框架升级都可能导致整个系统崩溃。\n- **性能优化受限**：无法利用 ONNX Runtime 等通用高性能推理加速器，导致高并发场景下的响应延迟难以满足业务需求。\n\n### 使用 onnxmltools 后\n- **统一标准格式**：通过 onnxmltools 一键将 scikit-learn、XGBoost 及 Core ML 等异构模型全部转换为标准的 ONNX 格式，消除了格式壁垒。\n- **简化集成路径**：无论模型源自何种框架，工程团队只需对接单一的 ONNX 推理接口，大幅缩短了从实验到生产环境的部署周期。\n- **降低运维复杂度**：模型管理变得集中化，后续只需关注 ONNX 版本的兼容性，不再受限于原始训练框架的特定依赖。\n- **释放硬件潜能**：转换后的模型可直接接入 ONNX Runtime，自动利用多核 CPU 或 GPU 加速，显著提升了风控系统的吞吐量与响应速度。\n\nonnxmltools 通过打破机器学习框架间的“巴别塔”，让异构模型得以在统一的标准下高效流转与部署。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fonnx_onnxmltools_ca7b47d4.png","onnx","Open Neural Network Exchange","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fonnx_e2e75b88.png","ONNX is an open ecosystem for interoperable AI models. It's a community project: we welcome your contributions!",null,"https:\u002F\u002Fonnx.ai","https:\u002F\u002Fgithub.com\u002Fonnx",[81,85],{"name":82,"color":83,"percentage":84},"Python","#3572A5",99.9,{"name":86,"color":87,"percentage":88},"CSS","#663399",0.1,1144,216,"2026-04-08T16:38:25","Apache-2.0","未说明",{"notes":95,"python":96,"dependencies":97},"该工具主要用于将不同机器学习框架的模型转换为 ONNX 格式。若从源码安装，需在安装 onnx 包前设置环境变量 ONNX_ML=1。PyTorch 模型请使用其内置导出器，不在本工具支持列表中。测试和运行转换后的模型通常需要安装 onnxruntime 或 onnxruntime-gpu。","3.7+",[73,98,99,100,101,102,103,104,105,106],"numpy","protobuf","scikit-learn (可选，用于转换 sklearn 模型)","coremltools\u003C=3.1 (可选，用于转换 Core ML 模型)","keras>=2.0.8 (可选，需配合对应版本的 TensorFlow)","lightgbm (可选)","pyspark (可选，用于 Spark ML)","xgboost (可选)","libsvm (可选)",[14],[109,110,73,111,112],"machine-learning","python-library","scikit-learn","keras","2026-03-27T02:49:30.150509","2026-04-16T02:01:31.212677",[],[117,122,127,132,137,142,147,152,157,162,167,172,177,182,187,192,197,202,207,211],{"id":118,"version":119,"summary_zh":120,"released_at":121},271977,"1.16.0","* 添加 LGBMRanker 支持\n  初始 PR [754](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F754)，\n  最终定稿于 PR [755](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F755)\n* 添加对自定义目标函数的部分支持\n  [#753](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F753)\n* 改进 XGBoost 对分类特征的支持\n  [#743](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F743)","2026-01-30T12:44:39",{"id":123,"version":124,"summary_zh":125,"released_at":126},271978,"v1.15.0","## 变更内容\n* @lukaswenzl 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F734 中添加了对包含分类特征的 XGBoost 模型的转换支持\n* @xadupre 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F738 中修复了 black 相关的问题\n* @AsherWright 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F736 中增加了对 XGBoost 3 的支持，包括多分类问题\n* @xadupre 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F739 中修复了样式问题\n* @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F748 中将 github\u002Fcodeql-action 从 2 升级到 4\n* @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F746 中将 actions\u002Fcache 从 4 升级到 5\n* @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F747 中将 actions\u002Fcheckout 从 2 升级到 6\n* @andife 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F749 中添加了 workflow dispatch；更新了 ci.yml\n* @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F744 中将 actions\u002Fupload-artifact 从 4 升级到 6\n* @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F745 中将 actions\u002Fsetup-python 从 4 升级到 6\n* @andife 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F750 中迁移到 pyproject.toml，并修复了依赖失败问题\n* @lukaswenzl 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F742 中为 XGBoost 添加了对伽玛分布和 Tweedie 分布的支持\n* @andife 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F751 中更新了 __init__.py 中的版本号\n\n## 新贡献者\n* @lukaswenzl 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F734 中做出了首次贡献\n* @AsherWright 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F736 中做出了首次贡献\n* @andife 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F749 中做出了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fcompare\u002F1.14.0...v1.15.0","2026-01-14T16:47:30",{"id":128,"version":129,"summary_zh":130,"released_at":131},271979,"v1.15.0rc1","## 变更内容\n* @lukaswenzl 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F734 中添加了对包含分类特征的 xgboost 模型的转换支持\n* @xadupre 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F738 中修复了 black 相关的问题\n* @AsherWright 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F736 中增加了对 xgboost 3 的支持，包括多分类问题\n* @xadupre 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F739 中修复了样式问题\n* @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F748 中将 github\u002Fcodeql-action 从 2 升级到 4\n* @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F746 中将 actions\u002Fcache 从 4 升级到 5\n* @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F747 中将 actions\u002Fcheckout 从 2 升级到 6\n* @andife 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F749 中添加了工作流调度功能，并更新了 ci.yml 文件\n* @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F744 中将 actions\u002Fupload-artifact 从 4 升级到 6\n* @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F745 中将 actions\u002Fsetup-python 从 4 升级到 6\n* @andife 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F750 中迁移到 pyproject.toml，并修复了依赖项失败问题\n\n## 新贡献者\n* @lukaswenzl 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F734 中完成了首次贡献\n* @AsherWright 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F736 中完成了首次贡献\n* @andife 在 https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F749 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fcompare\u002F1.14.0...v1.15.0rc1","2026-01-07T15:52:44",{"id":133,"version":134,"summary_zh":135,"released_at":136},271980,"1.14.0","* 在 LightGBM 选项中添加 tweedie 目标函数\n  [#722](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F722)\n* 在 LGBM Booster 中支持 “huber” 目标函数\n  [#705](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F705)\n* 移除对 split_complex_to_pairs 的导入及未使用的函数\n  [#714](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F714)\n* 移除对 onnxconveter-common 的依赖\n  [#718](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnxmltools\u002Fpull\u002F718)\n","2025-06-10T15:33:46",{"id":138,"version":139,"summary_zh":140,"released_at":141},271981,"v1.13","\r\n- 添加缺失的依赖 onnxconverter_common，修复使用 XGBoost 进行多分类回归的问题 #679 \r\n- 处理二分类器将输出设置为 [N,1] 与 [N,2] 的问题 #681 \r\n- 修复 onnxconverter_common 的包名 #683 \r\n- 更新 tree_ensemble_common.py 文件 #691 \r\n","2024-12-17T07:46:20",{"id":143,"version":144,"summary_zh":145,"released_at":146},271982,"1.12.0","* 修复 XGBClassifier 和 xgboost > 2 版本中的早停机制，#597\n* 修复 XGBRegressor 与 xgboost > 2 版本之间的不一致问题，#670\n* 支持 XGBRegressor 使用 count:poisson 损失函数，#666\n* 增加对 XGBRFClassifier 和 XGBRFRegressor 的支持，#665\n* 将 ONNX_DFS_PATH 配置项设置到 Spark 配置中，#653（由 @Ironwood-Cyber 提供）\n* SparkML 转换器：支持 StringType 和 StringType() 类型，#639\n* 在 _get_attributes 函数中添加 base_score 检查，#637、#626（由 @tolleybot 提供）\n* 支持 lightgbm >= 4.0 版本，#634","2023-12-16T15:11:34",{"id":148,"version":149,"summary_zh":150,"released_at":151},271983,"v1.11.2","- #608 修复：Spark Imputer 在多输入列情况下的转换问题\n- #607 修复：getTensorTypeFromSpark 在 Spark 3.3.0 及以上版本中会失败\n- #606 将 onnxruntime==1.14.0 添加到 CI 流水线\n- #605 使用占位图像替换真实图像\n- #602 更新 CI，添加 Latex、onnxruntime 和 xgboost 相关内容\n- #606 convert_lightgbm：为 FloatTensor 概率添加形状信息","2023-03-07T06:03:48",{"id":153,"version":154,"summary_zh":155,"released_at":156},271984,"1.11.1","- 功能：新增对 SparkML CountVectorizer 转换的支持 #560 \n- 文档：更新 SparkML 相关文档；代码清理。#559 \n- 修复：'SparkSession' 对象没有 'util' 属性 #557 \n- 功能：新增对 SparkML KMeansModel 转换的支持 #556 \n- 修复：当 withStd 或 withMean 设置为 true 时，SparkML StandardScaler 转换会失败 #555 \n- 修复：SparkML VectorAssembler 的转换器无法正确支持向量输入 #554 \n- 修复：Spark OneHotEncoder 模型的 ONNX 转换 #552","2022-06-10T05:36:49",{"id":158,"version":159,"summary_zh":160,"released_at":161},271985,"1.11.0","- 修复 XGBoost 模型恢复后的转换问题 #520 - 修复 onnx=1.11.0 的测试用例条件 #527 - 更新 CI 以支持 ORT 1.11.0 #539 - 调整作者和邮箱信息 #539","2022-04-11T06:08:30",{"id":163,"version":164,"summary_zh":165,"released_at":166},271986,"1.10.0","* 替换 #507，并修复 XGBoost 转换器在 base_score 为 None 时的 bug #510\n* 为兼容 Python 3.11，使用 assertRegex 替代 assertRegexpMatches。#508\n* 支持 opset 15，并将版本更新至 1.10.0 #505\n* 为 LGBM 模型添加分位数目标函数支持 #503\n* 为 convert_tensorflow 添加 shape_override 参数及其他选项 #497\n* 实现 split 选项，以减少 LightGBM 回归模型的差异 #496","2021-10-22T10:27:53",{"id":168,"version":169,"summary_zh":170,"released_at":171},271987,"1.9.1","* Add requirements.txt to MANIFEST.in #493","2021-08-23T17:58:27",{"id":173,"version":174,"summary_zh":175,"released_at":176},271988,"1.9.0","LightGBM\r\n\r\n* Improves lightgbm conversion speed #491\r\n* Fix discovering classifier objective #480\r\n* Fix missing type in lgbm regressor #488\r\n* Support gamma objective in LGBMRegressor #484\r\n* Allow to add custom post transform functions that are not supported by the ONNX spec yet #463\r\n* Enable option zipmap for LGBM converter #452\r\n\r\nXGBoost\r\n\r\n* Use all tree when best_ntree_limit is not specified #459\r\n* Fix discrepencies when xgboost trees are empty #447\r\n\r\nKeras\r\n\r\n* Switch to tf2onnx for tensorflow>=2.0 instead of keras2onnx #492","2021-08-20T11:01:46",{"id":178,"version":179,"summary_zh":180,"released_at":181},271989,"1.8.0","New features\r\n\r\n* New converters for CatBoost #392\r\n* Integration with Hummingbird #404, #418, #427\r\n* Support for opset 13 #437\r\n\r\nXGBoost\r\n\r\n* Support float type for feature_id #423\r\n* Support unsigned integer as class type #426\r\n* Fix the converter when the parameter best_ntree_limit is used #429\r\n* Support multi:softmax objective #442\r\n\r\nCoreML\r\n\r\n* Extend CoreML: ReshapeStatic\u002FLoadConstantND #430\r\n* Fix PReLU conversion from CoreML #425\r\n","2021-02-19T15:34:11",{"id":183,"version":184,"summary_zh":185,"released_at":186},271990,"v1.7.0","The major update for this release\r\n1. Supports ONNX 1.7\r\n2. Work with the new xgboost version\r\n3. Remove Python 2.x support\r\n\r\nDetails:\r\nAdd the flake8 to be the default code formatter (#401)\r\nFixes #396, xgboost converter for xgboost >= 1.0.2 (#397)\r\nSupport onnx 1.7 in CI build (#398)\r\nfixed the xgboost version (#395)\r\nfix ceiling-mode defaults for pool operators (AvgPool, MaxPool) (#388)\r\nUpdate documentation, add examples (#385)\r\nRemove support of python 2.7 (#383)\r\nupgrade to 1.7 (#384)\r\nFix for onnx 1.7 release (#381)\r\nPing h2o version==3.28.0.3 (#377)\r\nFix xgboost converter (#373)\r\nxgboost not supporting 1.0 version. (#372)\r\n\r\nKnown issues:\r\nonnxmltools tf2onnx wrapper can only work with tf2onnx \u003C= 1.5.6.\r\n","2020-06-08T06:52:22",{"id":188,"version":189,"summary_zh":190,"released_at":191},271991,"v1.6.5","The major updates of this release.\r\n1. Add a new converter for H2O GBM MOJO\r\n2. add tf2onnx wrapper with a onnxmltools converter style API.\r\n3. Some bug fixing for the existing converters.","2020-01-30T21:40:07",{"id":193,"version":194,"summary_zh":195,"released_at":196},271992,"v1.6.0","Support opset 11","2019-11-06T19:35:37",{"id":198,"version":199,"summary_zh":200,"released_at":201},271993,"v1.5.1","Major updates:\r\n1. Moving onnxconverter-common package from onnxmltools repo\r\n2. Fix CI\u002Fnightly build\r\n3. Fix ImageScaler bias for opset 10\r\n4. Fix lightgbm.Booster\r\n5. Fixed XGboost classifier converter output labels\r\n6. Set default_batch_size to 'None'","2019-10-04T18:11:43",{"id":203,"version":204,"summary_zh":205,"released_at":206},271994,"v1.5.0","onnxmltools version 1.5.0 is now available! This version features ONNX Opset 10 support and code coverage.\r\n\r\n### How do I use the latest onnxmltools package?\r\n```\r\npip install onnxmltools --upgrade\r\npython -c \"import onnxmltools\"\r\n```\r\n\r\nThis package includes converters for LightGBM, CoreML, Spark ML, LibSVM, XGBoost, and wrappers for conversion from [scikit-learn](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fsklearn-onnx) and [Keras](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fkeras-onnx).\r\n\r\n### Highlights since the last release\r\n* Updating onnxmltools package version and requirements to 1.5.0 (#315)\r\n* Opset 10 Updates\r\n   * [Opset 10] Updates for thresholded relu (#308)\r\n   * [Opset 10] Deprecate Upsample, create Resize op (#303)\r\n   * [Opset 10] Pooling operator updates: AveragePool, MaxPool (#296)\r\n   * Added apply_slice function to enable multiple versions of Slice (#291) \r\n* Include code coverage \u002F Improve CI Builds\r\n   * Run code coverage on linux CI (#301) \r\n   * Add support for Py3.7, onnx 1.5, onnxruntime 0.4 (#293)\r\n* Fixing input to CoreML multiply for LeakyReLU (#297)\r\n* Documentation update: Spark ML readme files (#289)","2019-06-11T21:14:45",{"id":208,"version":209,"summary_zh":77,"released_at":210},271995,"v1.4.1","2019-04-18T20:47:04",{"id":212,"version":213,"summary_zh":77,"released_at":214},271996,"v1.4.0-rc1","2019-04-02T01:11:13"]