[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-xmartlabs--Bender":3,"tool-xmartlabs--Bender":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 真正成长为懂上",158594,2,"2026-04-16T23:34:05",[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":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":76,"owner_twitter":72,"owner_website":77,"owner_url":78,"languages":79,"stars":96,"forks":97,"last_commit_at":98,"license":99,"difficulty_score":100,"env_os":101,"env_gpu":102,"env_ram":103,"env_deps":104,"category_tags":112,"github_topics":113,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":125,"updated_at":126,"faqs":127,"releases":156},8258,"xmartlabs\u002FBender","Bender","Easily craft fast Neural Networks on iOS! Use TensorFlow models. Metal under the hood.","Bender 是一款专为 iOS 开发者打造的开源框架，旨在让在苹果移动设备上运行神经网络变得简单高效。它基于 Apple 的 MetalPerformanceShaders 构建了一层优雅的抽象接口，底层直接利用 GPU 加速，确保模型推理速度快且流畅。\n\n在 Bender 出现之前，开发者若想在 iOS 上部署机器学习模型，往往需要面对底层 API 的复杂性，编写大量重复代码来处理权重转换和参数映射，或者直接引入庞大的 TensorFlow 静态库却无法享受 GPU 加速。Bender 完美解决了这些痛点：它不仅支持通过简洁的代码快速定义卷积、池化等常见网络层，更提供了强大的适配器，能够直接加载并“翻译”由 TensorFlow 训练好的预训练模型，自动完成格式转换与参数对齐。\n\n这款工具非常适合需要在 iPhone 或 iPad 上集成人工智能功能的 iOS 应用开发者，以及希望将实验室模型落地到移动端的算法研究人员。借助 Bender，你可以轻松绕过繁琐的底层优化工作，专注于业务逻辑与创新，让高性能的 AI 功能无缝融入你的 App 之中。","# Bender\n\n\u003Cp align=\"left\">\n\u003Ca href=\"https:\u002F\u002Ftravis-ci.org\u002Fxmartlabs\u002FBender\">\u003Cimg src=\"https:\u002F\u002Ftravis-ci.org\u002Fxmartlabs\u002FBender.svg?branch=master\" alt=\"Build status\" \u002F>\u003C\u002Fa>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatform-iOS-blue.svg?style=flat\" alt=\"Platform iOS\" \u002F>\n\u003Ca href=\"https:\u002F\u002Fdeveloper.apple.com\u002Fswift\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fswift4-compatible-4BC51D.svg?style=flat\" alt=\"Swift 4 compatible\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fcocoapods.org\u002Fpods\u002FMetalBender\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fcocoapods\u002Fv\u002FMetalBender.svg\" alt=\"CocoaPods compatible\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCarthage\u002FCarthage\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCarthage-compatible-4BC51D.svg?style=flat\" alt=\"Carthage compatible\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fxmartlabs\u002FBender\u002Fmaster\u002FLICENSE\">\u003Cimg src=\"http:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg?style=flat\" alt=\"License: MIT\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fapp.fossa.io\u002Fprojects\u002Fgit%2Bgithub.com%2Fxmartlabs%2FBender?ref=badge_shield\" alt=\"FOSSA Status\">\u003Cimg src=\"https:\u002F\u002Fapp.fossa.io\u002Fapi\u002Fprojects\u002Fgit%2Bgithub.com%2Fxmartlabs%2FBender.svg?type=shield\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n![Bender](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxmartlabs_Bender_readme_cf5e2f475ff3.png)\n\nBender is an abstraction layer over MetalPerformanceShaders useful for working with neural networks.\n\n## Contents\n* [Introduction](#introduction)\n* [Why did we need Bender](#why)\n* [Basic usage](#usage)\n* [Requirements](#requirements)\n* [Getting involved](#getting-involved)\n* [Examples](#examples)\n* [Installation](#installation)\n* [Changelog](#change-log)\n\nThe documentation can be found under the `Documentation` folder:\n* [API](Documentation\u002FAPI.md) contains the most important information to get started.\n* [Supported Layers] explains which layers are supported and how they map to TensorFlow ops.\n* [Importing] explains how to import models from other frameworks such as TensorFlow. You can also find information on how to enhance this functionality for custom implementations.\n\n## Introduction\n\nBender is an abstraction layer over MetalPerformanceShaders which is used to work with neural networks. It is of growing interest in the AI environment to execute neural networks on mobile devices even if the training process has been done previously. We want to make it easier for everyone to execute pretrained networks on iOS.\n\nBender allows you to easily define and run neural networks using the most common layers like Convolution, Pooling, FullyConnected and some normalizations among others. It is also flexible in the way it receives the parameters for these layers.\n\nWe also want to support loading models trained on other frameworks such as TensorFlow or Caffe2. Currently Bender includes an adapter for TensorFlow that loads a graph with variables and \"translates\" it to Bender layers. This feature supports a subset of TensorFlow's operations but we plan to enhance it to cover more cases.\n\n## Why did we need Bender? \u003Ca name=\"why\">\u003C\u002Fa>\n\nAt [Xmartlabs] we were about to start a Machine Learning project and investigated frameworks to use in iOS. We found MetalPerformanceShaders useful but not very user friendly and we saw ourselves repeating a lot of code and information. That is why we starting building a framework to handle that kind of stuff.\n\nWe also found ourselves creating scripts to translate the models we had from training with TensorFlow to iOS. This means transposing the weights to the MPSCNN format and also mapping the parameters of the different kinds of layers in TensorFlow to the parameters used by the MPSCNN kernels. TensorFlow can be compiled for iOS but currently it does not support running on GPU which we wanted to do. We also did not want to include TensorFlow's static library into our project. This is why we also started to work on an adapter that would parse a TF graph and translate it to our Bender layers.\n\n## Usage\n\nYou can define your own network in Bender using our custom operator or you can load a model exported from TensorFlow. Defining a network and loading a model can be done like this:\n\n```swift\nimport MetalBender\n\nlet url = Bundle.main.url(forResource: \"myModel\", withExtension: \"pb\")! \u002F\u002F A TensorFlow model.\nlet network = Network.load(url: url, inputSize: LayerSize(h: 256, w: 256, f: 3))\n\nnetwork.run(input: \u002F* ... *\u002F) { output in\n    \u002F\u002F ...\n}\n```\n\nYou can read more information about this in [Importing](Documentation\u002FImporting.md).\n\nIf you want to define your network yourself you can do it like this:\n\n```swift\nlet network = Network(inputSize: LayerSize(h: 256, w: 256, f: 3))\n\nnetwork.start\n    ->> Convolution(convSize: ConvSize(outputChannels: 16, kernelSize: 3, stride: 2))\n    ->> InstanceNorm()\n    ->> Convolution(convSize: ConvSize(outputChannels: 32, kernelSize: 3, stride: 2), neuronType: .relu)\n    ->> InstanceNorm()\n    ->> FullyConnected(neurons: 128)\n    ->> Neuron(type: .tanh)\n    ->> FullyConnected(neurons: 10)\n    ->> Softmax()\n\u002F\u002F ...\n```\n\nand once you're done with all your layers:\n\n```swift\nnetwork.initialize()\n```\n\nTo know more about this have a look at [API](Documentation\u002FAPI.md).\n\n\n## Requirements\n\n* Xcode 9\n* iOS 11.0+ (but deployment target is iOS 10.0, so iOS 10 is supported)\n\n## Getting involved\n\n* If you **want to contribute** please feel free to **submit pull requests**.\n* If you **have a feature request** please **open an issue**.\n* If you **found a bug** or **need help** please **check older issues, [FAQ](#faq) and threads on [StackOverflow](https:\u002F\u002Fstackoverflow.com) before submitting an issue**.\n\nBefore contribute check the [CONTRIBUTING] file for more info.\n\nIf you use **Bender** in your app We would love to hear about it! Drop us a line on [Twitter](https:\u002F\u002Ftwitter.com\u002Fxmartlabs).\n\n## Examples\n\nFollow these steps to run the examples:\n* Clone Bender repository (or download it).\n* Run `carthage update --platform iOS` in the downloaded folder.\n* Open Bender workspace and run the *Example* project.\n\n> There is an Image recognition example which includes a MobileNet model in Bender and one in CoreML. It is also set up to run an Inception model but you will have to download it separately as it is almost 100 MB in size.\nYou can download it from http:\u002F\u002Fdownload.tensorflow.org\u002Fmodels\u002Finception_v3_2016_08_28.tar.gz but then you have to freeze it and add it to the 'Example' Xcode project as 'inception_v3.pb'.\n\n## Installation\n\n#### CocoaPods\n\nTo install Bender, simply add the following line to your Podfile:\n\n```ruby\npod 'MetalBender', '~> 0.5'\n```\n\n> Remember that Bender compiles for iOS 10. So you must add `platform :ios, '10.0'` to your Podfile\n\n#### Carthage\n\n[Carthage](https:\u002F\u002Fgithub.com\u002FCarthage\u002FCarthage) is a simple, decentralized dependency manager for Cocoa.\n\nTo install Bender, add the following line to your Cartfile:\n\n```ogdl\ngithub \"xmartlabs\u002FBender\" ~> 0.5\n```\n\nThen run:\n\n```bash\ncarthage update --platform iOS\n```\n\nFinally, drag the built `.framework` binaries for `MetalBender`, `MetalPerformanceShadersProxy` and `SwiftProtobuf` to your application's Xcode project.\n\n## Author\n\n* [Xmartlabs SRL](https:\u002F\u002Fgithub.com\u002Fxmartlabs) ([@xmartlabs](https:\u002F\u002Ftwitter.com\u002Fxmartlabs))\n\n\n# Change Log\n\nThis can be found in the [CHANGELOG.md](CHANGELOG.md) file.\n\n\u003C!-- Links -->\n[Xmartlabs]: http:\u002F\u002Fxmartlabs.com\n[Importing]: Documentation\u002FImporting.md\n[CONTRIBUTING]: .github\u002FCONTRIBUTING.md\n[API]: Documentation\u002FAPI.md\n[Supported Layers]: Documentation\u002FSupported_Layers.md\n\n\n## License\n[![FOSSA Status](https:\u002F\u002Fapp.fossa.io\u002Fapi\u002Fprojects\u002Fgit%2Bgithub.com%2Fxmartlabs%2FBender.svg?type=large)](https:\u002F\u002Fapp.fossa.io\u002Fprojects\u002Fgit%2Bgithub.com%2Fxmartlabs%2FBender?ref=badge_large)\n\n## Citation\nIf you use this code in your research please cite us:\n\n```bibtex\n@misc{xmartlabs-2017-bender,\n  author = {Mathias Claassen and Santiago Castro},\n  title = {Bender: Easily craft fast Neural Networks on {iOS}!},\n  year = {2017},\n  publisher = {GitHub},\n  journal = {GitHub repository},\n  howpublished = {\\url{https:\u002F\u002Fxmartlabs.github.io\u002FBender\u002F}}\n}\n```\n","# Bender\n\n\u003Cp align=\"left\">\n\u003Ca href=\"https:\u002F\u002Ftravis-ci.org\u002Fxmartlabs\u002FBender\">\u003Cimg src=\"https:\u002F\u002Ftravis-ci.org\u002Fxmartlabs\u002FBender.svg?branch=master\" alt=\"构建状态\" \u002F>\u003C\u002Fa>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatform-iOS-blue.svg?style=flat\" alt=\"平台 iOS\" \u002F>\n\u003Ca href=\"https:\u002F\u002Fdeveloper.apple.com\u002Fswift\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fswift4-compatible-4BC51D.svg?style=flat\" alt=\"Swift 4 兼容\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fcocoapods.org\u002Fpods\u002FMetalBender\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fcocoapods\u002Fv\u002FMetalBender.svg\" alt=\"CocoaPods 兼容\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCarthage\u002FCarthage\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCarthage-compatible-4BC51D.svg?style=flat\" alt=\"Carthage 兼容\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fxmartlabs\u002FBender\u002Fmaster\u002FLICENSE\">\u003Cimg src=\"http:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg?style=flat\" alt=\"许可证：MIT\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fapp.fossa.io\u002Fprojects\u002Fgit%2Bgithub.com%2Fxmartlabs%2FBender?ref=badge_shield\" alt=\"FOSSA 状态\">\u003Cimg src=\"https:\u002F\u002Fapp.fossa.io\u002Fapi\u002Fprojects\u002Fgit%2Bgithub.com%2Fxmartlabs%2FBender.svg?type=shield\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n![Bender](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxmartlabs_Bender_readme_cf5e2f475ff3.png)\n\nBender 是一个基于 MetalPerformanceShaders 的抽象层，可用于处理神经网络。\n\n## 目录\n* [简介](#introduction)\n* [为什么我们需要 Bender](#why)\n* [基本用法](#usage)\n* [要求](#requirements)\n* [参与方式](#getting-involved)\n* [示例](#examples)\n* [安装](#installation)\n* [更新日志](#change-log)\n\n文档位于 `Documentation` 文件夹中：\n* [API](Documentation\u002FAPI.md) 包含入门所需的重要信息。\n* [支持的层] 说明了哪些层受支持以及它们如何映射到 TensorFlow 操作。\n* [导入] 解释了如何从 TensorFlow 等其他框架导入模型。您还可以找到有关如何为自定义实现增强此功能的信息。\n\n## 简介\n\nBender 是一个基于 MetalPerformanceShaders 的抽象层，用于处理神经网络。在人工智能领域，即使训练过程已在其他设备上完成，人们也越来越关注在移动设备上运行神经网络。我们希望让每个人都能更轻松地在 iOS 上运行预训练的网络。\n\nBender 允许您使用最常见的层（如卷积、池化、全连接层以及一些归一化层等）轻松定义和运行神经网络。它在接收这些层的参数方面也非常灵活。\n\n我们还希望支持加载在 TensorFlow 或 Caffe2 等其他框架上训练的模型。目前，Bender 包含一个 TensorFlow 适配器，可以加载带有变量的图，并将其“转换”为 Bender 层。此功能支持 TensorFlow 的一部分操作，但我们计划进一步扩展以覆盖更多情况。\n\n## 为什么我们需要 Bender？ \u003Ca name=\"why\">\u003C\u002Fa>\n\n在 [Xmartlabs]，我们正准备启动一个机器学习项目，并研究在 iOS 上可用的框架。我们发现 MetalPerformanceShaders 非常有用，但不太易于使用，而且我们发现自己需要重复很多代码和信息。因此，我们开始构建一个框架来处理这类问题。\n\n此外，我们还编写脚本来将我们在 TensorFlow 中训练的模型转换为可在 iOS 上使用的格式。这意味着要将权重转置为 MPSCNN 格式，并将 TensorFlow 中不同层的参数映射到 MPSCNN 内核所使用的参数。虽然 TensorFlow 可以编译为 iOS 版本，但它目前不支持在 GPU 上运行，而我们正是希望这样做。同时，我们也并不想将 TensorFlow 的静态库引入到我们的项目中。这就是为什么我们开始开发一个适配器，用于解析 TF 图并将其转换为我们的 Bender 层。\n\n## 使用方法\n\n您可以在 Bender 中使用我们自定义的操作符定义自己的网络，也可以加载从 TensorFlow 导出的模型。定义网络和加载模型的方式如下：\n\n```swift\nimport MetalBender\n\nlet url = Bundle.main.url(forResource: \"myModel\", withExtension: \"pb\")! \u002F\u002F 一个 TensorFlow 模型。\nlet network = Network.load(url: url, inputSize: LayerSize(h: 256, w: 256, f: 3))\n\nnetwork.run(input: \u002F* ... *\u002F) { output in\n    \u002F\u002F ...\n}\n```\n\n有关更多信息，请参阅 [导入](Documentation\u002FImporting.md)。\n\n如果您想自己定义网络，可以这样操作：\n\n```swift\nlet network = Network(inputSize: LayerSize(h: 256, w: 256, f: 3))\n\nnetwork.start\n    ->> Convolution(convSize: ConvSize(outputChannels: 16, kernelSize: 3, stride: 2))\n    ->> InstanceNorm()\n    ->> Convolution(convSize: ConvSize(outputChannels: 32, kernelSize: 3, stride: 2), neuronType: .relu)\n    ->> InstanceNorm()\n    ->> FullyConnected(neurons: 128)\n    ->> Neuron(type: .tanh)\n    ->> FullyConnected(neurons: 10)\n    ->> Softmax()\n\u002F\u002F ...\n```\n\n完成所有层的定义后：\n\n```swift\nnetwork.initialize()\n```\n\n有关更多信息，请参阅 [API](Documentation\u002FAPI.md)。\n\n## 要求\n\n* Xcode 9\n* iOS 11.0 及以上版本（但部署目标为 iOS 10.0，因此也支持 iOS 10）\n\n## 参与方式\n\n* 如果您 **想贡献代码**，请随时 **提交拉取请求**。\n* 如果您 **有功能需求**，请 **新建议题**。\n* 如果您 **发现了 bug** 或者需要 **帮助**，请在提交议题之前先查看 **旧的议题、常见问题解答 (FAQ)** 以及 [StackOverflow](https:\u002F\u002Fstackoverflow.com) 上的相关讨论。\n\n在贡献之前，请查阅 [CONTRIBUTING] 文件以获取更多信息。\n\n如果您在应用中使用了 **Bender**，我们非常希望能听到您的反馈！请通过 [Twitter](https:\u002F\u002Ftwitter.com\u002Fxmartlabs) 与我们联系。\n\n## 示例\n\n按照以下步骤运行示例：\n* 克隆 Bender 仓库（或下载）。\n* 在下载的文件夹中运行 `carthage update --platform iOS`。\n* 打开 Bender 工作区并运行 *Example* 项目。\n\n> 其中有一个图像识别示例，包含 Bender 和 CoreML 中的 MobileNet 模型。它还设置了一个 Inception 模型的运行环境，但您需要单独下载该模型，因为它接近 100 MB。您可以从 http:\u002F\u002Fdownload.tensorflow.org\u002Fmodels\u002Finception_v3_2016_08_28.tar.gz 下载，然后将其冻结并添加到“Example”Xcode 项目中，命名为 ‘inception_v3.pb’。\n\n## 安装\n\n#### CocoaPods\n\n要安装 Bender，只需在您的 Podfile 中添加以下行：\n\n```ruby\npod 'MetalBender', '~> 0.5'\n```\n\n> 请注意，Bender 编译的目标是 iOS 10。因此，您必须在 Podfile 中添加 `platform :ios, '10.0'`。\n\n#### Carthage\n\n[Carthage](https:\u002F\u002Fgithub.com\u002FCarthage\u002FCarthage) 是一个简单且去中心化的 Cocoa 依赖管理工具。\n\n要安装 Bender，只需在您的 Cartfile 中添加以下行：\n\n```ogdl\ngithub \"xmartlabs\u002FBender\" ~> 0.5\n```\n\n然后运行：\n\n```bash\ncarthage update --platform iOS\n```\n\n最后，将构建好的 `.framework` 二进制文件——`MetalBender`、`MetalPerformanceShadersProxy` 和 `SwiftProtobuf`——拖放到您的应用程序 Xcode 项目中。\n\n## 作者\n\n* [Xmartlabs SRL](https:\u002F\u002Fgithub.com\u002Fxmartlabs) ([@xmartlabs](https:\u002F\u002Ftwitter.com\u002Fxmartlabs))\n\n\n# 更改日志\n\n详情请参阅 [CHANGELOG.md](CHANGELOG.md) 文件。\n\n\u003C!-- 链接 -->\n[Xmartlabs]: http:\u002F\u002Fxmartlabs.com\n[导入]: Documentation\u002FImporting.md\n[贡献指南]: .github\u002FCONTRIBUTING.md\n[API]: Documentation\u002FAPI.md\n[支持的层]: Documentation\u002FSupported_Layers.md\n\n\n## 许可证\n[![FOSSA 状态](https:\u002F\u002Fapp.fossa.io\u002Fapi\u002Fprojects\u002Fgit%2Bgithub.com%2Fxmartlabs%2FBender.svg?type=large)](https:\u002F\u002Fapp.fossa.io\u002Fprojects\u002Fgit%2Bgithub.com%2Fxmartlabs%2FBender?ref=badge_large)\n\n## 引用\n如果您在研究中使用此代码，请引用我们：\n\n```bibtex\n@misc{xmartlabs-2017-bender,\n  author = {Mathias Claassen 和 Santiago Castro},\n  title = {Bender：轻松构建高效的 iOS 神经网络！},\n  year = {2017},\n  publisher = {GitHub},\n  journal = {GitHub 仓库},\n  howpublished = {\\url{https:\u002F\u002Fxmartlabs.github.io\u002FBender\u002F}}\n}\n```","# Bender 快速上手指南\n\nBender 是一个构建在 MetalPerformanceShaders 之上的抽象层，旨在让开发者能够轻松地在 iOS 设备上定义和运行神经网络。它支持从 TensorFlow 导入模型，也允许使用 Swift 代码原生构建网络。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: macOS\n*   **开发工具**: Xcode 9 或更高版本\n*   **目标平台**: iOS 11.0+ (部署目标可低至 iOS 10.0)\n*   **语言支持**: Swift 4+\n*   **依赖管理**: CocoaPods 或 Carthage (二选一)\n\n> **注意**：由于底层依赖 MetalPerformanceShaders，该库仅适用于具备 GPU 加速能力的 iOS 设备或模拟器。\n\n## 安装步骤\n\n您可以选择 **CocoaPods** 或 **Carthage** 进行安装。\n\n### 方式一：使用 CocoaPods (推荐)\n\n1.  打开项目的 `Podfile` 文件。\n2.  确保平台版本设置为 `10.0` 或以上，并添加 `MetalBender` 依赖：\n\n    ```ruby\n    platform :ios, '10.0'\n    target 'YourAppTargetName' do\n      pod 'MetalBender', '~> 0.5'\n    end\n    ```\n\n3.  在终端执行安装命令：\n\n    ```bash\n    pod install\n    ```\n\n### 方式二：使用 Carthage\n\n1.  打开项目根目录下的 `Cartfile` 文件。\n2.  添加以下内容：\n\n    ```ogdl\n    github \"xmartlabs\u002FBender\" ~> 0.5\n    ```\n\n3.  在终端执行更新命令：\n\n    ```bash\n    carthage update --platform iOS\n    ```\n\n4.  将生成的 `MetalBender.framework`、`MetalPerformanceShadersProxy.framework` 和 `SwiftProtobuf.framework` 拖入 Xcode 项目的 \"Frameworks, Libraries, and Embedded Content\" 中，并确保设置为 \"Embed & Sign\"。\n\n## 基本使用\n\nBender 支持两种主要的使用方式：加载预训练的 TensorFlow 模型或使用 Swift 链式调用原生构建网络。\n\n### 场景一：加载 TensorFlow 模型\n\n如果您已经有一个训练好的 `.pb` 格式 TensorFlow 模型，可以直接加载并运行：\n\n```swift\nimport MetalBender\n\n\u002F\u002F 加载 bundled 中的模型文件\nlet url = Bundle.main.url(forResource: \"myModel\", withExtension: \"pb\")! \nlet network = Network.load(url: url, inputSize: LayerSize(h: 256, w: 256, f: 3))\n\n\u002F\u002F 运行网络\nnetwork.run(input: \u002F* 输入数据 *\u002F) { output in\n    \u002F\u002F 处理输出结果\n    print(\"Inference completed\")\n}\n```\n\n### 场景二：原生定义网络结构\n\n您也可以使用 Bender 提供的操作符直接在代码中构建神经网络：\n\n```swift\nimport MetalBender\n\n\u002F\u002F 初始化网络，定义输入尺寸 (高 256, 宽 256, 通道 3)\nlet network = Network(inputSize: LayerSize(h: 256, w: 256, f: 3))\n\n\u002F\u002F 使用链式语法构建层\nnetwork.start\n    ->> Convolution(convSize: ConvSize(outputChannels: 16, kernelSize: 3, stride: 2))\n    ->> InstanceNorm()\n    ->> Convolution(convSize: ConvSize(outputChannels: 32, kernelSize: 3, stride: 2), neuronType: .relu)\n    ->> InstanceNorm()\n    ->> FullyConnected(neurons: 128)\n    ->> Neuron(type: .tanh)\n    ->> FullyConnected(neurons: 10)\n    ->> Softmax()\n\n\u002F\u002F 初始化网络以准备运行\nnetwork.initialize()\n\n\u002F\u002F 运行网络\nnetwork.run(input: \u002F* 输入数据 *\u002F) { output in\n    \u002F\u002F 处理输出结果\n}\n```\n\n完成上述步骤后，即可在 iOS 应用中利用 GPU 加速执行推理任务。更多高级用法（如自定义层映射、权重导入细节）请参考项目文档中的 `API.md` 和 `Importing.md`。","某医疗科技团队正在开发一款 iOS 端皮肤癌筛查应用，需要在手机上实时运行深度学习模型以分析用户拍摄的皮肤照片。\n\n### 没有 Bender 时\n- **开发门槛极高**：直接调用 Apple 底层的 MetalPerformanceShaders (MPS) 需要编写大量繁琐的底层代码，开发者需手动管理复杂的内存和图形管线。\n- **模型迁移困难**：训练好的 TensorFlow 模型无法直接在 iOS GPU 上运行，团队必须编写自定义脚本手动转换权重格式并映射层参数，极易出错。\n- **性能与体积失衡**：若强行集成完整的 TensorFlow 静态库以支持推理，会导致应用安装包体积剧增，且无法利用 iOS 设备的 GPU 加速，推理延迟高。\n- **维护成本高昂**：每次更新神经网络结构都需要重复修改底层 MPS 调用代码，缺乏灵活的抽象层来快速迭代实验。\n\n### 使用 Bender 后\n- **开发效率飞跃**：Bender 提供了简洁的 Swift 接口封装 MPS，开发者只需几行代码即可定义卷积、池化等常见网络层，无需关注底层细节。\n- **无缝模型导入**：利用内置的 TensorFlow 适配器，可直接加载训练好的模型文件，自动完成权重转置和算子映射，实现了从训练到部署的平滑过渡。\n- **极致性能表现**：Bender 底层完全基于 Metal 优化，既避免了引入庞大的 TensorFlow 库，又充分激发了 iPhone GPU 的算力，实现毫秒级实时推理。\n- **灵活迭代升级**：支持通过代码动态构建网络或加载外部模型，团队可以快速调整网络结构进行 A\u002FB 测试，大幅缩短研发周期。\n\nBender 让 iOS 开发者能像搭积木一样轻松部署高性能神经网络，真正实现了“云端训练，端侧智能”的落地闭环。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxmartlabs_Bender_cf5e2f47.png","xmartlabs","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fxmartlabs_1e2f0cf2.png","",null,"getintouch@xmartlabs.com","https:\u002F\u002Fxmartlabs.com","https:\u002F\u002Fgithub.com\u002Fxmartlabs",[80,84,88,92],{"name":81,"color":82,"percentage":83},"Swift","#F05138",89.4,{"name":85,"color":86,"percentage":87},"Metal","#8f14e9",8.3,{"name":89,"color":90,"percentage":91},"Objective-C","#438eff",2.1,{"name":93,"color":94,"percentage":95},"Ruby","#701516",0.2,1801,89,"2026-03-27T08:15:18","MIT",4,"macOS","需要支持 Metal 的 iOS GPU (通过 MetalPerformanceShaders)，无需 NVIDIA GPU 或 CUDA","未说明",{"notes":105,"python":106,"dependencies":107},"该工具是专为 iOS 开发的神经网络抽象层，使用 Swift 语言。开发环境需 macOS 和 Xcode 9+，运行目标为 iOS 10.0 及以上（推荐 iOS 11.0+）。不支持 Linux 或 Windows。依赖管理可通过 CocoaPods 或 Carthage 进行。","不适用 (基于 Swift)",[108,109,110,111],"Xcode 9+","iOS 10.0+","MetalPerformanceShaders","SwiftProtobuf",[14],[114,115,116,117,118,119,120,121,122,123,124],"machine-learning","neural-networks","metal","apple","iphone","ios","convolutional-neural-networks","deep-learning","swift","deep-neural-networks","residual-networks","2026-03-27T02:49:30.150509","2026-04-17T09:53:28.652828",[128,133,137,142,146,151],{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},36972,"风格迁移示例模型（q_and_w.pb 等）是从哪里获取的？如何自己训练类似的模型？","这些模型是使用 Google 的转换器并经过一些调整和补充生成的。你可以参考以下资源来创建类似的快速风格迁移模型：\n1. 教程文章：https:\u002F\u002Fmedium.com\u002F@rambossa\u002Fdiy-prisma-fast-style-transfer-app-with-coreml-and-tensorflow-817c3b90dacd\n2. 代码实现：https:\u002F\u002Fgithub.com\u002Fmdramos\u002Ffast-style-transfer-coreml","https:\u002F\u002Fgithub.com\u002Fxmartlabs\u002FBender\u002Fissues\u002F49",{"id":134,"question_zh":135,"answer_zh":136,"source_url":132},36973,"为什么量化后的图（Quantized graph）无法在 Bender 中工作？输入尺寸会有影响吗？","量化后的图目前无法工作，因为 Bender 尚不支持 int8 数据类型。通常情况下，输入尺寸不是导致问题的原因。如果需要探索 .pb 文件结构以排查问题，建议使用 TensorBoard 工具进行可视化查看。",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},36974,"风格迁移示例在 iOS 11 上无法运行或报错怎么办？","该问题通常与 iOS 版本兼容性有关。解决方案是更新到最新版本的 Xcode Beta 版。此外，有用户确认该示例在 iOS 10 上配合最新的 Pull Request 分支可以正常运行，而在 iOS 11 早期版本中可能会出现未知输入错误。","https:\u002F\u002Fgithub.com\u002Fxmartlabs\u002FBender\u002Fissues\u002F42",{"id":143,"question_zh":144,"answer_zh":145,"source_url":141},36975,"使用大于 256x256 的图片时，风格化图像为什么会重复显示（如出现 4 列）？","这是一个已知的潜在 Bug。维护者建议如果检测到此类图像复制异常，应该单独开启一个新的 Issue 进行报告，以便团队追踪修复。目前暂无官方提供的具体代码变通方案。",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},36976,"运行 Example.ConcatTest 时报错\"Unable to create pipeline state, check metal shaders\"如何解决？","此错误通常与设备型号和 iOS 版本有关。有用户确认在 iPhone 6 上测试 iOS 11 Beta 3 时会出现此 Metal Shader 编译错误，但在 iOS 10 上可以正常工作。此外，该问题在 iPhone 7 上未复现，表明可能是特定旧机型在新系统上的兼容性问题。建议尝试降级至 iOS 10 或在较新的设备上运行。","https:\u002F\u002Fgithub.com\u002Fxmartlabs\u002FBender\u002Fissues\u002F38",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},36977,"Bender 是否支持 TensorFlow Magenta 的 .mag 文件或 RNN\u002FLSTM 模型？","Bender 目前更适合处理图像相关的模型，而不支持 vanilla RNN 或 LSTM 类型的 TensorFlow 模型。主要限制在于 Bender 要求 TF 图必须是无环的（cycle free），而 Magenta 等模型中的控制流操作（如 if, while, map 等）通常会生成循环，导致无法加载。因此，目前不建议尝试在 Bender 中运行此类模型。","https:\u002F\u002Fgithub.com\u002Fxmartlabs\u002FBender\u002Fissues\u002F21",[157,162,167,172,177,182],{"id":158,"version":159,"summary_zh":160,"released_at":161},297388,"0.5.0","新增：\n\n* 批量归一化（BatchNorm）\n* 多输入支持\n* 在 iOS 11 中添加对深度可分离卷积和空洞卷积的支持\n* 将部分内核改为使用半精度浮点数而非单精度浮点数运行\n* 默认使用 MPSTemporaryImage\n\n以及一些修复。","2018-05-22T14:48:24",{"id":163,"version":164,"summary_zh":165,"released_at":166},297389,"0.4.1","支持 Xcode 9.1","2017-11-14T14:40:41",{"id":168,"version":169,"summary_zh":170,"released_at":171},297390,"0.4.0","- 增加对 Xcode 9（Swift 4.0）的支持","2017-11-01T17:54:40",{"id":173,"version":174,"summary_zh":175,"released_at":176},297391,"0.3.0","* 重大变更：\n  * `LayerSize` 的构造函数。\n  * `Network` 类的构造函数。\n  * `Network` 类用于从 TensorFlow 加载图的静态方法。\n  * `Network` 类的 `run` 方法。\n  * `Converter` 协议的定义。","2017-08-17T16:42:55",{"id":178,"version":179,"summary_zh":180,"released_at":181},297392,"0.2.0","* 增加了对 CocoaPods 和 Carthage 的支持。\n* 引入了 [MetalPerformanceShadersProxy](https:\u002F\u002Fgithub.com\u002Fxmartlabs\u002FMetalPerformanceShadersProxy)，以便在模拟器上进行编译。\n* 增加了对 Concat 层的支持。\n* 从 ResidualLayer 中移除了 “convSize” 构造函数参数。\n* 修复了优化 TensorFlow 图时的顺序问题。\n* 修复了内存使用问题。\n* 修复了 ConvTranspose 层。\n* 添加了可选的执行队列，用于指定运行上下文。","2017-08-09T16:27:26",{"id":183,"version":184,"summary_zh":185,"released_at":186},297393,"0.1.0","这是本德的出生。","2017-06-05T17:46:16"]