[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-tiny-dnn--tiny-dnn":3,"tool-tiny-dnn--tiny-dnn":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},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",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":67,"owner_name":67,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":77,"owner_email":77,"owner_twitter":77,"owner_website":77,"owner_url":78,"languages":79,"stars":100,"forks":101,"last_commit_at":102,"license":103,"difficulty_score":104,"env_os":105,"env_gpu":106,"env_ram":107,"env_deps":108,"category_tags":113,"github_topics":114,"view_count":23,"oss_zip_url":77,"oss_zip_packed_at":77,"status":16,"created_at":119,"updated_at":120,"faqs":121,"releases":162},3343,"tiny-dnn\u002Ftiny-dnn","tiny-dnn","header only, dependency-free deep learning framework in C++14","tiny-dnn 是一个基于 C++14 的轻量级深度学习框架，专为资源受限的环境设计。它无需安装任何外部依赖，仅需包含头文件即可在支持 C++14 编译器的任意平台上运行，非常适合嵌入式系统、物联网设备以及无法使用 GPU 的计算场景。\n\n针对传统深度学习框架体积庞大、部署困难的问题，tiny-dnn 提供了极简的解决方案。它不仅去除了复杂的安装步骤，还通过 TBB 多线程和 SSE\u002FAVX 向量优化技术，确保了在无 GPU 环境下依然拥有合理的训练速度（例如在普通笔记本上约 13 分钟即可完成 MNIST 数据集训练）。此外，其设计注重稳定性与可预测性，支持恒定吞吐量且不会抛出异常，便于集成到对实时性要求高的实际应用中。\n\n这款工具主要面向 C++ 开发者、嵌入式工程师以及希望深入理解神经网络底层原理的研究人员。对于想要学习深度学习内部机制的教育者而言，其简洁的代码结构也是极佳的教学素材。虽然项目目前处于寻求新维护者的状态，但其支持的卷积、池化、批归一化等多种网络层及丰富的激活函数，仍使其成为构建小型神经网络的实用选择。","\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftiny-dnn_tiny-dnn_readme_81f292cf0b71.png\">\u003Cbr>\u003Cbr>\n\u003C\u002Fdiv>\n\n-----------------\n\n[![Maintainers Wanted](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fmaintainers-wanted-red.svg)](https:\u002F\u002Fgithub.com\u002Fpickhardt\u002Fmaintainers-wanted)\n\n## The project may be abandoned since the maintainer(s) are just looking to move on. In the case anyone is interested in continuing the project, let us know so that we can discuss next steps.\n## Please visit: https:\u002F\u002Fgroups.google.com\u002Fforum\u002F#!forum\u002Ftiny-dnn-dev\n\n-----------------\n\n[![Join the chat at https:\u002F\u002Fgitter.im\u002Ftiny-dnn\u002Fusers](https:\u002F\u002Fbadges.gitter.im\u002Ftiny-dnn\u002Fusers.svg)](https:\u002F\u002Fgitter.im\u002Ftiny-dnn\u002Fusers) [![Docs](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-latest-blue.svg)](http:\u002F\u002Ftiny-dnn.readthedocs.io\u002F) [![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-BSD--3--Clause-blue.svg)](https:\u002F\u002Fraw.githubusercontent.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Fmaster\u002FLICENSE) [![Coverage Status](https:\u002F\u002Fcoveralls.io\u002Frepos\u002Fgithub\u002Ftiny-dnn\u002Ftiny-dnn\u002Fbadge.svg?branch=master)](https:\u002F\u002Fcoveralls.io\u002Fgithub\u002Ftiny-dnn\u002Ftiny-dnn?branch=master)\n\n**tiny-dnn** is a C++14 implementation of deep learning. It is suitable for deep learning on limited computational resource, embedded systems and IoT devices.\n\n| **`Linux\u002FMac OS`** | **`Windows`** |\n|------------------|-------------|\n|[![Build Status](https:\u002F\u002Ftravis-ci.org\u002Ftiny-dnn\u002Ftiny-dnn.svg?branch=master)](https:\u002F\u002Ftravis-ci.org\u002Ftiny-dnn\u002Ftiny-dnn)|[![Build status](https:\u002F\u002Fci.appveyor.com\u002Fapi\u002Fprojects\u002Fstatus\u002Fa5syoifm8ct7b4l2?svg=true)](https:\u002F\u002Fci.appveyor.com\u002Fproject\u002Ftinydnn\u002Ftiny-dnn)|\n\n## Table of contents\n\n* [Features](#features)\n* [Comparison with other libraries](#comparison-with-other-libraries)\n* [Supported networks](#supported-networks)\n* [Dependencies](#dependencies)\n* [Build](#build)\n* [Examples](#examples)\n* [Contributing](#contributing)\n* [References](#references)\n* [License](#license)\n* [Gitter rooms](#gitter-rooms)\n\nCheck out the [documentation](http:\u002F\u002Ftiny-dnn.readthedocs.io\u002F) for more info.\n\n## What's New\n- 2016\u002F11\u002F30 [v1.0.0a3 is released!](https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Ftree\u002Fv1.0.0a3)\n- 2016\u002F9\u002F14 [tiny-dnn v1.0.0alpha is released!](https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Freleases\u002Ftag\u002Fv1.0.0a)\n- 2016\u002F8\u002F7  tiny-dnn is now moved to organization account, and renamed into tiny-dnn :)\n- 2016\u002F7\u002F27 [tiny-dnn v0.1.1 released!](https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Freleases\u002Ftag\u002Fv0.1.1)\n\n## Features\n- Reasonably fast, without GPU:\n    - With TBB threading and SSE\u002FAVX vectorization.\n    - 98.8% accuracy on MNIST in 13 minutes training (@Core i7-3520M).\n- Portable & header-only:\n    - Runs anywhere as long as you have a compiler which supports C++14.\n    - Just include tiny_dnn.h and write your model in C++. There is nothing to install.\n- Easy to integrate with real applications:\n    - No output to stdout\u002Fstderr.\n    - A constant throughput (simple parallelization model, no garbage collection).\n    - Works without throwing an exception.\n    - [Can import caffe's model](https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Ftree\u002Fmaster\u002Fexamples\u002Fcaffe_converter).\n- Simply implemented:\n    - A good library for learning neural networks.\n\n## Comparison with other libraries\n\nPlease see [wiki page](https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Fwiki\u002FComparison-with-other-libraries).\n\n## Supported networks\n### layer-types\n- core\n    - fully connected\n    - dropout\n    - linear operation\n    - zero padding\n    - power\n- convolution\n    - convolutional\n    - average pooling\n    - max pooling\n    - deconvolutional\n    - average unpooling\n\t- max unpooling\n- normalization\n    - contrast normalization (only forward pass)\n    - batch normalization\n- split\u002Fmerge\n    - concat\n    - slice\n    - elementwise-add\n\n### activation functions\n* tanh\n* asinh\n* sigmoid\n* softmax\n* softplus\n* softsign\n* rectified linear(relu)\n* leaky relu\n* identity\n* scaled tanh\n* exponential linear units(elu)\n* scaled exponential linear units (selu)\n\n### loss functions\n* cross-entropy\n* mean squared error\n* mean absolute error\n* mean absolute error with epsilon range\n\n### optimization algorithms\n* stochastic gradient descent (with\u002Fwithout L2 normalization)\n* momentum and Nesterov momentum\n* adagrad\n* rmsprop\n* adam\n* adamax\n\n## Dependencies\nNothing. All you need is a C++14 compiler (gcc 4.9+, clang 3.6+ or VS 2015+).\n\n## Build\ntiny-dnn is header-only, so *there's nothing to build*. If you want to execute sample program or unit tests, you need to install [cmake](https:\u002F\u002Fcmake.org\u002F) and type the following commands:\n\n```\ncmake . -DBUILD_EXAMPLES=ON\nmake\n```\n\nThen change to `examples` directory and run executable files.\n\nIf you would like to use IDE like Visual Studio or Xcode, you can also use cmake to generate corresponding files:\n\n```\ncmake . -G \"Xcode\"            # for Xcode users\ncmake . -G \"NMake Makefiles\"  # for Windows Visual Studio users\n```\n\nThen open .sln file in visual studio and build(on windows\u002Fmsvc), or type ```make``` command(on linux\u002Fmac\u002Fwindows-mingw).\n\nSome cmake options are available:\n\n|options|description|default|additional requirements to use|\n|-----|-----|----|----|\n|USE_TBB|Use [Intel TBB](https:\u002F\u002Fwww.threadingbuildingblocks.org\u002F) for parallelization|OFF\u003Csup>1\u003C\u002Fsup>|[Intel TBB](https:\u002F\u002Fwww.threadingbuildingblocks.org\u002F)|\n|USE_OMP|Use OpenMP for parallelization|OFF\u003Csup>1\u003C\u002Fsup>|[OpenMP Compiler](http:\u002F\u002Fopenmp.org\u002Fwp\u002Fopenmp-compilers\u002F)|\n|USE_SSE|Use Intel SSE instruction set|ON|Intel CPU which supports SSE|\n|USE_AVX|Use Intel AVX instruction set|ON|Intel CPU which supports AVX|\n|USE_AVX2|Build tiny-dnn with AVX2 library support|OFF|Intel CPU which supports AVX2|\n|USE_NNPACK|Use NNPACK for convolution operation|OFF|[Acceleration package for neural networks on multi-core CPUs](https:\u002F\u002Fgithub.com\u002FMaratyszcza\u002FNNPACK)|\n|USE_OPENCL|Enable\u002FDisable OpenCL support (experimental)|OFF|[The open standard for parallel programming of heterogeneous systems](https:\u002F\u002Fwww.khronos.org\u002Fopencl\u002F)|\n|USE_LIBDNN|Use Greentea LibDNN for convolution operation with GPU via OpenCL (experimental)|OFF|[An universal convolution implementation supporting CUDA and OpenCL](https:\u002F\u002Fgithub.com\u002Fnaibaf7\u002Flibdnn)|\n|USE_SERIALIZER|Enable model serialization|ON\u003Csup>2\u003C\u002Fsup>|-|\n|USE_DOUBLE|Use double precision computations instead of single precision|OFF|-|\n|USE_ASAN|Use Address Sanitizer|OFF|clang or gcc compiler|\n|USE_IMAGE_API|Enable Image API support|ON|-|\n|USE_GEMMLOWP|Enable gemmlowp support|OFF|-|\n|BUILD_TESTS|Build unit tests|OFF\u003Csup>3\u003C\u002Fsup>|-|\n|BUILD_EXAMPLES|Build example projects|OFF|-|\n|BUILD_DOCS|Build documentation|OFF|[Doxygen](http:\u002F\u002Fwww.doxygen.org\u002F)|\n|PROFILE|Build unit tests|OFF|gprof|\n\n\u003Csup>1\u003C\u002Fsup> tiny-dnn use C++14 standard library for parallelization by default.\n\n\u003Csup>2\u003C\u002Fsup> If you don't use serialization, you can switch off to speedup compilation time.\n\n\u003Csup>3\u003C\u002Fsup> tiny-dnn uses [Google Test](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fgoogletest) as default framework to run unit tests. No pre-installation required, it's  automatically downloaded during CMake configuration.\n\nFor example, type the following commands if you want to use Intel TBB and build tests:\n```bash\ncmake -DUSE_TBB=ON -DBUILD_TESTS=ON .\n```\n\n## Customize configurations\nYou can edit include\u002Fconfig.h to customize default behavior.\n\n## Examples\nConstruct convolutional neural networks\n\n```cpp\n#include \"tiny_dnn\u002Ftiny_dnn.h\"\nusing namespace tiny_dnn;\nusing namespace tiny_dnn::activation;\nusing namespace tiny_dnn::layers;\n\nvoid construct_cnn() {\n    using namespace tiny_dnn;\n\n    network\u003Csequential> net;\n\n    \u002F\u002F add layers\n    net \u003C\u003C conv(32, 32, 5, 1, 6) \u003C\u003C tanh()  \u002F\u002F in:32x32x1, 5x5conv, 6fmaps\n        \u003C\u003C ave_pool(28, 28, 6, 2) \u003C\u003C tanh() \u002F\u002F in:28x28x6, 2x2pooling\n        \u003C\u003C fc(14 * 14 * 6, 120) \u003C\u003C tanh()   \u002F\u002F in:14x14x6, out:120\n        \u003C\u003C fc(120, 10);                     \u002F\u002F in:120,     out:10\n\n    assert(net.in_data_size() == 32 * 32);\n    assert(net.out_data_size() == 10);\n\n    \u002F\u002F load MNIST dataset\n    std::vector\u003Clabel_t> train_labels;\n    std::vector\u003Cvec_t> train_images;\n\n    parse_mnist_labels(\"train-labels.idx1-ubyte\", &train_labels);\n    parse_mnist_images(\"train-images.idx3-ubyte\", &train_images, -1.0, 1.0, 2, 2);\n\n    \u002F\u002F declare optimization algorithm\n    adagrad optimizer;\n\n    \u002F\u002F train (50-epoch, 30-minibatch)\n    net.train\u003Cmse, adagrad>(optimizer, train_images, train_labels, 30, 50);\n\n    \u002F\u002F save\n    net.save(\"net\");\n\n    \u002F\u002F load\n    \u002F\u002F network\u003Csequential> net2;\n    \u002F\u002F net2.load(\"net\");\n}\n```\nConstruct multi-layer perceptron (mlp)\n\n```cpp\n#include \"tiny_dnn\u002Ftiny_dnn.h\"\nusing namespace tiny_dnn;\nusing namespace tiny_dnn::activation;\nusing namespace tiny_dnn::layers;\n\nvoid construct_mlp() {\n    network\u003Csequential> net;\n\n    net \u003C\u003C fc(32 * 32, 300) \u003C\u003C sigmoid() \u003C\u003C fc(300, 10);\n\n    assert(net.in_data_size() == 32 * 32);\n    assert(net.out_data_size() == 10);\n}\n```\n\nAnother way to construct mlp\n\n```cpp\n#include \"tiny_dnn\u002Ftiny_dnn.h\"\nusing namespace tiny_dnn;\nusing namespace tiny_dnn::activation;\n\nvoid construct_mlp() {\n    auto mynet = make_mlp\u003Ctanh>({ 32 * 32, 300, 10 });\n\n    assert(mynet.in_data_size() == 32 * 32);\n    assert(mynet.out_data_size() == 10);\n}\n```\n\nFor more samples, read examples\u002Fmain.cpp or [MNIST example](https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Ftree\u002Fmaster\u002Fexamples\u002Fmnist) page.\n\n## Contributing\nSince deep learning community is rapidly growing, we'd love to get contributions from you to accelerate tiny-dnn development!\nFor a quick guide to contributing, take a look at the [Contribution Documents](CONTRIBUTING.md).\n\n## References\n[1] Y. Bengio, [Practical Recommendations for Gradient-Based Training of Deep Architectures.](http:\u002F\u002Farxiv.org\u002Fpdf\u002F1206.5533v2.pdf)\n    arXiv:1206.5533v2, 2012\n\n[2] Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner, [Gradient-based learning applied to document recognition.](http:\u002F\u002Fyann.lecun.com\u002Fexdb\u002Fpublis\u002Fpdf\u002Flecun-01a.pdf)\n    Proceedings of the IEEE, 86, 2278-2324.\n\nOther useful reference lists:\n- [UFLDL Recommended Readings](http:\u002F\u002Fdeeplearning.stanford.edu\u002Fwiki\u002Findex.php\u002FUFLDL_Recommended_Readings)\n- [deeplearning.net reading list](http:\u002F\u002Fdeeplearning.net\u002Freading-list\u002F)\n\n## License\nThe BSD 3-Clause License\n\n## Gitter rooms\nWe have gitter rooms for discussing new features & QA.\nFeel free to join us!\n\n\u003Ctable>\n\u003Ctr>\n    \u003Ctd>\u003Cb> developers \u003C\u002Fb>\u003C\u002Ftd>\n    \u003Ctd> https:\u002F\u002Fgitter.im\u002Ftiny-dnn\u002Fdevelopers \u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>\u003Cb> users \u003C\u002Fb>\u003C\u002Ftd>\n    \u003Ctd> https:\u002F\u002Fgitter.im\u002Ftiny-dnn\u002Fusers \u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n","\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftiny-dnn_tiny-dnn_readme_81f292cf0b71.png\">\u003Cbr>\u003Cbr>\n\u003C\u002Fdiv>\n\n-----------------\n\n[![寻求维护者](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fmaintainers-wanted-red.svg)](https:\u002F\u002Fgithub.com\u002Fpickhardt\u002Fmaintainers-wanted)\n\n## 该项目可能已被放弃，因为维护者正打算转向其他方向。如果有任何人对继续该项目感兴趣，请联系我们，以便我们讨论后续步骤。\n## 请访问：https:\u002F\u002Fgroups.google.com\u002Fforum\u002F#!forum\u002Ftiny-dnn-dev\n\n-----------------\n\n[![加入 https:\u002F\u002Fgitter.im\u002Ftiny-dnn\u002Fusers 的聊天室](https:\u002F\u002Fbadges.gitter.im\u002Ftiny-dnn\u002Fusers.svg)](https:\u002F\u002Fgitter.im\u002Ftiny-dnn\u002Fusers) [![文档](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-latest-blue.svg)](http:\u002F\u002Ftiny-dnn.readthedocs.io\u002F) [![许可证](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-BSD--3--Clause-blue.svg)](https:\u002F\u002Fraw.githubusercontent.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Fmaster\u002FLICENSE) [![覆盖率](https:\u002F\u002Fcoveralls.io\u002Frepos\u002Fgithub\u002Ftiny-dnn\u002Ftiny-dnn\u002Fbadge.svg?branch=master)](https:\u002F\u002Fcoveralls.io\u002Fgithub\u002Ftiny-dnn\u002Ftiny-dnn?branch=master)\n\n**tiny-dnn** 是一个基于 C++14 的深度学习实现。它非常适合在计算资源有限的环境中运行，例如嵌入式系统和物联网设备。\n\n| **`Linux\u002FMac OS`** | **`Windows`** |\n|------------------|-------------|\n|[![构建状态](https:\u002F\u002Ftravis-ci.org\u002Ftiny-dnn\u002Ftiny-dnn.svg?branch=master)](https:\u002F\u002Ftravis-ci.org\u002Ftiny-dnn\u002Ftiny-dnn)|[![构建状态](https:\u002F\u002Fci.appveyor.com\u002Fapi\u002Fprojects\u002Fstatus\u002Fa5syoifm8ct7b4l2?svg=true)](https:\u002F\u002Fci.appveyor.com\u002Fproject\u002Ftinydnn\u002Ftiny-dnn)|\n\n## 目录\n\n* [特性](#features)\n* [与其他库的比较](#comparison-with-other-libraries)\n* [支持的网络](#supported-networks)\n* [依赖项](#dependencies)\n* [构建](#build)\n* [示例](#examples)\n* [贡献](#contributing)\n* [参考文献](#references)\n* [许可证](#license)\n* [Gitter 聊天室](#gitter-rooms)\n\n更多详细信息请参阅 [文档](http:\u002F\u002Ftiny-dnn.readthedocs.io\u002F)。\n\n## 最新动态\n- 2016年11月30日 [v1.0.0a3 发布！](https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Ftree\u002Fv1.0.0a3)\n- 2016年9月14日 [tiny-dnn v1.0.0alpha 发布！](https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Freleases\u002Ftag\u002Fv1.0.0a)\n- 2016年8月7日 tiny-dnn 已迁移到组织账号，并更名为 tiny-dnn :)\n- 2016年7月27日 [tiny-dnn v0.1.1 发布！](https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Freleases\u002Ftag\u002Fv0.1.1)\n\n## 特性\n- 在没有 GPU 的情况下仍保持合理速度：\n    - 使用 TBB 多线程和 SSE\u002FAVX 向量化技术。\n    - 在 Core i7-3520M 上训练 MNIST 数据集仅需 13 分钟，准确率达到 98.8%。\n- 跨平台且纯头文件实现：\n    - 只要拥有支持 C++14 的编译器，即可在任何地方运行。\n    - 只需包含 tiny_dnn.h 文件，用 C++ 编写模型即可，无需安装任何额外组件。\n- 易于集成到实际应用中：\n    - 不向 stdout\u002Fstderr 输出信息。\n    - 具有稳定的吞吐量（简单的并行化模型，无垃圾回收）。\n    - 不会抛出异常。\n    - [可导入 Caffe 模型](https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Ftree\u002Fmaster\u002Fexamples\u002Fcaffe_converter)。\n- 实现简单：\n    - 是学习神经网络的理想库。\n\n## 与其他库的比较\n\n请参阅 [维基页面](https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Fwiki\u002FComparison-with-other-libraries)。\n\n## 支持的网络\n### 层类型\n- 核心层\n    - 全连接层\n    - Dropout 层\n    - 线性运算层\n    - 零填充层\n    - 幂运算层\n- 卷积层\n    - 卷积层\n    - 平均池化层\n    - 最大池化层\n    - 反卷积层\n    - 平均反池化层\n    - 最大反池化层\n- 归一化层\n    - 对比度归一化层（仅前向传播）\n    - 批量归一化层\n- 拆分\u002F合并层\n    - 拼接层\n    - 切片层\n    - 元素级相加层\n\n### 激活函数\n* tanh\n* asinh\n* sigmoid\n* softmax\n* softplus\n* softsign\n* 整流线性（ReLU）\n* 漏斗 ReLU\n* 恒等函数\n* 缩放 tanh\n* 指数线性单元（ELU）\n* 缩放指数线性单元（SELU）\n\n### 损失函数\n* 交叉熵\n* 均方误差\n* 平均绝对误差\n* 带 ε 范围的平均绝对误差\n\n### 优化算法\n* 随机梯度下降（带\u002F不带 L2 正则化）\n* 动量法及 Nesterov 动量法\n* Adagrad\n* RMSprop\n* Adam\n* Adamax\n\n## 依赖项\n无需任何依赖。你只需要一个支持 C++14 的编译器（gcc 4.9+、clang 3.6+ 或 VS 2015+）。\n\n## 构建\ntiny-dnn 是纯头文件库，因此 *无需构建*。如果想要运行示例程序或单元测试，你需要安装 [cmake](https:\u002F\u002Fcmake.org\u002F) 并输入以下命令：\n\n```\ncmake . -DBUILD_EXAMPLES=ON\nmake\n```\n\n然后切换到 `examples` 目录并运行可执行文件。\n\n如果你希望使用 Visual Studio 或 Xcode 等 IDE，也可以利用 cmake 生成相应的项目文件：\n\n```\ncmake . -G \"Xcode\"            # 对于 Xcode 用户\ncmake . -G \"NMake Makefiles\"  # 对于 Windows Visual Studio 用户\n```\n\n之后在 Visual Studio 中打开 `.sln` 文件进行构建（Windows\u002FMSVC），或者在 Linux\u002FmacOS\u002FWindows-MinGW 上输入 `make` 命令。\n\n以下是一些可用的 cmake 选项：\n\n|选项|描述|默认值|使用所需的附加条件|\n|-----|-----|----|----|\n|USE_TBB|使用 [Intel TBB](https:\u002F\u002Fwww.threadingbuildingblocks.org\u002F) 进行并行化|OFF\u003Csup>1\u003C\u002Fsup>|[Intel TBB](https:\u002F\u002Fwww.threadingbuildingblocks.org\u002F)|\n|USE_OMP|使用 OpenMP 进行并行化|OFF\u003Csup>1\u003C\u002Fsup>|[OpenMP 编译器](http:\u002F\u002Fopenmp.org\u002Fwp\u002Fopenmp-compilers\u002F)|\n|USE_SSE|使用 Intel SSE 指令集|ON|支持 SSE 的 Intel CPU|\n|USE_AVX|使用 Intel AVX 指令集|ON|支持 AVX 的 Intel CPU|\n|USE_AVX2|以 AVX2 库支持构建 tiny-dnn|OFF|支持 AVX2 的 Intel CPU|\n|USE_NNPACK|使用 NNPACK 进行卷积运算|OFF|[多核 CPU 上的神经网络加速包](https:\u002F\u002Fgithub.com\u002FMaratyszcza\u002FNNPACK)|\n|USE_OPENCL|启用\u002F禁用 OpenCL 支持（实验性）|OFF|[异构系统并行编程的开放标准](https:\u002F\u002Fwww.khronos.org\u002Fopencl\u002F)|\n|USE_LIBDNN|使用 Greentea LibDNN 通过 OpenCL 在 GPU 上进行卷积运算（实验性）|OFF|[支持 CUDA 和 OpenCL 的通用卷积实现](https:\u002F\u002Fgithub.com\u002Fnaibaf7\u002Flibdnn)|\n|USE_SERIALIZER|启用模型序列化|ON\u003Csup>2\u003C\u002Fsup>|-|\n|USE_DOUBLE|使用双精度计算代替单精度|OFF|-|\n|USE_ASAN|使用 Address Sanitizer|OFF|clang 或 gcc 编译器|\n|USE_IMAGE_API|启用 Image API 支持|ON|-|\n|USE_GEMMLOWP|启用 gemmlowp 支持|OFF|-|\n|BUILD_TESTS|构建单元测试|OFF\u003Csup>3\u003C\u002Fsup>|-|\n|BUILD_EXAMPLES|构建示例项目|OFF|-|\n|BUILD_DOCS|构建文档|OFF|[Doxygen](http:\u002F\u002Fwww.doxygen.org\u002F)|\n|PROFILE|构建单元测试|OFF|gprof|\n\n\u003Csup>1\u003C\u002Fsup> tiny-dnn 默认使用 C++14 标准库进行并行化。\n\n\u003Csup>2\u003C\u002Fsup> 如果不使用序列化功能，可以将其关闭以加快编译速度。\n\n\u003Csup>3\u003C\u002Fsup> tiny-dnn 默认使用 [Google Test](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fgoogletest) 框架来运行单元测试。无需预先安装，它会在 CMake 配置过程中自动下载。\n\n例如，如果你想使用 Intel TBB 并构建测试，可以输入以下命令：\n```bash\ncmake -DUSE_TBB=ON -DBUILD_TESTS=ON .\n```\n\n## 自定义配置\n你可以编辑 include\u002Fconfig.h 文件来定制默认行为。\n\n## 示例\n构建卷积神经网络\n\n```cpp\n#include \"tiny_dnn\u002Ftiny_dnn.h\"\nusing namespace tiny_dnn;\nusing namespace tiny_dnn::activation;\nusing namespace tiny_dnn::layers;\n\nvoid construct_cnn() {\n    using namespace tiny_dnn;\n\n    network\u003Csequential> net;\n\n    \u002F\u002F 添加层\n    net \u003C\u003C conv(32, 32, 5, 1, 6) \u003C\u003C tanh()  \u002F\u002F 输入:32x32x1, 5x5卷积, 6个特征图\n        \u003C\u003C ave_pool(28, 28, 6, 2) \u003C\u003C tanh() \u002F\u002F 输入:28x28x6, 2x2池化\n        \u003C\u003C fc(14 * 14 * 6, 120) \u003C\u003C tanh()   \u002F\u002F 输入:14x14x6, 输出:120\n        \u003C\u003C fc(120, 10);                     \u002F\u002F 输入:120,     输出:10\n\n    assert(net.in_data_size() == 32 * 32);\n    assert(net.out_data_size() == 10);\n\n    \u002F\u002F 加载 MNIST 数据集\n    std::vector\u003Clabel_t> train_labels;\n    std::vector\u003Cvec_t> train_images;\n\n    parse_mnist_labels(\"train-labels.idx1-ubyte\", &train_labels);\n    parse_mnist_images(\"train-images.idx3-ubyte\", &train_images, -1.0, 1.0, 2, 2);\n\n    \u002F\u002F 定义优化算法\n    adagrad optimizer;\n\n    \u002F\u002F 训练（50 轮，每次 30 个小批量）\n    net.train\u003Cmse, adagrad>(optimizer, train_images, train_labels, 30, 50);\n\n    \u002F\u002F 保存\n    net.save(\"net\");\n\n    \u002F\u002F 加载\n    \u002F\u002F network\u003Csequential> net2;\n    \u002F\u002F net2.load(\"net\");\n}\n```\n\n构建多层感知机 (MLP)\n\n```cpp\n#include \"tiny_dnn\u002Ftiny_dnn.h\"\nusing namespace tiny_dnn;\nusing namespace tiny_dnn::activation;\nusing namespace tiny_dnn::layers;\n\nvoid construct_mlp() {\n    network\u003Csequential> net;\n\n    net \u003C\u003C fc(32 * 32, 300) \u003C\u003C sigmoid() \u003C\u003C fc(300, 10);\n\n    assert(net.in_data_size() == 32 * 32);\n    assert(net.out_data_size() == 10);\n}\n```\n\n另一种构建 MLP 的方式\n\n```cpp\n#include \"tiny_dnn\u002Ftiny_dnn.h\"\nusing namespace tiny_dnn;\nusing namespace tiny_dnn::activation;\n\nvoid construct_mlp() {\n    auto mynet = make_mlp\u003Ctanh>({ 32 * 32, 300, 10 });\n\n    assert(mynet.in_data_size() == 32 * 32);\n    assert(mynet.out_data_size() == 10);\n}\n```\n\n更多示例，请参阅 examples\u002Fmain.cpp 或 [MNIST 示例](https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Ftree\u002Fmaster\u002Fexamples\u002Fmnist) 页面。\n\n## 贡献\n随着深度学习社区的快速发展，我们非常欢迎你的贡献，以加速 tiny-dnn 的开发！\n有关快速贡献指南，请查看 [贡献文档](CONTRIBUTING.md)。\n\n## 参考文献\n[1] Y. Bengio, [基于梯度的深度架构训练实用建议。](http:\u002F\u002Farxiv.org\u002Fpdf\u002F1206.5533v2.pdf)\n    arXiv:1206.5533v2, 2012\n\n[2] Y. LeCun, L. Bottou, Y. Bengio 和 P. Haffner, [应用于文档识别的基于梯度的学习。](http:\u002F\u002Fyann.lecun.com\u002Fexdb\u002Fpublis\u002Fpdf\u002Flecun-01a.pdf)\n    IEEE 会刊, 86, 2278-2324.\n\n其他有用的参考列表：\n- [UFLDL 推荐阅读](http:\u002F\u002Fdeeplearning.stanford.edu\u002Fwiki\u002Findex.php\u002FUFLDL_Recommended_Readings)\n- [deeplearning.net 阅读清单](http:\u002F\u002Fdeeplearning.net\u002Freading-list\u002F)\n\n## 许可证\nBSD 3-Clause 许可证\n\n## Gitter 社区\n我们设有 Gitter 社区，用于讨论新功能和质量保证。\n欢迎加入我们！\n\n\u003Ctable>\n\u003Ctr>\n    \u003Ctd>\u003Cb> 开发者 \u003C\u002Fb>\u003C\u002Ftd>\n    \u003Ctd> https:\u002F\u002Fgitter.im\u002Ftiny-dnn\u002Fdevelopers \u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>\u003Cb> 用户 \u003C\u002Fb>\u003C\u002Ftd>\n    \u003Ctd> https:\u002F\u002Fgitter.im\u002Ftiny-dnn\u002Fusers \u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>","# tiny-dnn 快速上手指南\n\ntiny-dnn 是一个基于 C++14 的轻量级深度学习库，专为计算资源受限的环境（如嵌入式系统、IoT 设备）设计。它无需 GPU，仅依赖标准编译器，采用头文件形式，无需安装即可使用。\n\n> **注意**：该项目目前处于寻找维护者的状态，可能已停止活跃开发，但代码仍可编译运行。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**：Linux, macOS, Windows\n- **编译器**：支持 C++14 标准的编译器\n    - GCC 4.9+\n    - Clang 3.6+\n    - Visual Studio 2015+\n\n### 前置依赖\n- **核心依赖**：无。只需包含头文件即可使用。\n- **可选依赖**（用于加速或构建示例\u002F测试）：\n    - [CMake](https:\u002F\u002Fcmake.org\u002F)：用于生成构建文件或编译示例。\n    - Intel TBB \u002F OpenMP：用于多线程并行加速。\n    - NNPACK \u002F OpenCL：用于特定硬件加速（实验性）。\n\n## 安装步骤\n\n由于 tiny-dnn 是 **header-only（仅头文件）** 库，通常无需传统意义上的“安装”。\n\n### 方法一：直接使用（推荐）\n直接将 `tiny_dnn.h` 头文件（位于 `tiny_dnn\u002F` 目录下）复制到你的项目包含路径中，或在代码中指定相对路径引用即可。\n\n### 方法二：编译示例与单元测试\n如果你希望运行官方提供的示例程序或单元测试，需要安装 CMake 并执行以下命令：\n\n```bash\n# 配置构建（开启示例构建）\ncmake . -DBUILD_EXAMPLES=ON\n\n# 编译\nmake\n\n# 进入示例目录运行\ncd examples\n.\u002Fmnist  # 以 mnist 示例为例\n```\n\n**针对特定 IDE 用户：**\n- **Xcode (macOS)**: `cmake . -G \"Xcode\"`\n- **Visual Studio (Windows)**: `cmake . -G \"NMake Makefiles\"` (然后打开生成的 `.sln` 文件或运行 `nmake`)\n\n**开启高级优化选项（可选）：**\n若需使用 Intel TBB 进行并行加速，可在配置时添加参数：\n```bash\ncmake -DUSE_TBB=ON -DBUILD_TESTS=ON .\n```\n\n## 基本使用\n\n以下是最简单的卷积神经网络（CNN）构建与训练示例（基于 MNIST 数据集逻辑）：\n\n```cpp\n#include \"tiny_dnn\u002Ftiny_dnn.h\"\nusing namespace tiny_dnn;\nusing namespace tiny_dnn::activation;\nusing namespace tiny_dnn::layers;\n\nvoid construct_cnn() {\n    using namespace tiny_dnn;\n\n    \u002F\u002F 1. 定义网络结构 (sequential 顺序模型)\n    network\u003Csequential> net;\n\n    \u002F\u002F 添加层：输入 32x32 -> 卷积 -> 激活 -> 池化 -> 全连接 -> 输出\n    net \u003C\u003C conv(32, 32, 5, 1, 6) \u003C\u003C tanh()      \u002F\u002F 5x5 卷积，6 个特征图\n        \u003C\u003C ave_pool(28, 28, 6, 2) \u003C\u003C tanh()     \u002F\u002F 2x2 平均池化\n        \u003C\u003C fc(14 * 14 * 6, 120) \u003C\u003C tanh()       \u002F\u002F 全连接层\n        \u003C\u003C fc(120, 10);                         \u002F\u002F 输出层 (10 类)\n\n    \u002F\u002F 2. 准备数据 (此处仅为伪代码逻辑，实际需加载二进制数据)\n    std::vector\u003Clabel_t> train_labels;\n    std::vector\u003Cvec_t> train_images;\n    \u002F\u002F parse_mnist_labels(\"train-labels.idx1-ubyte\", &train_labels);\n    \u002F\u002F parse_mnist_images(\"train-images.idx3-ubyte\", &train_images, -1.0, 1.0, 2, 2);\n\n    \u002F\u002F 3. 定义优化算法\n    adagrad optimizer;\n\n    \u002F\u002F 4. 训练模型 (损失函数：mse, 优化器：adagrad)\n    \u002F\u002F 参数：优化器，训练图像，训练标签，小批量大小，迭代次数\n    \u002F\u002F net.train\u003Cmse, adagrad>(optimizer, train_images, train_labels, 30, 50);\n\n    \u002F\u002F 5. 保存模型\n    \u002F\u002F net.save(\"net\");\n}\n```\n\n**构建多层感知机 (MLP) 的简化写法：**\n\n```cpp\n#include \"tiny_dnn\u002Ftiny_dnn.h\"\nusing namespace tiny_dnn;\nusing namespace tiny_dnn::activation;\n\nvoid construct_mlp() {\n    \u002F\u002F 一行代码构建网络：输入层 -> 隐藏层 (300) -> 输出层 (10)，激活函数为 tanh\n    auto mynet = make_mlp\u003Ctanh>({ 32 * 32, 300, 10 });\n}\n```","某嵌入式开发团队需要在资源受限的工业摄像头中部署实时缺陷检测模型，以监控流水线上的产品瑕疵。\n\n### 没有 tiny-dnn 时\n- **依赖环境复杂**：传统深度学习框架（如 TensorFlow 或 Caffe）体积庞大且依赖复杂的运行时库，难以移植到仅有几十兆内存的嵌入式 Linux 系统中。\n- **部署成本高昂**：团队不得不维护额外的 Python 解释器或重型 C++ 运行环境，导致固件编译时间长，且容易因版本冲突引发崩溃。\n- **推理延迟不可控**：通用框架常带有垃圾回收机制或动态内存分配，造成推理耗时波动大，无法满足工业场景对毫秒级稳定响应的要求。\n- **集成难度高**：将训练好的模型嵌入现有的 C++ 图像处理管道需要编写大量胶水代码，甚至需要重写整个数据预处理流程。\n\n### 使用 tiny-dnn 后\n- **零依赖轻量集成**：tiny-dnn 是纯头文件库，只需包含 `tiny_dnn.h` 即可在支持 C++14 的编译器上运行，无需安装任何第三方库，完美适配嵌入式芯片。\n- **确定性实时响应**：得益于无垃圾回收和简单的并行模型，tiny-dnn 提供了恒定的吞吐量，确保每次缺陷检测的耗时稳定在预设阈值内。\n- **无缝对接现有系统**：作为原生 C++ 实现，它能直接嵌入现有的图像采集程序，不产生标准输出干扰，且支持导入 Caffe 模型，复用已有训练成果。\n- **极致资源利用**：利用 SSE\u002FAVX 指令集优化，即便在没有 GPU 的 Core i7 甚至更低功耗处理器上，也能在数分钟内完成高精度推理。\n\ntiny-dnn 通过极致的轻量化和无依赖特性，让高性能深度学习模型得以在资源严苛的边缘设备上稳定落地。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftiny-dnn_tiny-dnn_ab4ae1e7.png","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Ftiny-dnn_70bd053a.png","",null,"https:\u002F\u002Fgithub.com\u002Ftiny-dnn",[80,84,88,92,96],{"name":81,"color":82,"percentage":83},"C++","#f34b7d",90.3,{"name":85,"color":86,"percentage":87},"CMake","#DA3434",9.3,{"name":89,"color":90,"percentage":91},"Shell","#89e051",0.2,{"name":93,"color":94,"percentage":95},"C","#555555",0.1,{"name":97,"color":98,"percentage":99},"Dockerfile","#384d54",0,6020,1396,"2026-04-02T08:30:51","NOASSERTION",4,"Linux, macOS, Windows","非必需。默认仅使用 CPU（支持 SSE\u002FAVX 指令集加速）。可通过 OpenCL 实验性支持 GPU，但未指定具体型号或显存要求。","未说明（设计目标为适用于计算资源受限的设备、嵌入式系统和 IoT 设备）",{"notes":109,"python":110,"dependencies":111},"这是一个纯头文件（header-only）的 C++14 深度学习库，无需安装即可使用。可选依赖包括 Intel TBB、OpenMP、NNPACK 和 OpenCL 用于加速。项目目前可能已被维护者放弃，正在寻找新的维护者。","不需要",[112],"C++14 编译器 (gcc 4.9+, clang 3.6+ 或 VS 2015+)",[13],[115,116,117,118],"c-plus-plus","deep-learning","machine-learning","neural-network","2026-03-27T02:49:30.150509","2026-04-06T06:56:28.986891",[122,127,132,137,142,147,152,157],{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},15345,"如何训练包含大量图片（如 2 万张以上）的数据集而不导致内存溢出？","不要尝试将所有数据一次性加载到 vector\u003Cvec_t> 中。对于大规模数据集，应该实现自定义的数据加载器，采用分批读取（batch loading）或流式读取的方式，仅在需要时将数据载入内存，而不是预先分配巨大的连续内存块来存储所有图像数据。","https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Fissues\u002F477",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},15346,"Tiny-DNN 是否支持非序列模型（如带有分支或合并路径的残差网络）？","是的，早期版本仅支持序列模型，但在 v0.1.0 及之后的版本中已经添加了对非序列模型的支持。现在可以构建包含分支和合并层路径的复杂模型（如 Deep Residual Nets）。请确保您使用的是最新版本的库。","https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Fissues\u002F108",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},15347,"编译时间过长或编译时内存耗尽怎么办？","由于这是一个纯头文件库，每次编译都可能需要重新实例化大量模板，导致编译时间和内存消耗巨大。解决方案包括：1. 手动限制 GCC 的内存使用标志（例如在构建脚本中添加资源限制参数）；2. 考虑将库的核心部分预编译为静态库或动态库，以避免在每次构建项目时重复编译头文件。","https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Fissues\u002F420",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},15348,"为什么修改 MNIST 示例中的 batch size 后得到的结果是错误的？","这通常是由于代码版本过旧导致的已知问题。维护者建议检查并更新到最新的 master 分支代码，因为相关逻辑（如批处理归一化或梯度计算）可能在后续提交中已被修复。请拉取最新代码重新编译测试。","https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Fissues\u002F538",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},15349,"如何在 Tiny-DNN 中实现 Split（分裂）和 Concat（拼接）层以支持 GoogLeNet 等架构？","早期的 tiny-cnn 不支持 Split\u002FConcat 层，但这已成为社区关注的重点增强功能。用户可以通过实现自定义层来扩展功能，或者等待\u002F贡献代码以原生支持这些层。目前已有用户成功通过转换器将包含这些层的 Caffe 模型（如 SqueezeNet）迁移过来，表明通过扩展层类型是可行的路径。","https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Fissues\u002F146",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},15350,"项目为何从 tiny-cnn 更名为 tiny-dnn？","因为项目的范围已经从单纯的卷积神经网络（CNN）扩展到了更通用的深度神经网络（Deep Net）。为了更准确地反映其支持的网络类型（不仅限于卷积），社区决定将其重命名为 tiny-dnn。此次更名伴随着仓库迁移至组织账户，但库的 API 除了命名空间外基本保持不变。","https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Fissues\u002F235",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},15351,"LibDNN 后端集成目前的进展如何？","LibDNN 的初始后端架构已经被合并到主代码库中（具体提交哈希：a589c62）。用户可以尝试使用该后端进行优化。建议参考 LibDNN 中的小型测试用例作为进一步集成和调试的样本。","https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Fissues\u002F187",{"id":158,"question_zh":159,"answer_zh":160,"source_url":161},15352,"Tensor 类的设计是如何处理 CPU 和 GPU 之间的数据传输的？","设计上区分了两种张量结构：1. 输入\u002F输出张量：可根据需要在 CPU 和 GPU 之间自动移动（适用于原型设计）；2. 参数张量（权重、偏置等）：设计为常驻 GPU 以减少带宽开销，仅在序列化\u002F反序列化时手动传输。这种设计旨在防止因频繁移动参数而导致的性能下降。","https:\u002F\u002Fgithub.com\u002Ftiny-dnn\u002Ftiny-dnn\u002Fissues\u002F273",[163,168,173,178,183],{"id":164,"version":165,"summary_zh":166,"released_at":167},89985,"v1.0.0a3","我们现在宣布发布 v1.0.0a3。感谢所有优秀的贡献者！此版本相较于 v1.0.0a2 包含以下变更：\n\n## Bug 修复\n- 使用 `padding::same` 模式的卷积层无法正常工作 #332，由 @nyanp 修复。\n- MinGW 构建时出现段错误 #203、#281，由 @nyanp 修复。\n- NNPACK 后端无法正常工作 #398，由 @azsane 修复。\n\n## 改进\n- 移除编译器警告并优化 CMakeLists.txt #387，由 @beru 完成。\n- 优化内存消耗 #410，由 @beru 完成。\n- 改进单元测试 #408，由 @Randl 完成。\n- 细微的速度优化 #419，由 @beru 完成。\n- 重构序列化类型与大小类型 #407、#422，由 @Randl 和 @edgarriba 共同完成。\n- 通过拆分序列化\u002F反序列化流程来缩短编译时间 #421，由 @beru 完成。\n\n## 文档与注释\n- 为层类添加注释 #424，由 @edgarriba 完成。\n- 修复注释中的拼写错误 #404，由 @MikalaiDrabovich 完成。\n\n## 朝着 v1.0.0迈进\n`tensor` 的首个版本已合并到 tiny-dnn 中（#411、#417、#418，由 @pansk、@Randl 和 @edgarriba 完成）。目前它尚未与 tiny-dnn 的各层集成，但这是 GPU 版 tiny-dnn 的起点。","2016-11-29T15:33:20",{"id":169,"version":170,"summary_zh":171,"released_at":172},89986,"v1.0.0a2","## Bug 修复\n- 通过 @nyanp 修复 AVX 优化代码中的 SEGV 错误 (#353)\n- 通过 @nyanp 修复 msvc2013 上的编译器错误 (#320)\n- 通过 @nyanp 修复卷积层中 AVX 后端性能下降的问题 (#322)\n- 通过 @nyanp 修复手动加载权重时抛出的错误 (#330)\n- 通过 @nyanp 修复 tan_h 函数返回无穷大的问题 (#347)\n- 通过 @nyanp 修复序列化方面的可移植性问题 (#377)\n\n## 功能特性\n- 提供用于禁用序列化支持的编译选项，以加快编译速度 (#316)，由 @nyanp 实现\n- 添加 `set_trainable` 方法以冻结层 (#346)，由 @nyanp 实现\n- 由 @goranrauker 向 Caffe 转换器添加功率层\n- 双精度支持 (#332)，由 @nyanp 实现\n- 为池化层提供 pad_type 和非正方形输入选项 (#374)，由 @nyanp 实现\n- 为张量向量添加公共预测方法 (#396)，由 @reunanen 实现\n- 添加自动引擎选择功能 (#339)，由 @edgarriba 实现\n- 添加基本图像工具，并移除 OpenCV 依赖 (#337)，由 @nyanp 实现\n\n## 其他\n- 与最新的 NNPACK 同步，由 @azsane 完成\n- 改进类型转换相关的编译器警告，由 @pansk、@reunanen 和 @edgarriba 共同完成\n- 改进 CMakeLists 文件，由 @syoyo、@edgarriba 和 @beru 共同完成\n- 将 picotest 替换为 gtest，由 @Randl 完成\n- 在官方文档中添加“层目录”，由 @nyanp 完成\n- 为 GPU 环境添加测试，由 @Randl 完成\n- 添加 cpplint.py 工具，由 @edgarriba 和 @Randl 共同完成\n- 添加关于构建 iOS 应用程序的文档，由 @wangyida 完成\n- 添加 coverall 检查，由 @edgarriba 完成\n- 为 Win32 平台添加 CI 构建，由 @nyanp 完成\n- 更新并改进 README 文件，由 @edgarriba 和 @zhangqianhui 共同完成\n","2016-11-13T15:00:40",{"id":174,"version":175,"summary_zh":176,"released_at":177},89987,"v1.0.0a",":tada: 本次发布包含重大重构及大量错误修复。非常感谢所有优秀的贡献者！:tada:\n\n本版本为 Alpha 版。我们仍需更多帮助与反馈，以推进至 v1.0.0。请在 GitHub Issues 中提交您的问题报告。衷心感谢 :)\n- 主要更新\n  - 合并了 2016 年 Google Summer of Code 的优秀成果\n    - @edgarriba 实现的 [OpenCL & GPU 后端](https:\u002F\u002Fsummerofcode.withgoogle.com\u002Fprojects\u002F#5784229849858048)\n    - @Wangyida 实现的 [量化功能](https:\u002F\u002Fsummerofcode.withgoogle.com\u002Fprojects\u002F#6491122679414784)\n  \n  这些功能目前仍处于实验阶段，欢迎提交 PR 和报告问题！\n  - @nyanp 实现的模型序列化\n- 小幅错误修复\n  - @edgarriba 修复了 cifar-10 示例中的内存问题 #295、#300\n  - @nyanp 修复了最大池化层的问题 #271\n  - @Jiaolong 修复了拼接层的问题 #301\n  - @syoyo 抑制了编译器警告 #297\n- 其他\n  - @KonfrareAlbert 设计的精美项目 Logo\n  - 在 http:\u002F\u002Ftiny-dnn.readthedocs.io\u002F 上线了官方文档\n\nv0.1.1 至 v0.2.0 之间，部分 API 发生了变化：\n- 命名空间由 `tiny_cnn` 改为 `tiny_dnn`\n- API 头文件由 `tiny_cnn.h` 改为 `tiny_dnn.h`","2016-09-14T15:12:22",{"id":179,"version":180,"summary_zh":181,"released_at":182},89988,"v0.1.1","本版本包含以下改进：\n- 新层\n  - 批归一化\n  - 反卷积\u002F反池化（@Wangyida）\n  - 幂运算\n  - 切片\n- 新损失函数\n  - 绝对均值\u002F带eps的绝对均值（@H4kor）\n- 小bug修复\n  - 修复MSVC2013下的编译错误 #218、#231\n  - 修正MSE的定义 #232\n  - 解决因重复符号导致的链接器错误\n  - 修复caffemodel中对非方形输入数据的处理问题 #227\n  - 修复network::test中的数据竞争问题 #185\n\n非常感谢本次版本的所有贡献者！","2016-07-26T15:31:54",{"id":184,"version":185,"summary_zh":186,"released_at":187},89989,"v0.1.0","本次发布对 tiny-cnn 的基础架构进行了重大重构，并修复了诸多问题。感谢 20 位贡献者为此次发布所做的努力！\n- 现在可以使用 `network\u003Cgraph>` 来处理非序列模型 #108 #153\n- 更新以兼容 Caffe 最新版本的 proto 格式 #162\n- 改进了权重重新初始化的默认行为 #136\n- 增加了更多测试用例和文档 #73\n- 移除了 MNIST 示例中对 OpenCV 的依赖\n\n_部分 API 较上一版本发生了变化，请参阅[变更列表](https:\u002F\u002Fgithub.com\u002Fnyanp\u002Ftiny-cnn\u002Fblob\u002Fmaster\u002Fdoc\u002FChanging-from-v0_0_1.md)_\n","2016-06-06T15:29:23"]