[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-larq--larq":3,"tool-larq--larq":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 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,52],"视频",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[14,35],{"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":64,"owner_name":64,"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":87,"forks":88,"last_commit_at":89,"license":90,"difficulty_score":32,"env_os":91,"env_gpu":92,"env_ram":91,"env_deps":93,"category_tags":98,"github_topics":99,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":108,"updated_at":109,"faqs":110,"releases":139},4332,"larq\u002Flarq","larq","An Open-Source Library for Training Binarized Neural Networks","Larq 是一款专为训练二值化神经网络（BNNs）及其他低精度量化模型而设计的开源深度学习库。传统深度神经网络通常使用 32 位、16 位甚至 8 位数值来编码权重和激活值，导致模型体积庞大、运行缓慢且能耗极高，难以在资源受限的设备上部署。Larq 旨在解决这一痛点，让开发者能够轻松构建仅用 1 位表示参数的超轻量级模型，从而大幅降低计算成本与功耗。\n\n这款工具非常适合人工智能研究人员、嵌入式系统开发者以及希望在移动端或边缘设备部署高效模型的工程师使用。Larq 基于熟悉的 `tf.keras` 接口构建，引入了“量化层”和“量化器”的核心概念，支持通过极简的代码将标准层替换为量化层。其独特的技术亮点在于内置了直通估计器（Straight-Through Estimator）等先进算法，有效解决了低精度网络训练中的梯度传播难题。此外，Larq 并非孤立存在，它与 Larq Zoo（预训练模型库）及 Larq Compute Engine（高性能推理引擎）共同构成了一套完整的开发生态，帮助用户从模型训练到终端部署实现无缝衔接。无论是想要探索前沿量化算法的研究者，还是追求极致效率的应用开发","Larq 是一款专为训练二值化神经网络（BNNs）及其他低精度量化模型而设计的开源深度学习库。传统深度神经网络通常使用 32 位、16 位甚至 8 位数值来编码权重和激活值，导致模型体积庞大、运行缓慢且能耗极高，难以在资源受限的设备上部署。Larq 旨在解决这一痛点，让开发者能够轻松构建仅用 1 位表示参数的超轻量级模型，从而大幅降低计算成本与功耗。\n\n这款工具非常适合人工智能研究人员、嵌入式系统开发者以及希望在移动端或边缘设备部署高效模型的工程师使用。Larq 基于熟悉的 `tf.keras` 接口构建，引入了“量化层”和“量化器”的核心概念，支持通过极简的代码将标准层替换为量化层。其独特的技术亮点在于内置了直通估计器（Straight-Through Estimator）等先进算法，有效解决了低精度网络训练中的梯度传播难题。此外，Larq 并非孤立存在，它与 Larq Zoo（预训练模型库）及 Larq Compute Engine（高性能推理引擎）共同构成了一套完整的开发生态，帮助用户从模型训练到终端部署实现无缝衔接。无论是想要探索前沿量化算法的研究者，还是追求极致效率的应用开发者，Larq 都提供了一个易用且强大的入门途径。","\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flarq_larq_readme_21ec74b0f6e7.gif\" alt=\"logo\" height=\"100px\" align=\"left\"\u002F>\n\u003Cbr\u002F>\n\n[![](https:\u002F\u002Fgithub.com\u002Flarq\u002Flarq\u002Fworkflows\u002FUnittest\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Flarq\u002Flarq\u002Factions?workflow=Unittest) [![Codecov](https:\u002F\u002Fimg.shields.io\u002Fcodecov\u002Fc\u002Fgithub\u002Flarq\u002Flarq)](https:\u002F\u002Fcodecov.io\u002Fgithub\u002Flarq\u002Flarq?branch=main) [![PyPI - Python Version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Flarq.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002Flarq\u002F) [![PyPI](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Flarq.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002Flarq\u002F) [![PyPI - License](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fl\u002Flarq.svg)](https:\u002F\u002Fgithub.com\u002Flarq\u002Flarq\u002Fblob\u002Fmain\u002FLICENSE) [![DOI](https:\u002F\u002Fjoss.theoj.org\u002Fpapers\u002F10.21105\u002Fjoss.01746\u002Fstatus.svg)](https:\u002F\u002Fdoi.org\u002F10.21105\u002Fjoss.01746) [![Code style: black](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcode%20style-black-000000.svg)](https:\u002F\u002Fgithub.com\u002Fambv\u002Fblack)\n\nLarq is an open-source deep learning library for training neural networks with extremely low precision weights and activations, such as Binarized Neural Networks (BNNs).\n\nExisting deep neural networks use 32 bits, 16 bits or 8 bits to encode each weight and activation, making them large, slow and power-hungry.\nThis prohibits many applications in resource-constrained environments. Larq is the first step towards solving this. It is designed to provide an easy to use, composable way to train BNNs (1 bit) and other types of Quantized Neural Networks (QNNs) and is based on the `tf.keras` interface. Note that efficient inference using a trained BNN requires the use of an optimized inference engine; we provide these for several platforms in [Larq Compute Engine](https:\u002F\u002Fgithub.com\u002Flarq\u002Fcompute-engine).\n\n_Larq is part of a family of libraries for BNN development; you can also check out [Larq Zoo](https:\u002F\u002Fgithub.com\u002Flarq\u002Fzoo) for pretrained models and [Larq Compute Engine](https:\u002F\u002Fgithub.com\u002Flarq\u002Fcompute-engine) for deployment on mobile and edge devices._\n\n## Getting Started\n\nTo build a QNN, Larq introduces the concept of [quantized layers](https:\u002F\u002Fdocs.larq.dev\u002Flarq\u002Fapi\u002Flayers\u002F) and [quantizers](https:\u002F\u002Fdocs.larq.dev\u002Flarq\u002Fapi\u002Fquantizers\u002F). A quantizer defines the way of transforming a full precision input to a quantized output and the pseudo-gradient method used for the backwards pass. Each quantized layer requires an `input_quantizer` and a `kernel_quantizer` that describe the way of quantizing the incoming activations and weights of the layer respectively. If both `input_quantizer` and `kernel_quantizer` are `None` the layer is equivalent to a full precision layer.\n\nYou can define a simple binarized fully-connected Keras model using the [Straight-Through Estimator](https:\u002F\u002Fdocs.larq.dev\u002Flarq\u002Fapi\u002Fquantizers\u002F#ste_sign) the following way:\n\n```python\nmodel = tf.keras.models.Sequential(\n    [\n        tf.keras.layers.Flatten(),\n        larq.layers.QuantDense(\n            512, kernel_quantizer=\"ste_sign\", kernel_constraint=\"weight_clip\"\n        ),\n        larq.layers.QuantDense(\n            10,\n            input_quantizer=\"ste_sign\",\n            kernel_quantizer=\"ste_sign\",\n            kernel_constraint=\"weight_clip\",\n            activation=\"softmax\",\n        ),\n    ]\n)\n```\n\nThis layer can be used inside a [Keras model](https:\u002F\u002Fwww.tensorflow.org\u002Fguide\u002Fkeras\u002Foverview#sequential_model) or with a [custom training loop](https:\u002F\u002Fwww.tensorflow.org\u002Fguide\u002Fkeras\u002Ftrain_and_evaluate#part_ii_writing_your_own_training_evaluation_loops_from_scratch).\n\n## Examples\n\nCheck out our examples on how to train a Binarized Neural Network in just a few lines of code:\n\n- [Introduction to BNNs with Larq](https:\u002F\u002Fdocs.larq.dev\u002Flarq\u002Ftutorials\u002Fmnist\u002F)\n- [BinaryNet on CIFAR10](https:\u002F\u002Fdocs.larq.dev\u002Flarq\u002Ftutorials\u002Fbinarynet_cifar10\u002F)\n\n## Installation\n\nBefore installing Larq, please install:\n\n- [Python](https:\u002F\u002Fwww.python.org\u002F) version `3.7`, `3.8`, `3.9`, or `3.10`\n- [Tensorflow](https:\u002F\u002Fwww.tensorflow.org\u002Finstall) version `1.14`, `1.15`, `2.0`, `2.1`, `2.2`, `2.3`, `2.4`, `2.5`, `2.6`, `2.7`, `2.8`, `2.9`, or `2.10`:\n  ```shell\n  pip install tensorflow  # or tensorflow-gpu\n  ```\n\nYou can install Larq with Python's [pip](https:\u002F\u002Fpip.pypa.io\u002Fen\u002Fstable\u002F) package manager:\n\n```shell\npip install larq\n```\n\n## About\n\nLarq is being developed by a team of deep learning researchers and engineers at Plumerai to help accelerate both our own research and the general adoption of Binarized Neural Networks.\n","\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flarq_larq_readme_21ec74b0f6e7.gif\" alt=\"logo\" height=\"100px\" align=\"left\"\u002F>\n\u003Cbr\u002F>\n\n[![](https:\u002F\u002Fgithub.com\u002Flarq\u002Flarq\u002Fworkflows\u002FUnittest\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Flarq\u002Flarq\u002Factions?workflow=Unittest) [![Codecov](https:\u002F\u002Fimg.shields.io\u002Fcodecov\u002Fc\u002Fgithub\u002Flarq\u002Flarq)](https:\u002F\u002Fcodecov.io\u002Fgithub\u002Flarq\u002Flarq?branch=main) [![PyPI - Python Version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Flarq.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002Flarq\u002F) [![PyPI](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Flarq.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002Flarq\u002F) [![PyPI - License](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fl\u002Flarq.svg)](https:\u002F\u002Fgithub.com\u002Flarq\u002Flarq\u002Fblob\u002Fmain\u002FLICENSE) [![DOI](https:\u002F\u002Fjoss.theoj.org\u002Fpapers\u002F10.21105\u002Fjoss.01746\u002Fstatus.svg)](https:\u002F\u002Fdoi.org\u002F10.21105\u002Fjoss.01746) [![Code style: black](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcode%20style-black-000000.svg)](https:\u002F\u002Fgithub.com\u002Fambv\u002Fblack)\n\nLarq 是一个开源深度学习库，用于训练使用极低精度权重和激活值的神经网络，例如二值化神经网络（BNN）。\n\n现有的深度神经网络通常使用 32 位、16 位或 8 位来编码每个权重和激活值，这使得它们体积庞大、运行缓慢且功耗高。这种特性限制了它们在资源受限环境中的应用。Larq 是解决这一问题的第一步。它旨在提供一种易于使用、可组合的方式来训练 BNN（1 位）和其他类型的量化神经网络（QNN），并且基于 `tf.keras` 接口。需要注意的是，使用训练好的 BNN 进行高效推理需要借助优化的推理引擎；我们已在 [Larq Compute Engine](https:\u002F\u002Fgithub.com\u002Flarq\u002Fcompute-engine) 中为多个平台提供了这些引擎。\n\n_Larq 是 BNN 开发相关工具库系列的一部分；您还可以查看 [Larq Zoo](https:\u002F\u002Fgithub.com\u002Flarq\u002Fzoo)，获取预训练模型；以及 [Larq Compute Engine](https:\u002F\u002Fgithub.com\u002Flarq\u002Fcompute-engine)，用于在移动设备和边缘设备上部署模型。_\n\n## 快速入门\n\n为了构建 QNN，Larq 引入了 [量化层](https:\u002F\u002Fdocs.larq.dev\u002Flarq\u002Fapi\u002Flayers\u002F) 和 [量化器](https:\u002F\u002Fdocs.larq.dev\u002Flarq\u002Fapi\u002Fquantizers\u002F) 的概念。量化器定义了如何将全精度输入转换为量化输出，以及反向传播过程中使用的伪梯度方法。每个量化层都需要一个 `input_quantizer` 和一个 `kernel_quantizer`，分别描述对输入激活值和权重进行量化的方式。如果 `input_quantizer` 和 `kernel_quantizer` 均为 `None`，则该层等同于一个全精度层。\n\n您可以使用 [直通估计量](https:\u002F\u002Fdocs.larq.dev\u002Flarq\u002Fapi\u002Fquantizers\u002F#ste_sign) 定义一个简单的二值化全连接 Keras 模型，如下所示：\n\n```python\nmodel = tf.keras.models.Sequential(\n    [\n        tf.keras.layers.Flatten(),\n        larq.layers.QuantDense(\n            512, kernel_quantizer=\"ste_sign\", kernel_constraint=\"weight_clip\"\n        ),\n        larq.layers.QuantDense(\n            10,\n            input_quantizer=\"ste_sign\",\n            kernel_quantizer=\"ste_sign\",\n            kernel_constraint=\"weight_clip\",\n            activation=\"softmax\",\n        ),\n    ]\n)\n```\n\n此层可以用于 [Keras 模型](https:\u002F\u002Fwww.tensorflow.org\u002Fguide\u002Fkeras\u002Foverview#sequential_model) 中，也可以与 [自定义训练循环](https:\u002F\u002Fwww.tensorflow.org\u002Fguide\u002Fkeras\u002Ftrain_and_evaluate#part_ii_writing_your_own_training_evaluation_loops_from_scratch) 结合使用。\n\n## 示例\n\n请参阅我们的示例，了解如何仅用几行代码即可训练一个二值化神经网络：\n\n- [使用 Larq 入门 BNN](https:\u002F\u002Fdocs.larq.dev\u002Flarq\u002Ftutorials\u002Fmnist\u002F)\n- [BinaryNet 在 CIFAR10 上的实现](https:\u002F\u002Fdocs.larq.dev\u002Flarq\u002Ftutorials\u002Fbinarynet_cifar10\u002F)\n\n## 安装\n\n在安装 Larq 之前，请先安装以下内容：\n\n- [Python](https:\u002F\u002Fwww.python.org\u002F) 版本 `3.7`、`3.8`、`3.9` 或 `3.10`\n- [TensorFlow](https:\u002F\u002Fwww.tensorflow.org\u002Finstall) 版本 `1.14`、`1.15`、`2.0`、`2.1`、`2.2`、`2.3`、`2.4`、`2.5`、`2.6`、`2.7`、`2.8`、`2.9` 或 `2.10`：\n  ```shell\n  pip install tensorflow  # 或 tensorflow-gpu\n  ```\n\n您可以使用 Python 的 [pip](https:\u002F\u002Fpip.pypa.io\u002Fen\u002Fstable\u002F) 包管理器安装 Larq：\n\n```shell\npip install larq\n```\n\n## 关于我们\n\nLarq 由 Plumerai 的深度学习研究人员和工程师团队开发，旨在加速我们自身的研究工作，并推动二值化神经网络的广泛应用。","# Larq 快速上手指南\n\nLarq 是一个开源深度学习库，专为训练具有极低精度权重和激活值的神经网络而设计，例如二值神经网络（BNNs）。它基于 `tf.keras` 接口，旨在提供一种简单、可组合的方式来训练 BNN（1 bit）及其他量化神经网络（QNNs）。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows\n*   **Python 版本**：`3.7`, `3.8`, `3.9` 或 `3.10`\n*   **TensorFlow 版本**：支持 `1.14` - `1.15` 或 `2.0` - `2.10`\n\n> **提示**：国内用户建议使用清华源或阿里源加速 Python 包和 TensorFlow 的下载。\n\n## 安装步骤\n\n### 1. 安装 TensorFlow\n首先安装兼容版本的 TensorFlow（如需 GPU 支持可安装 `tensorflow-gpu`）：\n\n```shell\npip install tensorflow\n# 或使用国内镜像源加速\npip install tensorflow -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 2. 安装 Larq\n使用 pip 安装 Larq：\n\n```shell\npip install larq\n# 或使用国内镜像源加速\npip install larq -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n## 基本使用\n\nLarq 的核心概念是**量化层**（Quantized Layers）和**量化器**（Quantizers）。\n*   **Quantizer**：定义如何将全精度输入转换为量化输出，并指定反向传播使用的伪梯度方法。\n*   **Quantized Layer**：需要指定 `input_quantizer`（量化输入激活值）和 `kernel_quantizer`（量化权重）。若两者均为 `None`，则该层等同于普通全精度层。\n\n以下是一个使用 **Straight-Through Estimator (STE)** 构建简单二值化全连接模型的示例：\n\n```python\nimport tensorflow as tf\nimport larq\n\nmodel = tf.keras.models.Sequential(\n    [\n        tf.keras.layers.Flatten(),\n        larq.layers.QuantDense(\n            512, kernel_quantizer=\"ste_sign\", kernel_constraint=\"weight_clip\"\n        ),\n        larq.layers.QuantDense(\n            10,\n            input_quantizer=\"ste_sign\",\n            kernel_quantizer=\"ste_sign\",\n            kernel_constraint=\"weight_clip\",\n            activation=\"softmax\",\n        ),\n    ]\n)\n\n# 编译模型（与普通 Keras 模型用法一致）\nmodel.compile(optimizer=\"adam\", loss=\"sparse_categorical_crossentropy\", metrics=[\"accuracy\"])\n```\n\n该模型可以直接用于标准的 [Keras 训练流程](https:\u002F\u002Fwww.tensorflow.org\u002Fguide\u002Fkeras\u002Ftrain_and_evaluate) 或自定义训练循环中。\n\n> **注意**：训练完成的 BNN 若要实现高效推理，通常需要配合优化的推理引擎（如 [Larq Compute Engine](https:\u002F\u002Fgithub.com\u002Flarq\u002Fcompute-engine)）在移动端或边缘设备上部署。","一家初创团队正在开发一款运行在老旧工业传感器上的实时故障检测系统，需要在极低功耗的嵌入式芯片上部署深度学习模型。\n\n### 没有 larq 时\n- 模型体积过大，32 位浮点权重导致模型文件远超传感器有限的闪存容量，根本无法装入设备。\n- 推理速度缓慢，传统高精度计算占用了过多 CPU 资源，无法满足毫秒级的实时报警需求。\n- 功耗居高不下，频繁的高精度矩阵运算迅速耗尽电池，导致设备需频繁充电或更换，维护成本激增。\n- 量化过程复杂，手动修改 TensorFlow 代码以实现二值化网络（BNN）极易出错，且难以保证训练收敛。\n\n### 使用 larq 后\n- 模型极致压缩，利用 larq 训练的 1 位二值化权重将模型体积缩小了 32 倍，轻松适配受限存储空间。\n- 推理大幅加速，配合 Larq Compute Engine，在边缘设备上实现了数十倍的推理提速，完美满足实时性要求。\n- 能耗显著降低，极简的位运算替代了繁重的浮点计算，使设备单次充电续航时间延长了数倍。\n- 开发高效便捷，基于 `tf.keras` 接口仅需几行代码即可定义量化层，无缝衔接现有工作流并快速获得可用模型。\n\nlarq 通过将神经网络权重和激活值二值化，成功打破了高精度模型在资源受限边缘设备上部署的壁垒。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flarq_larq_f68952f1.png","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Flarq_5c2b5443.png","An Open-Source Deep Learning Library for Training Binarized Neural Networks",null,"https:\u002F\u002Flarq.dev","https:\u002F\u002Fgithub.com\u002Flarq",[79,83],{"name":80,"color":81,"percentage":82},"Python","#3572A5",96.4,{"name":84,"color":85,"percentage":86},"TeX","#3D6117",3.6,728,85,"2026-03-23T23:33:54","Apache-2.0","未说明","非必需。支持通过安装 tensorflow-gpu 使用 GPU，但未指定具体显卡型号、显存大小或 CUDA 版本要求。",{"notes":94,"python":95,"dependencies":96},"该库用于训练极低精度（如二值化）神经网络。虽然训练可使用标准 TensorFlow 环境，但若要高效推理已训练好的二值化模型，需要配合单独的 'Larq Compute Engine' 优化推理引擎（支持移动端和边缘设备）。","3.7, 3.8, 3.9, 3.10",[97,64],"tensorflow>=1.14, \u003C2.11 (支持 1.14-1.15, 2.0-2.10)",[14],[100,101,102,103,104,105,106,107,64],"deep-learning","machine-learning","tensorflow","python","binarized-neural-networks","quantized-neural-networks","keras","binder","2026-03-27T02:49:30.150509","2026-04-06T18:53:51.258378",[111,116,120,125,130,134],{"id":112,"question_zh":113,"answer_zh":114,"source_url":115},19705,"为什么使用 LARQ 进行二值化训练后，模型在 GPU 上的内存占用没有减少？","LARQ 主要用于训练阶段的二值化网络模拟（伪量化），在训练过程中权重仍以浮点数形式存储以兼容 TensorFlow 操作，因此不会立即减少显存占用。要获得实际的模型体积减小和低延迟推理优势，必须使用 Larq Compute Engine (LCE) 将训练好的模型转换为优化的格式。只有在部署阶段使用 LCE，才能利用 1-bit 存储带来的内存和速度优势。","https:\u002F\u002Fgithub.com\u002Flarq\u002Flarq\u002Fissues\u002F508",{"id":117,"question_zh":118,"answer_zh":119,"source_url":115},19706,"为什么保存为 .h5 文件后，二值化模型的文件大小与普通 Keras 模型相比没有变小？","在训练期间，LARQ 使用“伪量化”技术，权重在内存中仍以浮点型（如 float32）存在，以便进行梯度计算和反向传播。因此，直接使用 Keras 的 `model.save_weights()` 保存时，文件大小不会减小。要获得压缩后的模型，需要使用 Larq Compute Engine (LCE) 工具链将模型转换并导出，该过程会将二值权重实际打包为 1-bit 格式。",{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},19707,"在使用 `CaseOptimizer` 进行多 GPU 分布式训练时报错 `list index out of range` 如何解决？","这是一个已知的兼容性问题。如果在 TensorFlow 2.0 中遇到此错误，尝试升级到 TensorFlow 2.1 版本通常可以解决。此外，确保在单次 GPU 测试和多 GPU 测试之间调用 `keras.backend.clear_session()` 来清除会话状态，这有助于避免分布策略相关的错误。如果问题依旧，请检查是否使用了 `lq.optimizers.Bop.is_binary_variable` 作为判断谓词。","https:\u002F\u002Fgithub.com\u002Flarq\u002Flarq\u002Fissues\u002F396",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},19708,"LARQ 是否支持 8-bit 量化？模型摘要中显示的 8-bit 大小是什么意思？","LARQ 本身不内置 8-bit 量化支持，因为 TensorFlow Lite 已经原生提供了完善的训练后 8-bit 量化工具。模型摘要中显示的“8-bit FP weights”大小仅是一个参考估值，表示如果你使用 TensorFlow 的标准工具将非二值层转换为 8-bit 精度，模型大概会有多大。对于真正的 8-bit 量化需求，建议直接使用 TensorFlow Lite 的转换流程。","https:\u002F\u002Fgithub.com\u002Flarq\u002Flarq\u002Fissues\u002F509",{"id":131,"question_zh":132,"answer_zh":133,"source_url":129},19709,"在转换模型到 TFLite 格式时遇到 `AttributeError: 'str' object has no attribute 'call'` 错误怎么办？","该错误通常是因为传递给 `lce.convert_keras_model` 的参数类型不正确。确保你传入的是已加载的 Keras 模型对象，而不是文件路径字符串。如果必须从文件加载，请先使用 `tf.keras.models.load_model()` 加载模型，再将模型对象传入转换函数，不要直接传入 `.h5` 文件的路径字符串。",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},19710,"如何正确判断一个变量是否为二值变量（Binary Variable）？","在较新的 API 设计中（特别是引入 `QuantizedVariable` 后），判断一个变量是否为二值变量应检查其精度（precision）是否为 1，并且其量化器（quantizer）是否为 `NoOpQuantizer`（或称 `NoQuantizer`）。代码示例如下：`return var.precision == 1 and isinstance(var.quantizer, NoOpQuantizer)`。避免使用容易混淆的 `FakeQuantizer` 命名。","https:\u002F\u002Fgithub.com\u002Flarq\u002Flarq\u002Fissues\u002F306",[140,145,150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235],{"id":141,"version":142,"summary_zh":143,"released_at":144},117745,"v0.13.3","## :bug: 错误修复\n\n* 为 `QuantizedVariable` 添加 `QuantizedVariableSpec` (#838) @lgeiger\n\n## :arrow_up: 依赖项更新\n\n* 将 black 从 23.3.0 升级到 23.7.0 (#839) @dependabot","2023-07-12T14:06:25",{"id":146,"version":147,"summary_zh":148,"released_at":149},117746,"v0.13.2","## :tada: 功能特性\n\n* 支持 TensorFlow 2.13 (#831) @lgeiger\n\n## :arrow_up: 依赖项\n\n* 将 toolmantim\u002Frelease-drafter 从 5.23.0 升级到 5.24.0 (#834) @dependabot\n* 将 pytest 的版本要求从 ==7.3.* 更新为 >=7.3,\u003C7.5 (#833) @dependabot\n* 将 pytest-mock 的版本要求从 ==3.10.* 更新为 >=3.10,\u003C3.12 (#832) @dependabot","2023-07-07T10:45:46",{"id":151,"version":152,"summary_zh":153,"released_at":154},117747,"v0.13.1","## :tada: 功能特性\n\n* 支持 TensorFlow 2.12 (#829) @lgeiger\n\n## :construction_worker_man: 内部改进\n\n* 在 CI 中更新 TensorFlow 依赖项 (#826) @lgeiger\n\n## :arrow_up: 依赖项更新\n\n* 将 pytest-cov 的版本要求从 ==4.0.* 更新为 >=4.0,\u003C4.2 (#828) @dependabot\n* 将 pytest 的版本要求从 ==7.2.* 更新为 >=7.2,\u003C7.4 (#825) @dependabot\n* 将 pytest-xdist 的版本要求从 ==3.0.* 更新为 >=3.0,\u003C3.3 (#822) @dependabot\n* 将 toolmantim\u002Frelease-drafter 从 5.21.1 升级到 5.23.0 (#819, #823) @dependabot\n* 将 isort 的版本要求从 ==5.10.* 更新为 >=5.10,\u003C5.12 (#818) @dependabot\n* 将 black 从 22.10.0 升级到 23.3.0 (#817, #821, #824) @dependabot\n* 将 flake8 的版本要求从 ==5.0.* 更新为 >=5.0,\u003C6.1 (#814) @dependabot","2023-06-14T15:30:57",{"id":156,"version":157,"summary_zh":158,"released_at":159},117748,"v0.13.0","## :warning: 重大变更 :warning:\n\n* 放弃对 Python 3.6 的支持 (#811) @lgeiger\n\n## :tada: 新特性\n\n* 支持 TensorFlow 2.11 (#810) @lgeiger\n\n## :construction_worker_man: 内部改进\n\n* 锁定测试依赖版本 (#812) @lgeiger\n* 在 CI 中更新 TensorFlow (#795) @lgeiger\n* 针对 TensorFlow 2.10 进行测试 (#790) @lgeiger\n* 提升 TF 版本以修复 CI (#775) @lgeiger\n* 将 TensorFlow 2.9.0 添加到 CI (#770) @lgeiger\n* 针对 Python 3.10 进行测试 (#765) @lgeiger\n* 针对 TF 2.9.0rc0 进行测试 (#762) @lgeiger\n* 针对 TensorFlow 2.8 进行测试 (#747) @lgeiger\n\n## :arrow_up: 依赖项\n\n* 将 pytype 从 2021.10.25 升级到 2022.10.26 (#809, #805, #800, #799, #796, #793, #791, #789, #787, #785, #783, #780, #779, #773, #771, #769) @dependabot\n* 将 pytest-xdist 的版本要求从 \u003C2.5,>=1.30 更新为 >=1.30,\u003C3.1 (#808, #738) @dependabot\n* 将 pytest 的版本要求从 \u003C6.3.0,>=5.2.4 更新为 >=5.2.4,\u003C7.3.0 (#807, #758, #751) @dependabot\n* 将 pytest-mock 的版本要求从 \u003C3.10,>=2.0 更新为 >=2.0,\u003C3.11 (#803, #801, #781, #745) @dependabot\n* 将 pytest-cov 的版本要求从 \u003C3.1.0,>=2.8.1 更新为 >=2.8.1,\u003C4.1.0 (#802) @dependabot\n* 将 toolmantim\u002Frelease-drafter 从 5.15.0 升级到 5.21.1 (#806, #788, #768, #757, #752, #749, #744, #743, #740) @dependabot\n* 将 black 从 21.11b1 升级到 22.10.0 (#804, #794, #782, #759, #746, #737) @dependabot\n* 将 flake8 的版本要求从 \u003C4.1.0,>=3.7.9 更新为 >=3.7.9,\u003C5.1.0 (#786) @dependabot\n* 将 actions\u002Fsetup-python 从 2.3.1 升级到 4 (#776, #755, #750) @dependabot\n* 将 actions\u002Fcheckout 从 2 升级到 3 (#756) @dependabot","2022-11-04T12:58:14",{"id":161,"version":162,"summary_zh":163,"released_at":164},117749,"v0.12.2","## :bug: 错误修复\n\n* 在 `CaseOptimizer` 中不要根据名称映射变量 (#735) @lgeiger\n* 防止 `CaseOptimizer` 创建未使用的变量 (#734) @lgeiger\n* 支持 `ModelProfile` 中的嵌套模型 (#718) @jneeven\n\n## :construction_worker_man: 内部改进\n\n* :arrow_up: CI 上添加 TensorFlow 支持 (#725) @lgeiger\n* 将 TensorFlow 2.7.0rc0 添加到 CI 矩阵中 (#710) @lgeiger\n\n## :arrow_up: 依赖项更新\n\n* 将 actions\u002Fsetup-python 从 2.2.2 升级到 2.3.1 (#728, #733) @dependabot\n* 将 black 从 21.9b0 升级到 21.11b1 (#721, #729, #730) @dependabot\n* 将 isort 从 5.9.3 升级到 5.10.1 (#724, #727) @dependabot\n* 将 pytype 从 2021.10.4 升级到 2021.10.25 (#712, #715, #717) @dependabot\n* 更新 flake8 的版本要求，从 \u003C3.10.0,>=3.7.9 变更为 >=3.7.9,\u003C4.1.0 (#711) @dependabot","2021-12-02T11:17:29",{"id":166,"version":167,"summary_zh":168,"released_at":169},117750,"v0.12.1","## :bug: 错误修复\n\n* 正确地将 `output_padding` 传递给转置卷积层 (#707) @lgeiger\n\n## :book: 文档更新\n\n* 正确地将 `groups` 和 `dilation_rate` 参数传递给卷积层 (#708) @lgeiger\n\n## :construction_worker_man: 内部改进\n\n* 正确地将 `groups` 和 `dilation_rate` 参数传递给卷积层 (#708) @lgeiger\n* 将 `master` 分支重命名为 `main` (#701) @lgeiger\n* 将 CI 环境更新至 TensorFlow 2.6.0 和 Python 3.9 (#691) @lgeiger\n* 在 CI 中添加 TF 2.6.0 rc0 版本 (#682) @lgeiger\n* 将 CI 环境更新至 TF 2.5.0 稳定版 (#674) @lgeiger\n\n## :arrow_up: 依赖项更新\n\n* 更新 pytest-cov 的版本约束，从 \u003C2.12.0,>=2.8.1 改为 >=2.8.1,\u003C3.1.0 (#667, #705) @dependabot\n* 将 pytype 从 2021.5.4 升级至 2021.10.4 (#663, #665, #668, #670, #671, #680, #687, #688, #690, #692, #700, #706) @dependabot\n* 更新 pytest-xdist 的版本约束，从 \u003C2.3,>=1.30 改为 >=1.30,\u003C2.5 (#679, #703) @dependabot\n* 将 black 从 21.5b0 升级至 21.9b0 (#686, #694, #702) @dependabot\n* 将 isort 从 5.8.0 升级至 5.9.3 (#664, #675, #678, #681, #684, #689) @dependabot\n* 更新 packaging 的版本约束，从 \u003C21.0,>=19.2 改为 >=19.2,\u003C22.0 (#683) @dependabot","2021-10-07T13:37:03",{"id":171,"version":172,"summary_zh":173,"released_at":174},117751,"v0.12.0","## :tada: 功能特性\n\n* 添加 DoReFa 权重量化器 (#651) @Joschua-Conrad\n\n## :book: 文档\n\n* 记录对 TF 2.5 和 Python 3.9 的支持 (#661) @lgeiger\n* 为 `mode=\"weights\"` 添加 DoReFa 图表 (#660) @lgeiger\n* 移除过时的徽章 (#638) @lgeiger\n\n## :construction_worker_man: 内部改进\n\n* 将 TensorFlow 2.5.0rc0 和 Python 3.9 加入 CI 矩阵 (#647) @lgeiger\n* [callbacks.py] 切换到 Python 3 的 super() 调用 (#646) @pfackeldey\n\n## :arrow_up: 依赖项\n\n* 将 black 从 20.8b1 升级到 21.5b0 (#653, #656, #657, #659) @dependabot\n* 将 pytype 从 2020.10.8 升级到 2021.5.4 (#632, #634, #635, #643, #644, #648, #650, #655, #658) @dependabot\n* 更新 pytest-mock 的版本要求，从 \u003C3.6,>=2.0 改为 >=2.0,\u003C3.7 (#654) @dependabot\n* 将 actions\u002Fsetup-python 从 v2.2.1 升级到 v2.2.2 (#649) @dependabot\n* 将 isort 从 5.7.0 升级到 5.8.0 (#642) @dependabot\n* 将 toolmantim\u002Frelease-drafter 从 v5.14.0 升级到 v5.15.0 (#639) @dependabot\n* 更新 flake8 的版本要求，从 \u003C3.9.0,>=3.7.9 改为 >=3.7.9,\u003C3.10.0 (#636) @dependabot","2021-05-05T12:40:35",{"id":176,"version":177,"summary_zh":178,"released_at":179},117752,"v0.11.2","## :bug: 错误修复\n\n* 初始化 CaseOptimizer.iterations，这是 TF 2.3 及以上版本所必需的 (#629) @lgeiger","2021-02-18T23:38:06",{"id":181,"version":182,"summary_zh":183,"released_at":184},117753,"v0.11.1","## :bug: 错误修复\n\n* 重命名 Quantizer 类型，以避免与基类冲突 (#627) @lgeiger\n\n## :construction_worker_man: 内部改进\n\n* 更倾向于使用 lq.quantizers.NoOp 而不是 NoOpQuantizer (#626) @lgeiger","2021-02-15T18:41:29",{"id":186,"version":187,"summary_zh":188,"released_at":189},117754,"v0.11.0","## :warning: 重大变更 :warning:\n\n* 添加用于定义量化器的公共基类，并隐藏 BaseQuantizer (#623) @lgeiger\n\n## :bug: 错误修复\n\n* 在 Quantizers.build() 中调用 super().build() (#621) @lgeiger\n\n## :construction_worker_man: 内部改进\n\n* 在 Layer.build 中构建 flip_ratio 指标 (#622) @lgeiger\n\n## :arrow_up: 依赖项\n\n* 将 toolmantim\u002Frelease-drafter 从 v5.13.0 升级到 v5.14.0 (#624) @dependabot","2021-02-15T16:58:30",{"id":191,"version":192,"summary_zh":193,"released_at":194},117755,"v0.10.3","## :bug: Bug Fixes\r\n\r\n* Support 1d ops in model profile (#614) @jneeven\r\n\r\n## :book: Documentation\r\n\r\n* Add TF2.4 to the README. (#617) @AdamHillier\r\n\r\n## :construction_worker_man: Internal Improvements\r\n\r\n* Update TF versions in unit tests. (#616) @AdamHillier\r\n* Add TF 2.4 stable to CI (#602) @lgeiger\r\n* Relax importlib-metadata dependency constraint for older Python \u003C 3.8 (#599) @lgeiger\r\n* Add TensorFlow 2.4.0rc0 to CI matrix (#598) @lgeiger\r\n\r\n## :arrow_up: Dependencies\r\n\r\n* Update pytest-cov requirement from \u003C2.11.0,>=2.8.1 to >=2.8.1,\u003C2.12.0 (#612) @dependabot\r\n* Update pytest-mock requirement from \u003C3.5,>=2.0 to >=2.0,\u003C3.6 (#609) @dependabot\r\n* Bump isort from 5.6.4 to 5.7.0 (#608) @dependabot\r\n* Bump toolmantim\u002Frelease-drafter from v5.12.1 to v5.13.0 (#606) @dependabot\r\n* Bump actions\u002Fsetup-python from v2.2.0 to v2.2.1 (#605) @dependabot\r\n* Bump actions\u002Fsetup-python from v2.1.4 to v2.2.0 (#604) @dependabot\r\n* Update pytest-mock requirement from \u003C3.4,>=2.0 to >=2.0,\u003C3.5 (#603) @dependabot\r\n* Update pytest-xdist requirement from \u003C2.2,>=1.30 to >=1.30,\u003C2.3 (#601) @dependabot\r\n* Update pytest requirement from \u003C6.2.0,>=5.2.4 to >=5.2.4,\u003C6.3.0 (#600) @dependabot","2021-02-02T17:16:27",{"id":196,"version":197,"summary_zh":198,"released_at":199},117756,"v0.10.2","## :construction_worker_man: Internal Improvements\r\n\r\n* Add `__version__` property. Closes #595. (#596) @AdamHillier\r\n* Upgrade TensorFlow versions on CI (#580) @lgeiger\r\n\r\n## :arrow_up: Dependencies\r\n\r\n* Bump toolmantim\u002Frelease-drafter from v5.12.0 to v5.12.1 (#594) @dependabot\r\n* Bump toolmantim\u002Frelease-drafter from v5.11.0 to v5.12.0 (#593) @dependabot\r\n* Bump actions\u002Fsetup-python from v2.1.3 to v2.1.4 (#592) @dependabot\r\n* Bump isort from 5.6.3 to 5.6.4 (#591) @dependabot\r\n* Bump isort from 5.6.1 to 5.6.3 (#590) @dependabot\r\n* Bump pytype from 2020.9.29 to 2020.10.8 (#588) @dependabot\r\n* Bump isort from 5.6.0 to 5.6.1 (#589) @dependabot\r\n* Bump isort from 5.5.4 to 5.6.0 (#587) @dependabot\r\n* Bump actions\u002Fsetup-python from v2.1.2 to v2.1.3 (#585) @dependabot\r\n* Bump pytype from 2020.9.24 to 2020.9.29 (#583) @dependabot\r\n* Bump isort from 5.5.3 to 5.5.4 (#584) @dependabot\r\n* Update snapshottest requirement from ~=0.5.1 to >=0.5.1,\u003C0.7.0 (#582) @dependabot\r\n* Update pytest requirement from \u003C6.1.0,>=5.2.4 to >=5.2.4,\u003C6.2.0 (#581) @dependabot","2020-10-21T18:52:58",{"id":201,"version":202,"summary_zh":203,"released_at":204},117757,"v0.10.1","## :bug: Bug Fixes\r\n\r\n* Fix variable saving on tf-nightly (#578) @lgeiger\r\n* Raise exception when causal padding is used with pad_values != 0 (#575) @lgeiger\r\n* Improve model summary for TF layers and multi output layers (#572) @lgeiger\r\n* Fix distributed quantized variable assignment in TF 2.x (#556) @lgeiger\r\n\r\n## :book: Documentation\r\n\r\n* Fix indentation of DoReFa warning (#576) @lgeiger\r\n* Emphasize importance of LCE in README.md (#564) @leonoverweel\r\n\r\n## :construction_worker_man: Internal Improvements\r\n\r\n* Only warn for missing kernel constraints when quantizers are binary (#577) @lgeiger\r\n* Run linting using Python 3.8 on CI (#557) @lgeiger\r\n\r\n## :arrow_up: Dependencies\r\n\r\n* Bump pytype from 2020.9.16 to 2020.9.24 (#573) @dependabot\r\n* Bump isort from 5.5.2 to 5.5.3 (#570) @dependabot\r\n* Bump pytype from 2020.9.14 to 2020.9.16 (#569) @dependabot\r\n* Bump pytype from 2020.8.28 to 2020.9.14 (#568) @dependabot\r\n* Bump isort from 5.5.1 to 5.5.2 (#567) @dependabot\r\n* Bump isort from 5.5.0 to 5.5.1 (#566) @dependabot\r\n* Bump isort from 5.4.2 to 5.5.0 (#565) @dependabot\r\n* Bump pytype from 2020.8.17 to 2020.8.28 (#563) @dependabot\r\n* Bump black from 19.10b0 to 20.8b1 (#561) @dependabot\r\n* Update pytest-xdist requirement from \u003C2.1,>=1.30 to >=1.30,\u003C2.2 (#560) @dependabot\r\n* Update pytest-mock requirement from \u003C3.3,>=2.0 to >=2.0,\u003C3.4 (#559) @dependabot\r\n* Bump pytype from 2020.8.10 to 2020.8.17 (#558) @dependabot\r\n* Update pytest-xdist requirement from \u003C1.35,>=1.30 to >=1.30,\u003C2.1 (#555) @dependabot\r\n* Bump isort from 5.4.1 to 5.4.2 (#554) @dependabot\r\n* Bump isort from 5.4.0 to 5.4.1 (#552) @dependabot\r\n* Bump isort from 5.3.2 to 5.4.0 (#551) @dependabot\r\n* Bump actions\u002Fsetup-python from v2.1.1 to v2.1.2 (#550) @dependabot\r\n* Bump pytype from 2020.7.30 to 2020.8.10 (#549) @dependabot\r\n* Bump isort from 5.3.0 to 5.3.2 (#548) @dependabot\r\n* Bump isort from 5.2.2 to 5.3.0 (#547) @dependabot\r\n* Bump isort from 5.2.1 to 5.2.2 (#545) @dependabot\r\n* Bump pytype from 2020.7.24 to 2020.7.30 (#546) @dependabot\r\n* Bump isort from 5.2.0 to 5.2.1 (#543) @dependabot\r\n* Update pytest requirement from \u003C5.5.0,>=5.2.4 to >=5.2.4,\u003C6.1.0 (#542) @dependabot\r\n* Run test against TensorFlow 2.3 stable on CI (#540) @lgeiger\r\n* Update pytest-xdist requirement from \u003C1.34,>=1.30 to >=1.30,\u003C1.35 (#541) @dependabot\r\n* Bump isort from 5.1.4 to 5.2.0 (#539) @dependabot\r\n* Bump pytype from 2020.7.20 to 2020.7.24 (#538) @dependabot\r\n* Bump actions\u002Fsetup-python from v2.1.0 to v2.1.1 (#536) @dependabot\r\n* Bump pytype from 2020.7.14 to 2020.7.20 (#537) @dependabot\r\n* Bump isort from 5.1.1 to 5.1.4 (#535) @dependabot\r\n* Bump actions\u002Fsetup-python from v2.0.2 to v2.1.0 (#534) @dependabot\r\n* Bump actions\u002Fsetup-python from v2.0.1 to v2.0.2 (#533) @dependabot\r\n* Bump isort from 5.1.0 to 5.1.1 (#532) @dependabot\r\n* Bump pytype from 2020.6.26 to 2020.7.14 (#531) @dependabot\r\n* Bump isort from 5.0.9 to 5.1.0 (#530) @dependabot\r\n* Update pytest-mock requirement from \u003C3.2,>=2.0 to >=2.0,\u003C3.3 (#528) @dependabot\r\n* Bump isort from 5.0.7 to 5.0.9 (#529) @dependabot\r\n* Run unittests against TF 2.3rc1 (#527) @lgeiger\r\n* Update pytest-xdist requirement from \u003C1.33,>=1.30 to >=1.30,\u003C1.34 (#525) @dependabot\r\n* Bump isort from 5.0.6 to 5.0.7 (#526) @dependabot\r\n* Bump isort from 5.0.4 to 5.0.6 (#524) @dependabot","2020-09-25T16:33:16",{"id":206,"version":207,"summary_zh":208,"released_at":209},117758,"v0.10.0","## :tada: Features\r\n\r\n* Add support for TensorFlow 2.3 (#498) @lgeiger\r\n\r\n## :bug: Bug Fixes\r\n\r\n* Fix saving in SavedModel format (#514) @lgeiger\r\n* Fix QuantizedVariable.set_shape and improve method delegation test (#518) @lgeiger\r\n* Fix metric typo (#497) @koenhelwegen\r\n\r\n## :book: Documentation\r\n\r\n* Add TensorFlow 2.3 to list of supported versions (#520) @lgeiger\r\n* Improve alignment of LaTeX formulas (#501) @lgeiger\r\n* Apply Python Black formatting to docstring examples (#500) @leonoverweel\r\n* Add warning to DoReFa docstring (#494) @jneeven\r\n\r\n## :construction_worker_man: Internal Improvements\r\n\r\n* Add test for set_precision decorator (#517) @lgeiger\r\n* Upgrade isort (#516) @lgeiger\r\n* Always upload coverage on CI to reduce flaky code coverage reports (#515) @lgeiger\r\n* Run distribution strategy tests with multiple virtual CPUs (#507) @lgeiger\r\n* Cleanup tests (#506) @lgeiger\r\n\r\n## :arrow_up: Dependencies\r\n\r\n* Bump isort from 5.0.1 to 5.0.4 (#519, #521) @dependabot\r\n* Upgrade pytype to autoselect jobs on CI (#513) @lgeiger\r\n* Bump toolmantim\u002Frelease-drafter from v5.7.0 to v5.11.0 (#512) @dependabot\r\n* Bump actions\u002Fsetup-python from v1 to v2.0.1 (#511) @dependabot\r\n* Create Dependabot config file (#510) @dependabot-preview\r\n* Update pytype requirement from \u003C2020.3.0,>=2020.01.07 to >=2020.01.07,\u003C2020.7.0 (#499) @dependabot-preview\r\n* Update pytest-cov requirement from ~=2.8.1 to >=2.8.1,\u003C2.11.0 (#495, #505) @dependabot-preview","2020-07-07T14:46:37",{"id":211,"version":212,"summary_zh":213,"released_at":214},117759,"v0.9.6","## :bug: Bug Fixes\r\n\r\n* Don't lazily compute _is_native_padding (#492) @lgeiger\r\n* Correctly compute one-padding shape to prevent recreating conv_op (#491) @lgeiger\r\n\r\n## :book: Documentation\r\n\r\n* Fix references for QuantConv3DTranspose (#490) @leonoverweel\r\n\r\n## :arrow_up: Dependencies\r\n\r\n* Update flake8 requirement from ~=3.7.9 to >=3.7.9,\u003C3.9.0 (#489) @dependabot-preview","2020-05-18T16:32:19",{"id":216,"version":217,"summary_zh":218,"released_at":219},117760,"v0.9.5","## :bug: Bug Fixes\r\n\r\n* Fix case optimizer when used with distributed mixed precision loss scaling (#485) @lgeiger\r\n* Fix larq summary for subclassed models (#480) @lgeiger\r\n\r\n## :book: Documentation\r\n\r\n* Reformat docs for keras-autodoc (#482) @leonoverweel\r\n* Add TF 2.2.0 to CI test matrix (#486) @lgeiger\r\n\r\n## :arrow_up: Dependencies\r\n\r\n* Update pytest-xdist requirement from \u003C1.32,>=1.30 to >=1.30,\u003C1.33 (#481) @dependabot-preview\r\n* Update pytest-mock requirement from \u003C3.1,>=2.0 to >=2.0,\u003C3.2 (#476) @dependabot-preview","2020-05-11T09:48:07",{"id":221,"version":222,"summary_zh":223,"released_at":224},117761,"v0.9.4","## :tada: Features\r\n\r\n* Add support for `experimental_aggregate_gradients` (#466) @lgeiger\r\n\r\n## :book: Documentation\r\n\r\n* Replace arXiv URLs with https version (#474) @lgeiger\r\n* Fix typo in metrics (#473) @lgeiger\r\n\r\n## :construction_worker_man: Internal Improvements\r\n\r\n* Upload coverage without token (#472) @lgeiger\r\n* Implement `compute_output_shape` in base quantizer (#471) @lgeiger\r\n* Add Python 3.8 to CI matrix (#469) @lgeiger\r\n* Make quantiser names consistent. Closes #467. (#468) @AdamHillier\r\n\r\n## :arrow_up: Dependencies\r\n\r\n* Update pytest-mock requirement from ~=2.0.0 to >=2.0,\u003C3.1 (#470) @dependabot-preview","2020-04-17T12:06:32",{"id":226,"version":227,"summary_zh":228,"released_at":229},117762,"v0.9.3","## :bug: Bug Fixes\r\n\r\n* Use static tensor shapes if possible for one-padding (#463) @lgeiger","2020-03-24T13:52:41",{"id":231,"version":232,"summary_zh":233,"released_at":234},117763,"v0.9.2","## :bug: Bug Fixes\r\n\r\n* Support unknown input shapes with one padding (#461) @lgeiger\r\n\r\n## :arrow_up: Dependencies\r\n\r\n* Update pytest requirement from \u003C5.4.0,>=5.2.4 to >=5.2.4,\u003C5.5.0 (#460) @dependabot-preview","2020-03-20T12:15:03",{"id":236,"version":237,"summary_zh":238,"released_at":239},117764,"v0.9.1","## :bug: Bug Fixes\r\n\r\n* Fix deserialization of quantizer functions (#458) @lgeiger","2020-03-11T19:43:23"]