[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-JDAI-CV--dabnn":3,"tool-JDAI-CV--dabnn":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 真正成长为懂上",143909,2,"2026-04-07T11:33:18",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[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},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":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":75,"owner_location":75,"owner_email":75,"owner_twitter":75,"owner_website":76,"owner_url":77,"languages":78,"stars":103,"forks":104,"last_commit_at":105,"license":106,"difficulty_score":107,"env_os":108,"env_gpu":109,"env_ram":110,"env_deps":111,"category_tags":116,"github_topics":75,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":117,"updated_at":118,"faqs":119,"releases":155},5129,"JDAI-CV\u002Fdabnn","dabnn","dabnn is an accelerated binary neural networks inference framework for mobile platform","dabnn 是一款专为移动平台打造的高性能二值神经网络（BNN）推理框架。传统神经网络在手机等边缘设备上运行往往消耗大量算力，而 dabnn 通过将浮点运算替换为高效的位运算，大幅降低了计算资源需求，成功解决了移动端部署深度学习模型速度慢、功耗高的问题。\n\n该工具主要面向需要在 Android 或其他 ARM 架构设备上部署轻量化 AI 模型的开发者与研究人员。它支持将标准的 ONNX 模型转换为 dabnn 专用格式，并提供了预编译的 Android 包，方便集成到现有项目中。\n\ndabnn 的核心亮点在于其极致的优化策略。团队使用 ARM 汇编语言重写了二值卷积层，充分挖掘了硬件潜力。实测数据显示，在 Google Pixel 1 等设备上，dabnn 的推理速度比同类开源框架快 7 到 24 倍，尤其在运行二值化 ResNet-18 等模型时表现卓越。此外，项目还开源了基于 ImageNet 训练的预训练模型，帮助用户快速上手验证。如果你正在寻求在移动端实现极速、低功耗的神经网络推理，dabnn 是一个值得尝试的专业解决方案。","# dabnn\n\n[![Build Status](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FJDAI-CV_dabnn_readme_7e222974ae30.png)](https:\u002F\u002Fdev.azure.com\u002Fdaquexian\u002Fdabnn\u002F_build\u002Flatest?definitionId=2&branchName=master)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-BSD--3--Clause-blue.svg)](LICENSE) \n[![jcenter](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdynamic\u002Fjson.svg?label=jcenter&query=name&url=https%3A%2F%2Fapi.bintray.com%2Fpackages%2Fdaquexian566%2Fmaven%2Fdabnn%2Fversions%2F_latest)](https:\u002F\u002Fbintray.com\u002Fdaquexian566\u002Fmaven\u002Fdabnn\u002F_latestVersion)\n[![Gitter Chat](https:\u002F\u002Fimg.shields.io\u002Fgitter\u002Froom\u002Fdabnn\u002Fdabnn.svg)](https:\u002F\u002Fgitter.im\u002Fdabnn\u002Fdabnn)\n[![PRs Welcome](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen.svg)](https:\u002F\u002Fgithub.com\u002FJDAI-CV\u002Fdabnn\u002Fpulls)\n\n*Enjoy binary neural networks on mobile!*\n\nGitter: [dabnn\u002Fdabnn](https:\u002F\u002Fgitter.im\u002Fdabnn\u002Fdabnn), QQ group (Chinese)：1021964010, answer: nndab\n\n[[English](README.md)] [[Chinese\u002F中文](README_CN.md)]\n\nOur ACM MM paper: https:\u002F\u002Farxiv.org\u002Fabs\u002F1908.05858\n\n## Introduction\n\nBinary neural networks (BNNs) have great potential on edge devices since they replace float operations by efficient bit-wise operations. However, to leverage the efficiency of bit-wise operations, the reimplmentation of convolution layer and also other layers is needed. \n\nTo our best knowledge, dabnn is the first highly-optimized binary neural networks inference framework for mobile platform. We implemented binary convolutions with ARM assembly. On Google Pixel 1, our dabnn is as **800%~2400% faster** as [BMXNet](https:\u002F\u002Fgithub.com\u002Fhpi-xnor\u002FBMXNet) (the only one open-sourced BNN inference framework except dabnn to our best knowledge) on a single binary convolution, and as about **700% faster** as it on binarized ResNet-18.\n\n![Comparison](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FJDAI-CV_dabnn_readme_ec940d667fe1.png)\n\n## Build\n\nWe provide pre-built onnx2bnn and also dabnn Android package. However, you need to build it if you want to deploy BNNs on non-Android ARM devices.\n\nWe use CMake build system like most C++ projects. Check out [docs\u002Fbuild.md](docs\u002Fbuild.md) for the detailed instructions.\n\n## Convert ONNX Model\n\nWe provide a conversion tool, named onnx2bnn, to convert an ONNX model to a dabnn model. We provide onnx2bnn pre-built binaries for all platforms in [GitHub Releases](https:\u002F\u002Fgithub.com\u002FJDAI-CV\u002Fdabnn\u002Freleases). For Linux users, the onnx2bnn pre-built binary is [AppImage](https:\u002F\u002Fappimage.org) format, see https:\u002F\u002Fappimage.org for details.\n\nNote: Binary convolution is a custom operator, so whether the ONNX model is dabnn-comptabile heavily depends on the implementation of the binary convolution in the training code. **Please read the [documentation about model conversion](\u002Fdocs\u002Fmodel_conversion.md) carefully.**\n\nAfter conversion, the generated dabnn model can be deployed on ARM devices (e.g., mobile phones and embedded devices). For Android developer, we have provided Android AAR package and published it on [jcenter](https:\u002F\u002Fbintray.com\u002Fdaquexian566\u002Fmaven\u002Fdabnn\u002F_latestVersion), for the usage please check out [example project](https:\u002F\u002Fgithub.com\u002FJDAI-CV\u002Fdabnn-example).\n\n## Pretrained Models\n\nWe publish two pretrained binary neural network models based on [Bi-Real Net](https:\u002F\u002Farxiv.org\u002Fabs\u002F1808.00278) on ImageNet. More pretrained models will be published in the future.\n\n* Bi-Real Net 18, 56.4% top-1 on ImageNet, 61.3ms\u002Fimage on Google Pixel 1 (single thread). [[dabnn](https:\u002F\u002Fdrive.google.com\u002Fuc?export=download&id=1Oau5CtFR9nWXmlBBU47Jg5ypMiIEMtvo)] [[ONNX](https:\u002F\u002Fdrive.google.com\u002Fuc?export=download&id=1Xp3HB51H6Nhl6e555ieJubVutQake5sR)]\n\n* Bi-Real Net 18 with Stem Module, 56.4% top-1 on ImageNet, 43.2ms\u002Fimage on Google Pixel 1 (single thread). The detailed network structure is described in [our paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F1908.05858). [[dabnn](https:\u002F\u002Fdrive.google.com\u002Fuc?export=download&id=1ArsirMdbtJ9lvHSjc1hkQ7dIXDKh-D1t)] [[ONNX](https:\u002F\u002Fdrive.google.com\u002Fuc?export=download&id=1zu48CFptAGZ91IDCBPJSPM0bxDuPm9HS)]\n\n## Implementation Details\n\n* The Implementation of Binary Convolutions: [docs\u002Fbconv.md](docs\u002Fbconv.md)\n\n* Model Conversion: [docs\u002Fonnx2bnn.md](docs\u002Fonnx2bnn.md)\n\nFor more details please read [our ACM MM paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F1908.05858).\n\n## Example project\n\nAndroid app demo: https:\u002F\u002Fgithub.com\u002FJDAI-CV\u002Fdabnn-example\n\n## Related works using dabnn\n\nThe following two papers use dabnn to measure the latency of their binary networks on real devices:\n\n* [IR-Net: Forward and Backward Information Retention for Highly Accurate Binary Neural Networks](https:\u002F\u002Farxiv.org\u002Fabs\u002F1909.10788)\n\n* [Balanced Binary Neural Networks with Gated Residual](https:\u002F\u002Farxiv.org\u002Fabs\u002F1909.12117)\n\n## License and Citation\n\n[BSD 3 Clause](LICENSE)\n\nPlease cite daBNN in your publications if it helps your research:\n\n```\n@misc{zhang2019dabnn,\n  Author = {Jianhao Zhang and Yingwei Pan and Ting Yao and He Zhao and Tao Mei},\n  Title = {daBNN: A Super Fast Inference Framework for Binary Neural Networks on ARM devices},\n  Year = {2019},\n  Eprint = {arXiv:1908.05858},\n}\n```\n","# dabnn\n\n[![构建状态](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FJDAI-CV_dabnn_readme_7e222974ae30.png)](https:\u002F\u002Fdev.azure.com\u002Fdaquexian\u002Fdabnn\u002F_build\u002Flatest?definitionId=2&branchName=master)\n[![许可证](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-BSD--3--Clause-blue.svg)](LICENSE) \n[![jcenter](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdynamic\u002Fjson.svg?label=jcenter&query=name&url=https%3A%2F%2Fapi.bintray.com%2Fpackages%2Fdaquexian566%2Fmaven%2Fdabnn%2Fversions%2F_latest)](https:\u002F\u002Fbintray.com\u002Fdaquexian566\u002Fmaven\u002Fdabnn\u002F_latestVersion)\n[![Gitter聊天](https:\u002F\u002Fimg.shields.io\u002Fgitter\u002Froom\u002Fdabnn\u002Fdabnn.svg)](https:\u002F\u002Fgitter.im\u002Fdabnn\u002Fdabnn)\n[![欢迎提交PR](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen.svg)](https:\u002F\u002Fgithub.com\u002FJDAI-CV\u002Fdabnn\u002Fpulls)\n\n*在移动端享受二值神经网络的便利！*\n\nGitter: [dabnn\u002Fdabnn](https:\u002F\u002Fgitter.im\u002Fdabnn\u002Fdabnn), QQ群（中文）：1021964010，答案：nndab\n\n[[英文](README.md)] [[中文](README_CN.md)]\n\n我们的ACM MM论文：https:\u002F\u002Farxiv.org\u002Fabs\u002F1908.05858\n\n## 简介\n\n二值神经网络（BNN）在边缘设备上具有巨大潜力，因为它们用高效的位运算替代了浮点运算。然而，为了充分发挥位运算的效率，需要对卷积层及其他层进行重新实现。\n\n据我们所知，dabnn是首个针对移动平台的高度优化的二值神经网络推理框架。我们使用ARM汇编实现了二值卷积。在Google Pixel 1上，我们的dabnn在单个二值卷积上的速度比[BMXNet](https:\u002F\u002Fgithub.com\u002Fhpi-xnor\u002FBMXNet)（据我们所知，除dabnn外唯一开源的BNN推理框架）快**800%~2400%**，而在二值化ResNet-18上的速度则快约**700%**。\n\n![比较](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FJDAI-CV_dabnn_readme_ec940d667fe1.png)\n\n## 构建\n\n我们提供了预构建的onnx2bnn和dabnn Android软件包。然而，如果您希望在非Android的ARM设备上部署BNN，则需要自行构建。\n\n我们使用CMake构建系统，与大多数C++项目相同。详细说明请参阅[docs\u002Fbuild.md](docs\u002Fbuild.md)。\n\n## 转换ONNX模型\n\n我们提供了一个名为onnx2bnn的转换工具，用于将ONNX模型转换为dabnn模型。我们在[GitHub Releases](https:\u002F\u002Fgithub.com\u002FJDAI-CV\u002Fdabnn\u002Freleases)中为所有平台提供了onnx2bnn的预构建二进制文件。对于Linux用户，onnx2bnn的预构建二进制文件采用[AppImage](https:\u002F\u002Fappimage.org)格式，详情请参阅https:\u002F\u002Fappimage.org。\n\n注意：二值卷积是一个自定义算子，因此ONNX模型是否与dabnn兼容，很大程度上取决于训练代码中二值卷积的实现方式。**请仔细阅读关于模型转换的[文档](\u002Fdocs\u002Fmodel_conversion.md)。**\n\n转换完成后，生成的dabnn模型可以部署到ARM设备上（例如手机和嵌入式设备）。对于Android开发者，我们提供了Android AAR包，并已发布到[jcenter](https:\u002F\u002Fbintray.com\u002Fdaquexian566\u002Fmaven\u002Fdabnn\u002F_latestVersion)，使用方法请参阅[示例项目](https:\u002F\u002Fgithub.com\u002FJDAI-CV\u002Fdabnn-example)。\n\n## 预训练模型\n\n我们基于[Bi-Real Net](https:\u002F\u002Farxiv.org\u002Fabs\u002F1808.00278)在ImageNet上发布了两个预训练的二值神经网络模型。未来还将发布更多预训练模型。\n\n* Bi-Real Net 18，ImageNet上top-1准确率为56.4%，在Google Pixel 1上每张图片耗时61.3ms（单线程）。[[dabnn](https:\u002F\u002Fdrive.google.com\u002Fuc?export=download&id=1Oau5CtFR9nWXmlBBU47Jg5ypMiIEMtvo)] [[ONNX](https:\u002F\u002Fdrive.google.com\u002Fuc?export=download&id=1Xp3HB51H6Nhl6e555ieJubVutQake5sR)]\n\n* 带Stem模块的Bi-Real Net 18，ImageNet上top-1准确率为56.4%，在Google Pixel 1上每张图片耗时43.2ms（单线程）。详细的网络结构在[我们的论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F1908.05858)中有描述。[[dabnn](https:\u002F\u002Fdrive.google.com\u002Fuc?export=download&id=1ArsirMdbtJ9lvHSjc1hkQ7dIXDKh-D1t)] [[ONNX](https:\u002F\u002Fdrive.google.com\u002Fuc?export=download&id=1zu48CFptAGZ91IDCBPJSPM0bxDuPm9HS)]\n\n## 实现细节\n\n* 二值卷积的实现：[docs\u002Fbconv.md](docs\u002Fbconv.md)\n\n* 模型转换：[docs\u002Fonnx2bnn.md](docs\u002Fonnx2bnn.md)\n\n更多细节请参阅[我们的ACM MM论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F1908.05858)。\n\n## 示例项目\n\nAndroid应用演示：https:\u002F\u002Fgithub.com\u002FJDAI-CV\u002Fdabnn-example\n\n## 使用dabnn的相关工作\n\n以下两篇论文使用dabnn在真实设备上测量了其二值网络的延迟：\n\n* [IR-Net：用于高精度二值神经网络的前向与后向信息保留](https:\u002F\u002Farxiv.org\u002Fabs\u002F1909.10788)\n\n* [带有门控残差的平衡二值神经网络](https:\u002F\u002Farxiv.org\u002Fabs\u002F1909.12117)\n\n## 许可证与引用\n\n[BSD 3条款](LICENSE)\n\n如果dabnn对您的研究有所帮助，请在您的出版物中引用它：\n\n```\n@misc{zhang2019dabnn,\n  Author = {Jianhao Zhang and Yingwei Pan and Ting Yao and He Zhao and Tao Mei},\n  Title = {daBNN：一种在ARM设备上超快速的二值神经网络推理框架},\n  Year = {2019},\n  Eprint = {arXiv:1908.05858},\n}\n```","# dabnn 快速上手指南\n\ndabnn 是一个专为 ARM 设备（如安卓手机、嵌入式开发板）高度优化的二值神经网络（BNN）推理框架。它通过 ARM 汇编实现二值卷积，相比传统浮点运算大幅提升推理速度。\n\n## 环境准备\n\n### 系统要求\n- **目标运行平台**：ARM 架构设备（Android 手机、Linux ARM 开发板等）。\n- **构建平台**：Linux, macOS 或 Windows（需安装 CMake 和 C++ 编译器）。\n- **模型来源**：需拥有训练好的 ONNX 格式二值神经网络模型。\n\n### 前置依赖\n- **CMake**：3.10 及以上版本。\n- **C++ 编译器**：支持 C++14 标准（如 GCC, Clang, MSVC）。\n- **Python**：用于模型转换工具 `onnx2bnn`（通常预编译包无需额外配置，若自行构建需确保环境）。\n- **Android 开发**（仅针对安卓应用）：Android Studio, Gradle。\n\n## 安装步骤\n\n### 方案一：直接使用预编译包（推荐）\n\n#### 1. 获取模型转换工具 (onnx2bnn)\n访问 [GitHub Releases](https:\u002F\u002Fgithub.com\u002FJDAI-CV\u002Fdabnn\u002Freleases) 下载对应平台的 `onnx2bnn` 预编译二进制文件。\n- **Linux 用户**：下载 AppImage 格式文件，赋予执行权限即可运行：\n  ```bash\n  chmod +x onnx2bnn-*.AppImage\n  ```\n\n#### 2. 集成到 Android 项目\n在项目的 `build.gradle` 文件中添加 jcenter 依赖（注意：jcenter 已停止更新，若无法下载建议参考下方“自行构建”或直接引用 AAR）：\n```groovy\ndependencies {\n    implementation 'com.daquexian:dabnn:\u003Clatest_version>'\n}\n```\n*注：若 jcenter 不可用，可前往发布页下载最新的 `.aar` 文件手动放入 `libs` 目录。*\n\n### 方案二：自行构建（适用于非 Android ARM 设备或定制需求）\n\n若需在非安卓 ARM 设备部署或修改源码，请克隆仓库并编译：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FJDAI-CV\u002Fdabnn.git\ncd dabnn\nmkdir build && cd build\ncmake ..\nmake -j4\n```\n详细构建参数请参考项目内 `docs\u002Fbuild.md`。\n\n## 基本使用\n\n### 第一步：转换模型\ndabnn 不直接支持原始 ONNX 模型，必须使用 `onnx2bnn` 工具将其转换为专用的 `.bnn` 格式。\n\n**注意**：二值卷积是自定义算子，ONNX 模型必须包含特定的二值卷积实现才能成功转换。请务必先阅读 [模型转换文档](\u002Fdocs\u002Fmodel_conversion.md) 确认您的训练代码生成的 ONNX 是否兼容。\n\n执行转换命令：\n```bash\n.\u002Fonnx2bnn input_model.onnx output_model.bnn\n```\n\n### 第二步：加载与推理\n\n#### Android 端示例\n在 Android 项目中，通过 Java\u002FKotlin 调用 dabnn API 加载转换后的模型并进行推理。参考官方示例项目 [dabnn-example](https:\u002F\u002Fgithub.com\u002FJDAI-CV\u002Fdabnn-example) 的核心逻辑如下：\n\n```java\n\u002F\u002F 初始化网络\nNet net = new Net(context, \"output_model.bnn\");\n\n\u002F\u002F 准备输入数据 (Bitmap 或 byte 数组)\nBitmap inputBitmap = ...; \nfloat[] inputData = preprocess(inputBitmap);\n\n\u002F\u002F 执行推理\nfloat[] outputData = net.forward(inputData);\n\n\u002F\u002F 处理结果\nprocessResult(outputData);\n```\n\n#### C++ 端示例 (通用 ARM Linux)\n若在嵌入式 Linux 上使用 C++ 调用：\n\n```cpp\n#include \"net.h\"\n\n\u002F\u002F 加载模型\ndabnn::Net net(\"output_model.bnn\");\n\n\u002F\u002F 准备输入数据\nstd::vector\u003Cfloat> input_data = ...; \n\n\u002F\u002F 执行推理\nstd::vector\u003Cfloat> output_data = net.forward(input_data);\n```\n\n### 预训练模型测试\n您可以下载官方提供的基于 ImageNet 训练的 Bi-Real Net 模型进行快速测试：\n- **Bi-Real Net 18**: [下载 .bnn](https:\u002F\u002Fdrive.google.com\u002Fuc?export=download&id=1Oau5CtFR9nWXmlBBU47Jg5ypMiIEMtvo) | [下载 .onnx](https:\u002F\u002Fdrive.google.com\u002Fuc?export=download&id=1Xp3HB51H6Nhl6e555ieJubVutQake5sR)\n- **Bi-Real Net 18 (Stem Module)**: [下载 .bnn](https:\u002F\u002Fdrive.google.com\u002Fuc?export=download&id=1ArsirMdbtJ9lvHSjc1hkQ7dIXDKh-D1t) | [下载 .onnx](https:\u002F\u002Fdrive.google.com\u002Fuc?export=download&id=1zu48CFptAGZ91IDCBPJSPM0bxDuPm9HS)\n\n将下载的 `.bnn` 文件部署到设备即可体验毫秒级推理速度。","某初创团队正在开发一款面向偏远地区的离线植物病害识别 App，需在低端安卓手机上实现实时摄像头检测。\n\n### 没有 dabnn 时\n- 传统浮点模型在老旧设备上推理延迟高达 300ms，导致摄像头画面严重卡顿，用户体验极差。\n- 高计算负载使手机迅速发热降频，电池电量在半小时内耗尽，无法满足田间长时间作业需求。\n- 为勉强运行不得不大幅压缩模型精度，导致病害识别准确率跌破 70%，失去实用价值。\n- 尝试其他二值化框架（如 BMXNet）加速效果有限，且缺乏针对 ARM 架构的深度汇编优化。\n\n### 使用 dabnn 后\n- 借助 dabnn 的 ARM 汇编级二进制卷积优化，单帧推理速度提升至 40ms 以内，实现流畅的实时视频流检测。\n- 位运算替代浮点运算大幅降低功耗，设备连续工作两小时仅消耗少量电量且无明显发热。\n- 在保持 Bi-Real Net 架构 56.4% 顶一准确率的同时，成功在 Google Pixel 1 等低端机型上部署。\n- 通过 onnx2bnn 工具无缝转换现有 ONNX 模型，无需重写训练代码即可享受 700%-2400% 的性能飞跃。\n\ndabnn 通过极致的二进制推理优化，让高精度 AI 模型真正在资源受限的移动边缘设备上落地生根。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FJDAI-CV_dabnn_ec940d66.png","JDAI-CV","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FJDAI-CV_d8ba10bc.png","JDAI Computer Vision",null,"http:\u002F\u002Fair.jd.com","https:\u002F\u002Fgithub.com\u002FJDAI-CV",[79,83,87,91,95,99],{"name":80,"color":81,"percentage":82},"C++","#f34b7d",91,{"name":84,"color":85,"percentage":86},"C","#555555",4.8,{"name":88,"color":89,"percentage":90},"CMake","#DA3434",2.4,{"name":92,"color":93,"percentage":94},"Shell","#89e051",1.2,{"name":96,"color":97,"percentage":98},"Python","#3572A5",0.5,{"name":100,"color":101,"percentage":102},"Java","#b07219",0.1,778,102,"2026-02-10T01:33:57","NOASSERTION",4,"Android, Linux","不需要 GPU，专为 ARM CPU 优化（使用 ARM 汇编实现二元卷积）","未说明",{"notes":112,"python":113,"dependencies":114},"该工具主要针对移动端和嵌入式 ARM 设备。虽然提供了 Linux 和 Android 的构建支持，但核心加速依赖于 ARM 架构。模型转换需使用提供的 onnx2bnn 工具（Linux 下为 AppImage 格式），且训练阶段的二元卷积实现必须与 dabnn 兼容才能成功转换。","未说明 (模型转换工具 onnx2bnn 提供预编译二进制文件，无需特定 Python 环境)",[88,115],"ONNX (用于模型输入)",[15,14],"2026-03-27T02:49:30.150509","2026-04-08T01:09:06.198135",[120,125,130,135,140,145,150],{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},23294,"替换示例项目中的 .dab 模型文件后运行出错怎么办？","如果在 Android 示例项目中替换了原始的 `.dab` 模型文件后导致崩溃或运行错误，这通常是由于模型输入维度不匹配或文件加载逻辑未适配新模型导致的。该问题已在后续的修复版本（PR #51）中得到解决，请拉取最新代码或应用相关补丁。","https:\u002F\u002Fgithub.com\u002FJDAI-CV\u002Fdabnn\u002Fissues\u002F50",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},23288,"在树莓派等 ARM 设备上编译失败怎么办？","默认使用 GCC 编译器可能会导致问题，建议改用 Clang 编译器。安装 Clang 后，使用以下命令进行配置和编译：\n```shell\nmkdir build_dabnn\ncd build_dabnn\nenv CC=clang CXX=clang++ cmake ..\n```\n此外，如果遇到断言错误，可能需要将代码中的 `assert` 改为 `iszero`。","https:\u002F\u002Fgithub.com\u002FJDAI-CV\u002Fdabnn\u002Fissues\u002F42",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},23289,"编译 onnx2bnn 时出现 protoc 版本不兼容或头文件缺失错误如何解决？","该错误通常是因为系统中安装的 `protoc` (Protocol Buffer 编译器) 版本过旧，或者其安装路径配置不正确，导致生成的 `.pb.h` 文件与当前的 Protobuf 头文件不兼容。请检查并升级 `protoc` 到最新版本，确保其路径正确，然后重新生成相关文件或清理构建目录后重新编译。","https:\u002F\u002Fgithub.com\u002FJDAI-CV\u002Fdabnn\u002Fissues\u002F78",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},23290,"低版本 CMake 编译时提示 protobuf::libprotobuf 无效怎么办？","`protobuf::libprotobuf` 目标仅在 CMake 3.9 及以上版本中支持。如果您使用的是较低版本的 CMake，建议在 `CMakeLists.txt` 中将 `protobuf::libprotobuf` 修改为 `${Protobuf_LIBRARIES}` 变量来引用库文件，以解决兼容性问题。","https:\u002F\u002Fgithub.com\u002FJDAI-CV\u002Fdabnn\u002Fissues\u002F59",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},23291,"DabNN 是否支持通道数不是 64 或 128 倍数的网络模型？","早期版本仅支持通道数为 64 或 128 倍数的情况（受限于 ARM SIMD 寄存器长度）。该问题已在后续更新（如 PR #49 和 #51）中修复。现在的版本通过权重填充（Padding）和仿射层结果校正等技术，已经支持非 128 倍数的通道数，可以部署更广泛的网络结构。","https:\u002F\u002Fgithub.com\u002FJDAI-CV\u002Fdabnn\u002Fissues\u002F28",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},23292,"DabNN 是否支持目标检测任务（如 Faster R-CNN）？","目前 DabNN 主要专注于图像分类任务，暂时不支持目标检测任务（如 Faster R-CNN）。这是因为相关的二值神经网络检测论文和研究相对较少，尚未在框架中实现相关算子和流程。","https:\u002F\u002Fgithub.com\u002FJDAI-CV\u002Fdabnn\u002Fissues\u002F65",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},23293,"DabNN 与 BitStream 框架相比性能如何？","根据开发团队在 ACM MM 会议上发表的论文数据，DabNN 在 CPU 上的推理效率表现优异。具体的对比数据和性能图表可以参考官方论文（即将发布在 arXiv 上），文中展示了 DabNN 与其他高效二值神经网络框架的对比结果。","https:\u002F\u002Fgithub.com\u002FJDAI-CV\u002Fdabnn\u002Fissues\u002F44",[156,161,166,171,176,181,186,191,196,201,205,210,215,220,225,230],{"id":157,"version":158,"summary_zh":159,"released_at":160},136971,"v0.2.6","## 变更：\n\n* f61355c7bf2a0d7502e486714b6e75bba85b1d72 合并 Pull Request #68，来自 JDAI-CV\u002Fignore_batch_size\n* 48989199ffe25edf28be5ccc62264cb2ca00b8db 将 'master' 分支合并到 ignore_batch_size\n* 7460af8369e140f821e761d52a9b50be1f4d6bef 通过自定义 ONNX 优化器消除 Dropout\n* c766981267e9a1537e46f8d8dd5d2fb5732eafea 增强对 reshape 的支持\n* 9e375c9bcd54183d03c06ab5b37d3287e3591d57 修复 Linux 下的构建错误\n* c7c41bed9e6c5e1d544fc14eaf2ee4ef396800fb 支持在 gemm 之前进行 reshape\n* 2d26ee04901a47726e010c3c59787816d8fbe658 在 onnx2daq 中忽略 batch size 并改进错误信息\n* c349f009eb9a9d205b70fb3bf16534fa82e43333 在英文 README 中添加 QQ 群\n\n此变更列表由 [自动生](https:\u002F\u002Fdev.azure.com\u002Fdaquexian\u002Fdabnn\u002F_build\u002Fresults?buildId=1163&view=logs)成。","2019-11-10T16:58:07",{"id":162,"version":163,"summary_zh":164,"released_at":165},136972,"v0.2.5","## 更改：\n\n* 7b07333d286af49075f05be26a9d07cb61d596ef 合并拉取请求 #64，来自 JDAI-CV\u002Fgemm\n* dd4c7f862f8726174d39d1a8ae85ff687f83258e 在最后一层支持 gemm\n* d1c6ad5d442194db71d111855c58a8b16d9f2aad 合并拉取请求 #63，来自 JDAI-CV\u002Fquick_benchmark\n* 056943bfe5ee25879fbadf654f42d17ceca1861d 将 'master' 分支合并到 quick_benchmark\n* fbbe650e1dd450b113fe7234c0461dff69671fd8 添加快速基准测试\n* ddd7280b428834159e601b43ede4f0cfc60c3297 修复错误的新运算符\n* 161c04071eed66eb3c2be10a0ffc9bc11c7d7c03 移除从 dnnlibrary 错误复制的注释和代码\n* 9717852186dd0f7b6b1ea19ce37034d4a255dc80 忽略 .clangd\n* d8b1b5bb7756b84d3c2ef149c7954101525bd409 合并拉取请求 #61，来自 monkeyking\u002Fpatch-1\n* 9caebcbb761c379164bdd894ad432e9003709f88 修复 bash git --recursive\n\u003Cdetails>\u003Csummary>\u003Cb>查看更多\u003C\u002Fb>\u003C\u002Fsummary>\n\n* b3dd91ccda211d5be133e2f10ca69999fc17884e 合并拉取请求 #60，来自 JDAI-CV\u002Flow_cmake_protobuf\n* ae9219ab4f6e7f130fc091be5d9792a0aea09673 在 cmake \u003C 3.9 中使用变量代替目标\n* cf66a2ca8013596594ff57bf13fabf24801b6288 合并拉取请求 #58，来自 JDAI-CV\u002Fupdate_readme\n* 965ae7a232a77140968ef43d19ee44738bf3c289 更新 model_conversion.md\n* 48e0e9c477993b8cc9e3e6b988172fafb812971d 更新 model_conversion.md\n* 4c7bc377e077b537617b979070efc3688b6cf770 将模型转换从 wiki 移至文档，并将基准测试和比较移至单独的文档\n* f06f1bcd8409910f5559bbe36869d18094e7cfe2 合并拉取请求 #57，来自 JDAI-CV\u002Fprelu\n* e801568031fd263688e118cd035e2221cd53b324 添加对 prelu 的支持\n* 56491a2bb47efa7d9f1c87bfaa370568eaa1c59a 支持 prelu\n\n此更改列表由 [自动生成](https:\u002F\u002Fdev.azure.com\u002Fdaquexian\u002Fdabnn\u002F_build\u002Fresults?buildId=1117&view=logs)。\u003C\u002Fdetails>","2019-10-23T13:05:16",{"id":167,"version":168,"summary_zh":169,"released_at":170},136973,"v0.2.4","## 变更：\n\n* 55d75349deddace54c99f78c94285596289ce46b 修复非 ARM 设备上 ReLU 实现错误\n* 8a982872fe89b1874da631d0aeb5bad1ab185659 合并 JDAI-CV\u002Ffix_benchmark_cxx 分支的 #56 拉取请求\n* ffd2b38facf83fe7aaca66f491d000c9755fb4c8 将 'master' 分支合并到 fix_benchmark_cxx\n* b4165a606afdf8ccdb7555e02cde0164f50dc9fc 仅在 Android 上为 Google Benchmark 指定 libcxx\n* df3d7c18925ab54f1a5d344c5f643cb48fd4fc1f 合并 JDAI-CV\u002Freadme 分支的 #55 拉取请求\n* f1db5182e75c5ac775da503236d565c6c8b03a87 添加 *\n* fde509a9a830d890eab6c7b6c73d48ce942cf56b 更新 README，介绍使用 dabnn 的相关工作\n* cd3092ee7dea6498459ceff39699dc73dd482b0e 合并 JDAI-CV\u002Ffix_onnx2bnn_bn 分支的 #54 拉取请求\n* 2d29e6c98d66665bb1f6e3fe109b6f8d92ea9b78 修复偏置索引错误\n* 3fe4210f5ed3e8a7a5b3a8d889f63f30f11ac3d9 修复错误的索引\n\u003Cdetails>\u003Csummary>\u003Cb>查看更多\u003C\u002Fb>\u003C\u002Fsummary>\n\n* ea9909ea4677a29c04b6e2ab9d394b7b8800ff4d 拒绝卷积后不接批归一化的情况，并将卷积偏置融合到批归一化中\n\n此变更列表由 [自动生成](https:\u002F\u002Fdev.azure.com\u002Fdaquexian\u002Fdabnn\u002F_build\u002Fresults?buildId=1066&view=logs)。\u003C\u002Fdetails>","2019-10-11T03:16:18",{"id":172,"version":173,"summary_zh":174,"released_at":175},136974,"v0.2.3","## 更改：\n\n* bcb72c3b6bc4ed38640bbe84153a4539024a5e4d 修复 Net.java 中错误的 .so 文件名\n\n此更改列表由[自动生成](https:\u002F\u002Fdev.azure.com\u002Fdaquexian\u002Fdabnn\u002F_build\u002Fresults?buildId=955&view=logs)。","2019-08-23T03:09:47",{"id":177,"version":178,"summary_zh":179,"released_at":180},136975,"v0.2.2","## 更改：\n\n* 0620b5b688595ebcd950d82b57f331d5eb3fa440 合并 JDAI-CV\u002Fdevelop 分支的 #52 拉取请求\n* 22fe7c4baffe2bce753137bcd5d33bb4853b78b5 将 weight->c==1 修改为 input_mat->elem_c==64\n* 28ec3a574806edadb3ae0c203764f2c21fb17a71 修复 binconv 方法中的一些遗漏情况\n\n此更改列表由 [自动生成](https:\u002F\u002Fdev.azure.com\u002Fdaquexian\u002Fdabnn\u002F_build\u002Fresults?buildId=950&view=logs)。","2019-08-23T00:27:23",{"id":182,"version":183,"summary_zh":184,"released_at":185},136976,"v0.2.1","## 变更：\n\n* c472484f64c846cba242c19ef584944511554fd5 合并 JDAI-CV\u002Ffix_non_128_bug 分支的 #51 拉取请求\n* a71711e9cd395df24791be36ecb280c8e76db99a 在设置 optimize 字段后，移动一些缺失的 net->read 调用\n* fcddeb4aab33013fdf78e3efc3453866f19b33f2 修复某些情况下使用错误的方法\n* 3d589803270ec167956db9b5bdd8585549af517f 在设置 optimize 字段后移动 net->read 调用\n* d12dd8b1deab03526cc44abd3f229a6a40db43fe 还原 “由于权重需 128 字节对齐，将 bconv_naive 替换为 bgemm_naive 作为回退方案” 的更改\n* 7d59669477aaa2806ab77ac12859f9f08fcb7938 还原 “在未优化时使用 bgemm_naive 代替 bconv_naive” 的更改\n* 2cac1916adf5769c5efc7c704b8dbcf60920ea05 还原 “还原 ‘由于权重需 128 字节对齐，将 bconv_naive 替换为 bgemm_naive 作为回退方案’ 的更改”\n* 337f55f37f5185a4ef51d86ffe12ea6ae4ab9f25 还原 “由于权重需 128 字节对齐，将 bconv_naive 替换为 bgemm_naive 作为回退方案” 的更改\n* cec34994a241c350ff93223e3dd5c9e535798583 在未优化时使用 bgemm_naive 代替 bconv_naive\n* 418c8d728b05d0148fdc5dd2ba148903fd132fa8 将 eigen 公开头文件\n\u003Cdetails>\u003Csummary>\u003Cb>查看更多\u003C\u002Fb>\u003C\u002Fsummary>\n\n* 9395a0193928c153c5d34ef6f82c843b7d501be7 添加 run_net_x86 配置\n* 41f6fca8fe7da4af9f4128bd4824b49d266a1d9a 将对齐检查延迟到 point() 中进行——这是唯一使用 hstep 的地方\n* be606fa6f87db0a4e9166b79f5d9cb86804525ba 由于权重需 128 字节对齐，将 bconv_naive 替换为 bgemm_naive 作为回退方案\n* 7af8be7ca8db0290b5d42c74dd31de7f0ddc011d 仅当 data_num 不为 0 时才检查 c>0\n* bcfab349f7f85081bceadd63895862c2a39852bd 将 eigen 移至 third_party 目录，并将其作为系统头文件包含\n* a22bb11ebcf49d43a7c9d015a5e71ec404e8742c 更新 v0.2.0 版本的文档\n\n此变更列表由 [自动生成](https:\u002F\u002Fdev.azure.com\u002Fdaquexian\u002Fdabnn\u002F_build\u002Fresults?buildId=945&view=logs)。*\u003C\u002Fdetails>","2019-08-22T12:06:30",{"id":187,"version":188,"summary_zh":189,"released_at":190},136977,"v0.2.0","## 变更：\n\n* 49bc3e96a35df3629c9b6f8b9087e3345194aa90 合并 JDAI-CV\u002Fsupport_arbitrarily_channels 分支的第 49 号拉取请求\n* ce6e84374928307c85179519b863b9fb15031684 在 armv7 架构中，当 weight_mat->c == 1 时禁用 bgemm\n* 934d21570903829482df8ee41c65a9b02c78b41d 移除注释掉的代码\n* 1dd7e80fab7bb5e3130ff060a43ec1228d64da31 将 master 分支合并到 support_arbitrarily_channels 分支\n* b22d0c7290a1fd4f5efa9052a2a50282de6555f0 添加字段 \"align_hwc_to_128\"，若 C==64 则不进行对齐\n* 965dc14b973ee9ad25f11ca6f5723b71077aded2 将 flatbuffers 移至子模块\n* 88776542e734f1683fd66d3f2b572c14547b6a21 修复部分 Mat 构造函数调用问题\n* 56f39d38dfced83e305acabd88f83867e9d7cea2 撤销“尝试更新”\n* 356e5167ad07cbed03c2c8152417607e358e01b7 修复 align_to 中缺失的括号\n* 9879abf345eee7e51ee038f31dd24fe55a91be2a 更新基准 bconv，仅当 weight_mat->h * weight_mat->w * weight_mat->c % 2 == 0 时，gemm 才能兼容\n\u003Cdetails>\u003Csummary>\u003Cb>查看更多\u003C\u002Fb>\u003C\u002Fsummary>\n\n* c08695aa4fb5bbf3d399544a53ad27cf38ae66ee 合并 JDAI-CV\u002Ffix_windows_onnx2bnn_ci 分支的第 48 号拉取请求\n* 858318e06d4d0cc0626120917275eac3b107b28f 暂存更改\n* f8ecb67071afde47c50e2ef50df13b3d38cbc091 暂存更改\n* e065c8cf78da57202c816b563d6b8b1187d0e47e 尝试更新\n* f01976aa3683a34e5a605f0b33f61aa12aea3b66 复制缺失的 onnx2bnn.exe\n* e4d3cb637a89d185728d407c8537f255a80e3430 当 c%128 != 0 时启用长度感知功能\n* 75e6992098b067dbbc2e68f7d575577a6a08548b 修复 col_mat 大小错误\n* 0cbd770502e637b17039e955a4e1e5cfd1a7e889 撤销“撤销更新后的 bitpack”\n* ddf6a6fc22de1142c79820dedc66461efc402780 fused_binarize_im2col 现已可用\n* 691c67c471afdc1d4d14b79a082acdce150509bb 修复因移除 binarize 层而导致的错误\n* fdfe987c1e63b59aaac4e549987ce95ad67eb549 格式化代码\n* 976a71c34295022282e67d422ddff79de2c166ec 撤销更新后的 bitpack\n* 6c07f55485eb551d5b1dffdd4cd527f753abf1f7 更新 net_test.cpp 中的变量名\n* 9086ffd69a28d4f79c5e9deba43f1e6eed613125 放弃对 binarize 层的支持\n* 4192ec4300ccddc17598c2e795ca4bcc4de83104 修复 converter bitpack 中的错误索引\n* 1a9da9d70deea07e892f66ddaaba8e4c8bb0e942 不再添加 binarize 层\n* 2235cfd3681c3a3c3b70bae487228b03906d1685 其他杂项更改\n* 26c523a983bf0869bfc1b7791c6499bcadcc9999 更新 data_num\n* 74dc074f699a5fa07edece77f7ea9dd77325cab7 改进断言，移除未使用的函数\n* e1455b06e3048f772d18d8659b0f17b14a8ea60d 修复未定义的 binarized_mat\n* 2275c2b06e743fd34bf272b5b97bc6d967d744d9 将模型版本升级至 2，移除 binarize 层\n* e29fc8e1812f57389589877b23d1b95b1d011e96 添加 fused_binarize_im2col.h\n* 5268538bcef0b852f8d648a4c334f35c881ed276 将数据大小与形状分离，并根据 eff_bits 和 binarized weight 添加 bitpack\n* ef1852ea08181511eb40e3253aa17d6f4aea76a7 将数据大小加入 mat 构造函数\n\n此变更列表由 [自动生成](https:\u002F\u002Fdev.azure.com\u002Fdaquexian\u002Fdabnn\u002F_build\u002Fresults?buildId=930&view=logs)。\u003C\u002Fdetails>","2019-08-21T08:03:53",{"id":192,"version":193,"summary_zh":194,"released_at":195},136978,"v0.1.8","\r\n\r\n## 更改：\n\n* bad1c0ab2daa5b6f4f6fa4fd7087b1a79be9bec7 合并拉取请求 #47，来自 JDAI-CV\u002Fupdate_onnx2bnn\n* c3b6751bfea414ead71021f8dcd390b8bf59100d Windows CI 兼容性\n* c40a9a942fa108285e9bc20b97df9097118573a5 移除 pybind11 子模块\n* d7df0a2fde527341dc42f12eeaff9346c015ad08 下载 ONNX 模型并将其转换为 DAB，而不是在 CI 中下载 DAB\n* e29ebebebc48b92efb1ef5ff4b07f27a22325e67 移除与 Python 相关的 CI 代码\n* 8d00fa859463bba7910376e8ab052c8b240b7231 移除 Python 封装，因为我们已经有预编译的二进制文件\n* 3ee4c792bcb9dae6903f9881252729ee231036a4 支持自定义二值卷积列表\n* 2ff86f28d14016c56c17e62cdd47abe354b3938d 打印找到多少个二值卷积以及它们是什么\n* d96537c2439f1072fce8e7f6197c662a194d0d67 更新 onnx2bnn 的帮助信息，恢复原始的 CLI 参数\n* 43376388da898c058ce1ca919ec02d33aaf1dd01 合并拉取请求 #46，来自 JDAI-CV\u002Fupdate_readme\n\u003Cdetails>\u003Csummary>\u003Cb>查看更多\u003C\u002Fb>\u003C\u002Fsummary>\n\n* 360c434218ce56cdaab5e0f1e5847de0e11582b4 进一步更新 README，以适应我们的 arXiv 预印本\n* da1b28ce9d3ace017cd298887dea921f3e02272 合并拉取请求 #45，来自 JDAI-CV\u002Fupdate_readme\n* 29ed0bf43fad87a433d9925ce39cae501ce8832b 更新 README，以适应我们的 arXiv 预印本\n* d6dd4062ca170d0066da20152149c81625d397b0 合并拉取请求 #43，来自 JDAI-CV\u002Fbnn_assert [ #42 ]\n* c470b49887014f59afbac368692da539f35a7c41 用 BNN_ASSERT 替换 assert（解决 #42）\n* 4f87b0246eba54f491e3e524080ac8c1e5fb0838 合并拉取请求 #41，来自 JDAI-CV\u002Fremove_invalid_test\n* 7ca9b1aa22a50444887455622c2bfd3bc1420210 移除无效测试\n* 3e415c9109c24e9cfdc6616e6b30fcaf852736b5 更新 onnx2bnn.md 中的行号\n* fd43ea364cfd19ad2b25bf9872bb63daccdf6629 合并拉取请求 #39，来自 i-amgeek\u002Fpatch-1\n* ac7c399af24d100423efd614dcd6e930ae649d14 更新链接路径\n* b35d345258e30bde0d5034e250a2de63a0785b50 合并拉取请求 #38，来自 JDAI-CV\u002Fupdate_gtest_cmake\n* ecf04a300f490d0f40b215dfa1b78871789dc6a3 将分支 'master' 合并到 update_gtest_cmake\n* 02c694f082d8650676657f29528e8f1368a4399a 更新 gtest.cmake\n* c12ff5104d3937d3e5b5215077ebd79154d6d009 合并拉取请求 #37，来自 JDAI-CV\u002Fupdate_onnx2bnn\n* 0d5bd67d3856f497a9206655df13c79c7fb77d41 更新 onnx2bnn\n* cb48a41bbe78415c860c0669bdd89ca3012b3379 更新 README\n* cdd511425b055eb35d6f5606c25dd434c3e4be86 更新 README\n* 1d4b4e3577ad65963a466ed0c5cbf8fcfa0c99ef 合并拉取请求 #36，来自 JDAI-CV\u002Fupdate_readme\n* 6916de52f199d9c5587622967a5e7182560dad75 在 README 中添加 ONNX 模型，并更新基准测试\n* d2344325f336810f1bda59379e8bfb8125f87135 更新 README\n* 7baa989ad789611a6e9709d408b8edd1e664b2b4 更新 build.md\n* 198d622f9cf57eaea0d4f186b86df31c913ee65e 移除未使用的函数\n* 5665e16d12437306ac01aa60a0032d49fb76f3b7 重新格式化\n* b3b35de8c6ffc43de98cb7c5f193e1de839c23c6 合并拉取请求 #35，来自 JDAI-CV\u002Fpolish\n* ada92f7f7d802983c303870b44883a372953d0a2 精修\n* 99f03218682c56e826a8597a02cdb8381d9fb05d 添加更多文档\n* 0fc0ed9a59311cbe9545693329","2019-08-20T08:09:02",{"id":197,"version":198,"summary_zh":199,"released_at":200},136979,"v0.1.7","## 变更：\n\n* 072cad0cb5e7565aea03d0ce4d4c963f49a8cc32 合并 JDAI-CV\u002Fci_macos 的 #26 拉取请求\n* bbe82e7a7ccfbd2e09da7b6e3d5e3c29bdedbcc0 在 macOS CI 中将 onnx2bnn 重命名为 onnx2bnn-macos\n* c5480b96d59a47d060da940c4a5143e95dae817f 更新\n* 2acfddf6cbef78a973797d7aa28ea683efadca09 添加 macOS CI\n* 609d1aad069e8e45a317b088662bd19617a2753c CI 模板\n* 9e40eda2ad3b2d6bdf0b1c0c90d260b88016ffab 合并 JDAI-CV\u002Ffix_128_s1_internal 的 #27 拉取请求\n* 281479b2721cfaa7f53e00a59f6fd35cce8d6e5d 修复当 tw % 2 == 1 时调用 128_internal_s1 的问题\n* 7f710f0c1806f83f44e2c18c2ba665a0db1ee931 获取 nproc 的可移植方法\n* ac92fc32db974644bcce2fd7bdd2720d554c06f5 在 CI YML 中添加触发器\n* 6e214245defafbf9fd879d742c28aa287a7cc6cb 使用 Azure CI 变量检查 Git 标签\n\u003Cdetails>\u003Csummary>\u003Cb>查看更多\u003C\u002Fb>\u003C\u002Fsummary>\n\n* 08660e38907b7424df675a80ce3c4dbc6b21a3ba 在标签 v* 上发布 GitHub 发布版本\n\n此变更列表由 [自动生成](https:\u002F\u002Fdev.azure.com\u002Fdaquexian\u002Fdabnn\u002F_build\u002Fresults?buildId=403&view=logs)。\u003C\u002Fdetails>","2019-05-22T04:55:26",{"id":202,"version":203,"summary_zh":75,"released_at":204},136980,"v0.1.6","2019-05-19T15:57:16",{"id":206,"version":207,"summary_zh":208,"released_at":209},136981,"v0.1.5","## 变更：\n\n* 7fd3e3491f99eff40a8bfe60a1837549949b9b36 升级到 v0.1.5\n* 162e0d7095f77ca1d6ed14de644030ffc1e45a3c 合并 JDAI-CV\u002Fopt_bitpack 的 #22 拉取请求\n* d7f431e0a09f4b0a3acfa04ec894065b0c50d04b 更新 run.cpp 以支持多个 blob\n* b3a5ce562430f18f48b93ccdcd122a416b469bb8 非就地仿射层\n* b40bd89e022a0399e033b8ac64bae6a4dcb9d05b 添加三种 daq_pm 配置\n* cd989083019aa9f8f99c561fbcaf73da45fa1790 添加 Pad 操作（但目前未使用）\n* 711fe5f4adb21fe15b4a0e78a26edbda9a94f458 移除 new_bitpack 选项\n* 2618327e1ff5ac09681af31527f7636f0d3db095 1. 应用新的 bitpack\n* f65fd3eff43372a352a4ce87fa49db7ec28090f6 优化 bitpack\n* 7219c20a36f80dd9a51e4c21f9cdee36fd88e485 添加 pack_128_2\n\u003Cdetails>\u003Csummary>\u003Cb>查看更多\u003C\u002Fb>\u003C\u002Fsummary>\n\n* 5e66ac8efc7fb48135f67dec3a5d570999b0da3a 合并 JDAI-CV\u002Ffix_baseline_bconv 的 #21 拉取请求\n* cd0c7c0d5f55236c96ee5d750601b72212800170 修复基准 bconv 的填充问题\n* c19948047d2b3493979e938a7faf08cc7402f5cd 修复错误的 sed -v 命令\n* 13869ecb5456b433def29a1df57c2ab59d7d7f71 修复 CI 中的 gsed 使用问题\n* d4fd98788ee8f18cb9e2b8c8b06a9bd3deb14adc 修复拼写错误\n* 41739ac28f1cc85376610414cb3e1367d381a1a2 在 CI 中使用 gsed 替代 bsd sed\n\n此变更列表由 [自动生成](https:\u002F\u002Fdev.azure.com\u002Fdaquexian\u002Fdabnn\u002F_build\u002Fresults?buildId=300&view=logs)。*\u003C\u002Fdetails>","2019-05-17T11:48:07",{"id":211,"version":212,"summary_zh":213,"released_at":214},136982,"v0.1.4","\n\n## Changes:\n\n* bba0328f10da1c914ce68f708d03a60759316cc0 Add extract_constant_to_initializer optimizer\n* dbf82f69c0c1dd1fc6c6dc28f48427ec165ec481 Merge pull request #20 from JDAI-CV\u002Frevert-19-converter\n* 6778c3c7d8f9bae33ea0892334131cbbf1dc9c41 Revert \"Add extract constant to initializer optimizer\"\n\nThis list of changes was [auto generated](https:\u002F\u002Fdev.azure.com\u002Fdaquexian\u002Fdabnn\u002F_build\u002Fresults?buildId=265&view=logs).","2019-05-16T14:04:40",{"id":216,"version":217,"summary_zh":218,"released_at":219},136983,"v0.1.3","\n\n## Changes:\n\n* 2aa534259ec72443101d7557f22521c98937e74f Merge pull request #19 from JDAI-CV\u002Fconverter\n* eae8ed2e972383d6083709cb0e0f41e917770204 Add extract constant to initializer optimizer\n* deee38207c7b01492a7460fe80f700c27d70b1fb deploy aar even when not master, since the tag has been vX.Y\n* da78d78f8a9ac51f0cdc614f09a9b87db95cb00f Merge pull request #18 from JDAI-CV\u002Frename_daq_to_dab\n* bf34afc569b4af4ee48da579e5181d421b8abfa6 Rename daq to dab\n* ed5f502d643541a7428bd28c4362b48a4f66bb71 Update comments\n\nThis list of changes was [auto generated](https:\u002F\u002Fdev.azure.com\u002Fdaquexian\u002Fdabnn\u002F_build\u002Fresults?buildId=256&view=logs).","2019-05-16T13:23:39",{"id":221,"version":222,"summary_zh":223,"released_at":224},136984,"v0.1.2","\n\n## Changes:\n\n* 2a70cf7781eb8623b6a7877463cb2a213dd7d808 Generate Android version code from git count in Gradle (build.gradle)\n* 9e9a3bd0e5e0cd6713c01febe06f442130d3ec38 Merge pull request #17 from JDAI-CV\u002Fconverter\n* 3f69ee69c9eaabc14bdb8535420ed54e49a1ab9c Rename extreme soft to aggressive, soft to moderate\n* 0b3e8e560c93fdcdb91c8485ec5e7aa1d24bdc22 Add extremesoft level\n* d55df70257014314f0e19193699e7868ba22e781 Add comments for dabnn optimizer\n* da4e14a71720a29ebe448a05902876e893e7db24 Update dabnn's onnx\n* 53660451a21924cca81c8ab8ffd9cd2fe48c2f33 Remove wrong log\n* 4f3f345689bf1fa088e44819d72af6282f98db78 Update converter since we have recognized binary convs in onnx\n* 20164635a91649d24c927057b0661338d5c50e56 Update onnx to daquexian\u002Fonnx for dabnn optimizers\n* 1cc6e69c1e175c7e990b2c2b0bee32d16fb385a1 onnx2bnn: Update the method to discover binary convs, add '--strict' arg (not test)\n\u003Cdetails>\u003Csummary>\u003Cb>See more\u003C\u002Fb>\u003C\u002Fsummary>\n\n* e1fddc691a5f322d561f7f978a7638800e0a5432 Merge pull request #15 from JDAI-CV\u002Fupdate_build_aar_sh\n* 9734965754d50eb36999a46428d3a7186b969258 Cat build.gradle to check version\n* 0f6af3cdbe6edff509cf74b7551c27385db50a48 Only deploy aar on master and tagged with v*, fix the dryRun arg\n\nThis list of changes was [auto generated](https:\u002F\u002Fdev.azure.com\u002Fdaquexian\u002Fdabnn\u002F_build\u002Fresults?buildId=231&view=logs).\u003C\u002Fdetails>","2019-05-15T16:44:39",{"id":226,"version":227,"summary_zh":228,"released_at":229},136985,"v0.1.1","\n\n## Changes:\n\n* f8481cbb00ea49fbf34b708fccd56a041ccccf23 Merge pull request #14 from JDAI-CV\u002Fv0.1.1\n* c82fde32694b3b235f19210921dba3c15cb125a6 Upgrade to v0.1.1\n* 2b3aa1021344e00b48971136a073d2b0d109e18e Merge pull request #13 from JDAI-CV\u002Ffix\n* 238c1ee5cedf1b04b0121d0f3b4f70fd45d96371 [bugfix] Fix a bug of wrong hstep, and wrong mat constructor calling\n* d4503cd44eb52f2c92075526d98bef5874054b64 Fix wrong arg in gemm benchmark (however it does not affect speed)\n* 92d950fc5076c924c12b6bebfc28edbfd624c473 Merge pull request #11 from JDAI-CV\u002Ffix_cmake_3.5\n* 63f6c9e589497ed77eeb4782b842706a931b2127 set missing Protobuf_*\n* e42ac946bad5a4ff90851d10ad9d9070eb8e3fa0 Add information about jcenter aar package\n* 4f44a326d7c47a0c7ea462f6aa6dd1398eb5f0be Merge pull request #9 from JDAI-CV\u002Ffix_low_cmake\n* 84557caff5265b2781d024f064db890f6e9bcf9c Attempt to use cmake 3.5\n\u003Cdetails>\u003Csummary>\u003Cb>See more\u003C\u002Fb>\u003C\u002Fsummary>\n\n* 781438420c34ef38a22f12613c5fc537c9057fbb Support cmake 3.5, test it in ci\n* 6e9e3227c180409a83100f89ddec47799b24a2bf Merge pull request #6 from JDAI-CV\u002Fpipeline_task_aar\n* 0fd8b5a5f138ae1b077dff58b82d019d21144e5f Prepare for merge\n* 434fbe8927f581b615624c74986def419c0d7002 Fix reversed condition bug\n* 6cb3f12e51288e0e7417ed54173b1fd9470a36d0 Bintray->bintray\n* 98b53c75e661add47eb76c48ea02999fb8779665 Try to fix yml error\n* 5dcfa84084de1437c2ae27541b3bc00f7ad41492 Add task for build & publish aar package\n* ace43396176cace15a7d8bf9de403095b9273c1c Update .gitignore to ignore generated jni .so\n* 0ae953bec566059053b6a96748443b93c117f580 rename dabnn_jni to dabnn-jni, update android module\n* f6aafef761a6424bf6c9a460cc619221e5cf47e9 Add Net Android module\n* 899e148e09a09fe1c859cd478451f714c613af75 Merge pull request #5 from JDAI-CV\u002Fupdate_readme\n* d051deaf6a89865498020907ebe1d373e95a9edd Merge branch 'master' into update_readme\n* dfc2378beeb5c0879d43671efc0558823776e73b Update README\n* 381102f4f9ebbae1e85e399f4e67defa756d8e40 Merge pull request #4 from JDAI-CV\u002Fupdate_readme\n* 5264dd7c848a258affe329a7a5c9e28550b8fb02 Update README for high resolution gitter badge\n* 818f6ab892a1e40af7c8f37e7ec6c87dd18fe2f3 Update info for gitter room\n* 15ba3b4c43b493a2fb0db387e861859adbe8b410 Update README.md - fix wrong grammar\n* c23b2a1bcf40272c52360bfae373f5f1207f4881 Update information about ONNX model\n* 19f5cafa1493e2026bf5f70d49a4e176f62583a6 Add information about BMXNet in README\n* f164b338492714d76df844ba27a714f420d52f4f Polish the benchmark result format and fix the wrong benchmark daq_pm\n* 658b7bfdd8fcf84bd0db69dfa0d08bdcf065945c Polish the benchmark result format\n* 78cf01b896d596faf3fe95edbc1ae4da18f6044b Update README.md\n* c264d2f2662979672f86eca421f4e8994503cad8 Update README.md\n* 37f4ac17c717df09f90df9a807f11fad26bce12a Rearrange README.md\n* 46a277b5532fe45cb55f2998248b107271c36eda Add links about pretrained models\n* 5761d78749a5449a59de6ed852acd6e75fd79f2d Update images and README\n* 37a066327e41a160182fd250560f0290090575a3 Update README for a more decent description of our speed\n* a98f55cc590975bdff020e6d1eb8a69637366a97 Add information about AppImage\n\nThis list of changes was [auto generated](https:\u002F\u002Fdev.azure.com\u002Fdaquexian\u002Fdabnn\u002F_build\u002Fresults?buildId=198&view=logs).\u003C\u002Fdetails>","2019-05-09T10:47:15",{"id":231,"version":232,"summary_zh":233,"released_at":234},136986,"v0.1","\n\n## Changes:\n\n* f5828a02476b1209f45392e0fb27fe5b17f17c97 Merge pull request #3 from JDAI-CV\u002Fupdate_converter\n* c7a425a4be08ec817f4b748d48b284d57cd632fd Remove latest build since there is a no elegant way to do it automatically\n* 891ca6a43be76395ec963272fb10718e428275c1 Create release for the new dummy tag\n* 82e1f3c66d1481e63afb16078c2e25388c5c7b86 Polish log\n* 805bd64be89f1a16fe2f766a142900d38f6695c5 Set flags for formally release\n* 805cc219a3de15f40a7f5da94936eec47807205f action create->edit for latest build\n* 0b1ea8170e1044fc0d059a6bf1bbda0c8c71069c Add release on tag, add title for latest build\n* 36f7e6a564ec2f240de1192ace7a55440d3508f9 Set tag manually for latest build\n* 7e9b16d80889e824cc311c117f0b02db305fef73 Fix github connection name\n* a54b2caab6ac6f48e7b7b9468d169848d7d878cb install protobuf in onnx2bnn ci\n\u003Cdetails>\u003Csummary>\u003Cb>See more\u003C\u002Fb>\u003C\u002Fsummary>\n\n* be4bb507a8b2931bee4431d11a5bac08cc8945bf Update usage message in onnx2bnn\n* 0bf1a3b3577671574f4bbf0b141cb3091e212b2d Add appimage build script\n* 2f967f7e2b6620bea7c071ad24f7a44873a8022d Fix wrong &\n* 0fa9f37dd3eb7e999ed7c36433b004e3c8e72b83 chmod +x build_onnx2bnn.sh\n* 446bb66ea8bffe95a855ae88b652c9bfa08f1f82 Make onnx2bnn c++11 compatible, add onnx2bnn build ci\n* b22baf7fa3d8c966c701c319285db9a95aff2a23 Remove experimental codes\n* f19d68095f40bd6c6f25e6656be6352dd4b99ae2 Update README for the meaning of Conv xxx in comparison images\n* c89ca5c650921a87a07b9a02f988be951735bcca Update new images\n* 9f6a183d27bc4ea4ad78f1ef8fc17db53fed9ed2 Merge pull request #2 from JDAI-CV\u002Fupdate_googletest\n* 247dd9675acf8611ab4db2a5e5238696977732f3 Update .gitsubmodules\n* deff37c7ff334b51a6153c9109ca1d692fae7a5f Update googletest since my android fix is merged\n* 0d6e4f1ab3aebd3fd20bb08b19a7d47003421824 Update azure pipeline badge\n* b747419071e4614f0a83d88181865f9b2650caaa Merge pull request #1 from JDAI-CV\u002Fazure_pipeline\n* 66c4f2eede84a11f7ed647e2e3e0fe9df60f94ba wget -O, add download_models.sh\n* 1f6acf94990eaf6352af5aea053a335f9e5b4793 Add azure pipeline badge\n* db5f686d057b6527c974f79bd2aa40483d222441 wget -o instead of wget -O for macos wget\n* d312ffbd6d79b8a037304080fd1f6eb346642f93 Add display name and bgemm test and net test\n* 68875ba306a018781f9a51f5d5828dddc6522435 clone submodules\n* b1e72abe05b84fc6ddece1a17501c3e34969b4ef Add set -e in bash\n* 3943c9040fcb918414285f378b1e3f48df2b3877 Fix wrong ndk path\n* 2f406e3a44576966bc24a855edd91098e337b362 Set cmake min version to 3.6\n* 1be70e5c9b935a4410d6c55b5017a4943c3834c5 init azure pipeline\n* 08c1967580c977291cead10df18f5691bc4843bd Remove some out-dated tests, rename bconv_3x3_128 to bconv_3x3\n* 90f18c7a6b549d801b6fe911c27776961b90990e Update googletest submodule for android fix\n* b015744b1500cac254543ffa160c63cdb066bc5d Update README_CN.md\n* 2f6ec4b6e998ea58ae7932b9fc83fc02f4817ee3 Add comment for .dap_pm configurations\n* 0c18fdc70f600061a8dc46a48789cbf608c5fe82 Update README\n\nThis list of changes was [auto generated](https:\u002F\u002Fdev.azure.com\u002Fdaquexian\u002Fdabnn\u002F_build\u002Fresults?buildId=95&view=logs).\u003C\u002Fdetails>","2019-05-05T05:34:51"]