[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-calmiLovesAI--Basic_CNNs_TensorFlow2":3,"tool-calmiLovesAI--Basic_CNNs_TensorFlow2":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 真正成长为懂上",142651,2,"2026-04-06T23:34:12",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":74,"owner_location":74,"owner_email":74,"owner_twitter":74,"owner_website":74,"owner_url":75,"languages":76,"stars":81,"forks":82,"last_commit_at":83,"license":84,"difficulty_score":32,"env_os":85,"env_gpu":86,"env_ram":86,"env_deps":87,"category_tags":93,"github_topics":94,"view_count":32,"oss_zip_url":74,"oss_zip_packed_at":74,"status":17,"created_at":113,"updated_at":114,"faqs":115,"releases":156},4888,"calmiLovesAI\u002FBasic_CNNs_TensorFlow2","Basic_CNNs_TensorFlow2","A tensorflow2 implementation of some basic CNNs(MobileNetV1\u002FV2\u002FV3, EfficientNet, ResNeXt, InceptionV4, InceptionResNetV1\u002FV2, SENet, SqueezeNet, DenseNet, ShuffleNetV2, ResNet).","Basic_CNNs_TensorFlow2 是一个基于 TensorFlow 2 框架的开源项目，旨在提供多种经典卷积神经网络（CNN）的标准化实现。它汇集了包括 MobileNet 系列、EfficientNet、ResNet、DenseNet、Inception 系列以及 SENet 等在内的主流模型架构，解决了开发者在复现前沿算法时面临的代码分散、环境配置复杂及输入尺寸不统一等痛点。\n\n该项目特别适合人工智能领域的研究人员、算法工程师以及深度学习初学者使用。对于希望快速验证模型效果或进行迁移学习的用户，Basic_CNNs_TensorFlow2 提供了一套完整且易用的工作流：从自定义数据集的自动划分、TFRecord 格式转换，到模型训练与性能评估，均配有清晰的脚本指引。其独特的技术亮点在于对不同类型网络所需的输入图像尺寸进行了细致梳理和预设（如 EfficientNet 各版本对应的分辨率），并支持通过简单的索引参数灵活切换模型，极大降低了实验门槛。无论是用于学术研究对比，还是工业界的快速原型开发，它都能帮助用户将精力更专注于核心算法优化而非基础代码构建。","# Basic_CNNs_TensorFlow2\nA tensorflow2 implementation of some basic CNNs.\n\n## Networks included:\n+ MobileNet_V1\n+ MobileNet_V2\n+ [MobileNet_V3](https:\u002F\u002Fgithub.com\u002Fcalmisential\u002FMobileNetV3_TensorFlow2)\n+ [EfficientNet](https:\u002F\u002Fgithub.com\u002Fcalmisential\u002FEfficientNet_TensorFlow2)\n+ [ResNeXt](https:\u002F\u002Fgithub.com\u002Fcalmisential\u002FResNeXt_TensorFlow2)\n+ [InceptionV4, InceptionResNetV1, InceptionResNetV2](https:\u002F\u002Fgithub.com\u002Fcalmisential\u002FInceptionV4_TensorFlow2)\n+ SE_ResNet_50, SE_ResNet_101, SE_ResNet_152, SE_ResNeXt_50, SE_ResNeXt_101\n+ SqueezeNet\n+ [DenseNet](https:\u002F\u002Fgithub.com\u002Fcalmisential\u002FDenseNet_TensorFlow2)\n+ ShuffleNetV2\n+ [ResNet](https:\u002F\u002Fgithub.com\u002Fcalmisential\u002FTensorFlow2.0_ResNet)\n+ RegNet\n\n## Other networks\nFor AlexNet and VGG, see : https:\u002F\u002Fgithub.com\u002Fcalmisential\u002FTensorFlow2.0_Image_Classification\u003Cbr\u002F>\nFor InceptionV3, see : https:\u002F\u002Fgithub.com\u002Fcalmisential\u002FTensorFlow2.0_InceptionV3\u003Cbr\u002F>\nFor ResNet, see : https:\u002F\u002Fgithub.com\u002Fcalmisential\u002FTensorFlow2.0_ResNet\n\n## Train\n1. Requirements:\n+ Python >= 3.9\n+ Tensorflow >= 2.7.0\n+ tensorflow-addons >= 0.15.0\n2. To train the network on your own dataset, you can put the dataset under the folder **original dataset**, and the directory should look like this:\n```\n|——original dataset\n   |——class_name_0\n   |——class_name_1\n   |——class_name_2\n   |——class_name_3\n```\n3. Run the script **split_dataset.py** to split the raw dataset into train set, valid set and test set. The dataset directory will be like this:\n ```\n|——dataset\n   |——train\n        |——class_name_1\n        |——class_name_2\n        ......\n        |——class_name_n\n   |——valid\n        |——class_name_1\n        |——class_name_2\n        ......\n        |——class_name_n\n   |—-test\n        |——class_name_1\n        |——class_name_2\n        ......\n        |——class_name_n\n ```\n4. Run **to_tfrecord.py** to generate tfrecord files.\n5. Change the corresponding parameters in **config.py**.\n6. Run **show_model_list.py** to get the index of model.\n7. Run **python train.py --idx [index]** to start training.\u003Cbr\u002F>\nIf you want to train the *EfficientNet*, you should change the IMAGE_HEIGHT and IMAGE_WIDTH before training.\n- b0 = (224, 224)\n- b1 = (240, 240)\n- b2 = (260, 260)\n- b3 = (300, 300)\n- b4 = (380, 380)\n- b5 = (456, 456)\n- b6 = (528, 528)\n- b7 = (600, 600)\n## Evaluate\nRun **python evaluate.py --idx [index]** to evaluate the model's performance on the test dataset.\n\n## Different input image sizes for different neural networks\n\u003Ctable>\n     \u003Ctr align=\"center\">\n          \u003Cth>Type\u003C\u002Fth>\n          \u003Cth>Neural Network\u003C\u002Fth>\n          \u003Cth>Input Image Size (height * width)\u003C\u002Fth>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd rowspan=\"3\">MobileNet\u003C\u002Ftd>\n          \u003Ctd>MobileNet_V1\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>MobileNet_V2\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>MobileNet_V3\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>EfficientNet\u003C\u002Ftd>\n          \u003Ctd>EfficientNet(B0~B7)\u003C\u002Ftd>\n          \u003Ctd>\u002F\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd rowspan=\"2\">ResNeXt\u003C\u002Ftd>\n          \u003Ctd>ResNeXt50\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>ResNeXt101\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd rowspan=\"2\">SEResNeXt\u003C\u002Ftd>\n          \u003Ctd>SEResNeXt50\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>SEResNeXt101\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd rowspan=\"3\">Inception\u003C\u002Ftd>\n          \u003Ctd>InceptionV4\u003C\u002Ftd>\n          \u003Ctd>(299 * 299)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>Inception_ResNet_V1\u003C\u002Ftd>\n          \u003Ctd>(299 * 299)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>Inception_ResNet_V2\u003C\u002Ftd>\n          \u003Ctd>(299 * 299)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd rowspan=\"3\">SE_ResNet\u003C\u002Ftd>\n          \u003Ctd>SE_ResNet_50\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>SE_ResNet_101\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>SE_ResNet_152\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003C\u002Ftr align=\"center\">\n          \u003Ctd>SqueezeNet\u003C\u002Ftd>\n          \u003Ctd align=\"center\">SqueezeNet\u003C\u002Ftd>\n          \u003Ctd align=\"center\">(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd rowspan=\"4\">DenseNet\u003C\u002Ftd>\n          \u003Ctd>DenseNet_121\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>DenseNet_169\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>DenseNet_201\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>DenseNet_269\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>ShuffleNetV2\u003C\u002Ftd>\n          \u003Ctd>ShuffleNetV2\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd rowspan=\"5\">ResNet\u003C\u002Ftd>\n          \u003Ctd>ResNet_18\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>ResNet_34\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>ResNet_50\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>ResNet_101\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>ResNet_152\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## References\n1. MobileNet_V1: [Efficient Convolutional Neural Networks for Mobile Vision Applications](https:\u002F\u002Farxiv.org\u002Fabs\u002F1704.04861)\n2. MobileNet_V2: [Inverted Residuals and Linear Bottlenecks](https:\u002F\u002Farxiv.org\u002Fabs\u002F1801.04381)\n3. MobileNet_V3: [Searching for MobileNetV3](https:\u002F\u002Farxiv.org\u002Fabs\u002F1905.02244)\n4. EfficientNet: [EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks](https:\u002F\u002Farxiv.org\u002Fabs\u002F1905.11946)\n5. The official code of EfficientNet: https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Ftpu\u002Ftree\u002Fmaster\u002Fmodels\u002Fofficial\u002Fefficientnet\n6. ResNeXt: [Aggregated Residual Transformations for Deep Neural Networks](https:\u002F\u002Farxiv.org\u002Fabs\u002F1611.05431)\n7. Inception_V4\u002FInception_ResNet_V1\u002FInception_ResNet_V2: [Inception-v4,  Inception-ResNet and the Impact of Residual Connectionson Learning](https:\u002F\u002Farxiv.org\u002Fabs\u002F1602.07261)\n8. The official implementation of Inception_V4: https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Fmodels\u002Fblob\u002Fmaster\u002Fresearch\u002Fslim\u002Fnets\u002Finception_v4.py\n9. The official implementation of Inception_ResNet_V2: https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Fmodels\u002Fblob\u002Fmaster\u002Fresearch\u002Fslim\u002Fnets\u002Finception_resnet_v2.py\n10. SENet: [Squeeze-and-Excitation Networks](https:\u002F\u002Farxiv.org\u002Fabs\u002F1709.01507)\n11. SqueezeNet: [SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and \u003C0.5MB model size](https:\u002F\u002Farxiv.org\u002Fabs\u002F1602.07360)\n12. DenseNet: [Densely Connected Convolutional Networks](https:\u002F\u002Farxiv.org\u002Fabs\u002F1608.06993)\n13. https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F37189203\n14. ShuffleNetV2: [ShuffleNet V2: Practical Guidelines for Eﬃcient CNN Architecture Design\n](https:\u002F\u002Farxiv.org\u002Fabs\u002F1807.11164)\n15. https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F48261931\n16. ResNet: [Deep Residual Learning for Image Recognition](https:\u002F\u002Farxiv.org\u002Fabs\u002F1512.03385)\n17. RegNet: [Designing Network Design Spaces](https:\u002F\u002Farxiv.org\u002Fabs\u002F2003.13678)","# Basic_CNNs_TensorFlow2\n一些基础卷积神经网络的 TensorFlow 2 实现。\n\n## 包含的网络：\n+ MobileNet_V1\n+ MobileNet_V2\n+ [MobileNet_V3](https:\u002F\u002Fgithub.com\u002Fcalmisential\u002FMobileNetV3_TensorFlow2)\n+ [EfficientNet](https:\u002F\u002Fgithub.com\u002Fcalmisential\u002FEfficientNet_TensorFlow2)\n+ [ResNeXt](https:\u002F\u002Fgithub.com\u002Fcalmisential\u002FResNeXt_TensorFlow2)\n+ [InceptionV4、InceptionResNetV1、InceptionResNetV2](https:\u002F\u002Fgithub.com\u002Fcalmisential\u002FInceptionV4_TensorFlow2)\n+ SE_ResNet_50、SE_ResNet_101、SE_ResNet_152、SE_ResNeXt_50、SE_ResNeXt_101\n+ SqueezeNet\n+ [DenseNet](https:\u002F\u002Fgithub.com\u002Fcalmisential\u002FDenseNet_TensorFlow2)\n+ ShuffleNetV2\n+ [ResNet](https:\u002F\u002Fgithub.com\u002Fcalmisential\u002FTensorFlow2.0_ResNet)\n+ RegNet\n\n## 其他网络\n关于 AlexNet 和 VGG，请参阅：https:\u002F\u002Fgithub.com\u002Fcalmisential\u002FTensorFlow2.0_Image_Classification\u003Cbr\u002F>\n关于 InceptionV3，请参阅：https:\u002F\u002Fgithub.com\u002Fcalmisential\u002FTensorFlow2.0_InceptionV3\u003Cbr\u002F>\n关于 ResNet，请参阅：https:\u002F\u002Fgithub.com\u002Fcalmisential\u002FTensorFlow2.0_ResNet\n\n## 训练\n1. 环境要求：\n+ Python >= 3.9\n+ Tensorflow >= 2.7.0\n+ tensorflow-addons >= 0.15.0\n2. 若要在您自己的数据集上训练网络，可以将数据集放置在 **original dataset** 文件夹下，目录结构应如下所示：\n```\n|——original dataset\n   |——class_name_0\n   |——class_name_1\n   |——class_name_2\n   |——class_name_3\n```\n3. 运行脚本 **split_dataset.py** 将原始数据集拆分为训练集、验证集和测试集。数据集目录将变为如下结构：\n ```\n|——dataset\n   |——train\n        |——class_name_1\n        |——class_name_2\n        ......\n        |——class_name_n\n   |——valid\n        |——class_name_1\n        |——class_name_2\n        ......\n        |——class_name_n\n   |—-test\n        |——class_name_1\n        |——class_name_2\n        ......\n        |——class_name_n\n ```\n4. 运行 **to_tfrecord.py** 生成 TFRecord 文件。\n5. 修改 **config.py** 中的相应参数。\n6. 运行 **show_model_list.py** 获取模型索引。\n7. 运行 **python train.py --idx [index]** 开始训练。\u003Cbr\u002F>\n如果您想训练 *EfficientNet*，应在训练前更改 IMAGE_HEIGHT 和 IMAGE_WIDTH。\n- b0 = (224, 224)\n- b1 = (240, 240)\n- b2 = (260, 260)\n- b3 = (300, 300)\n- b4 = (380, 380)\n- b5 = (456, 456)\n- b6 = (528, 528)\n- b7 = (600, 600)\n## 评估\n运行 **python evaluate.py --idx [index]** 来评估模型在测试集上的性能。\n\n## 不同神经网络的输入图像尺寸\n\u003Ctable>\n     \u003Ctr align=\"center\">\n          \u003Cth>类型\u003C\u002Fth>\n          \u003Cth>神经网络\u003C\u002Fth>\n          \u003Cth>输入图像尺寸（高 * 宽）\u003C\u002Fth>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd rowspan=\"3\">MobileNet\u003C\u002Ftd>\n          \u003Ctd>MobileNet_V1\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>MobileNet_V2\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>MobileNet_V3\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>EfficientNet\u003C\u002Ftd>\n          \u003Ctd>EfficientNet(B0~B7)\u003C\u002Ftd>\n          \u003Ctd>\u002F\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd rowspan=\"2\">ResNeXt\u003C\u002Ftd>\n          \u003Ctd>ResNeXt50\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>ResNeXt101\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd rowspan=\"2\">SEResNeXt\u003C\u002Ftd>\n          \u003Ctd>SEResNeXt50\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>SEResNeXt101\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd rowspan=\"3\">Inception\u003C\u002Ftd>\n          \u003Ctd>InceptionV4\u003C\u002Ftd>\n          \u003Ctd>(299 * 299)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>Inception_ResNet_V1\u003C\u002Ftd>\n          \u003Ctd>(299 * 299)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>Inception_ResNet_V2\u003C\u002Ftd>\n          \u003Ctd>(299 * 299)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd rowspan=\"3\">SE_ResNet\u003C\u002Ftd>\n          \u003Ctd>SE_ResNet_50\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>SE_ResNet_101\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>SE_ResNet_152\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003C\u002Ftr align=\"center\">\n          \u003Ctd>SqueezeNet\u003C\u002Ftd>\n          \u003Ctd>SqueezeNet\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd rowspan=\"4\">DenseNet\u003C\u002Ftd>\n          \u003Ctd>DenseNet_121\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>DenseNet_169\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>DenseNet_201\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>DenseNet_269\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>ShuffleNetV2\u003C\u002Ftd>\n          \u003Ctd>ShuffleNetV2\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd rowspan=\"5\">ResNet\u003C\u002Ftd>\n          \u003Ctd>ResNet_18\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>ResNet_34\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>ResNet_50\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>ResNet_101\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n     \u003Ctr align=\"center\">\n          \u003Ctd>ResNet_152\u003C\u002Ftd>\n          \u003Ctd>(224 * 224)\u003C\u002Ftd>\n     \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## 参考文献\n1. MobileNet_V1：[面向移动视觉应用的高效卷积神经网络](https:\u002F\u002Farxiv.org\u002Fabs\u002F1704.04861)\n2. MobileNet_V2：[倒残差与线性瓶颈](https:\u002F\u002Farxiv.org\u002Fabs\u002F1801.04381)\n3. MobileNet_V3：[MobileNetV3 的搜索](https:\u002F\u002Farxiv.org\u002Fabs\u002F1905.02244)\n4. EfficientNet：[EfficientNet：重新思考卷积神经网络的模型缩放](https:\u002F\u002Farxiv.org\u002Fabs\u002F1905.11946)\n5. EfficientNet 官方代码：https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Ftpu\u002Ftree\u002Fmaster\u002Fmodels\u002Fofficial\u002Fefficientnet\n6. ResNeXt：[深度神经网络的聚合残差变换](https:\u002F\u002Farxiv.org\u002Fabs\u002F1611.05431)\n7. Inception_V4\u002FInception_ResNet_V1\u002FInception_ResNet_V2：[Inception-v4、Inception-ResNet 以及残差连接对学习的影响](https:\u002F\u002Farxiv.org\u002Fabs\u002F1602.07261)\n8. Inception_V4 官方实现：https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Fmodels\u002Fblob\u002Fmaster\u002Fresearch\u002Fslim\u002Fnets\u002Finception_v4.py\n9. Inception_ResNet_V2 官方实现：https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Fmodels\u002Fblob\u002Fmaster\u002Fresearch\u002Fslim\u002Fnets\u002Finception_resnet_v2.py\n10. SENet：[挤压-激励网络](https:\u002F\u002Farxiv.org\u002Fabs\u002F1709.01507)\n11. SqueezeNet：[SqueezeNet：参数量减少 50 倍、模型大小小于 0.5MB 却达到 AlexNet 级别的精度](https:\u002F\u002Farxiv.org\u002Fabs\u002F1602.07360)\n12. DenseNet：[密集连接的卷积网络](https:\u002F\u002Farxiv.org\u002Fabs\u002F1608.06993)\n13. https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F37189203\n14. ShuffleNetV2：[ShuffleNet V2：高效 CNN 架构设计的实用指南](https:\u002F\u002Farxiv.org\u002Fabs\u002F1807.11164)\n15. https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F48261931\n16. ResNet：[用于图像识别的深度残差学习](https:\u002F\u002Farxiv.org\u002Fabs\u002F1512.03385)\n17. RegNet：[网络设计空间的设计](https:\u002F\u002Farxiv.org\u002Fabs\u002F2003.13678)","# Basic_CNNs_TensorFlow2 快速上手指南\n\n本指南旨在帮助开发者快速使用 TensorFlow 2 实现多种经典卷积神经网络（CNN），包括 MobileNet、EfficientNet、ResNet、DenseNet 等。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux \u002F macOS \u002F Windows\n*   **Python 版本**：>= 3.9\n*   **核心依赖**：\n    *   TensorFlow >= 2.7.0\n    *   tensorflow-addons >= 0.15.0\n\n> **国内加速建议**：安装依赖时推荐使用清华或阿里镜像源以提升下载速度。\n> ```bash\n> pip install tensorflow tensorflow-addons -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n## 安装步骤\n\n1.  **克隆项目代码**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fcalmisential\u002FBasic_CNNs_TensorFlow2.git\n    cd Basic_CNNs_TensorFlow2\n    ```\n\n2.  **安装 Python 依赖**\n    ```bash\n    pip install -r requirements.txt\n    # 如果没有 requirements.txt，请直接安装核心依赖：\n    # pip install tensorflow>=2.7.0 tensorflow-addons>=0.15.0\n    ```\n\n## 基本使用\n\n以下是使用自定义数据集训练模型的完整流程：\n\n### 1. 准备数据集\n将原始图片数据放入 `original dataset` 文件夹，目录结构需按类别分文件夹存放：\n```text\n|——original dataset\n   |——class_name_0\n   |——class_name_1\n   |——class_name_2\n   ...\n```\n\n### 2. 划分数据集\n运行脚本将原始数据划分为训练集、验证集和测试集：\n```bash\npython split_dataset.py\n```\n执行后生成的 `dataset` 目录结构如下：\n```text\n|——dataset\n   |——train\n   |——valid\n   |——test\n```\n\n### 3. 生成 TFRecord 文件\n将图片数据转换为 TensorFlow 高效的 TFRecord 格式：\n```bash\npython to_tfrecord.py\n```\n\n### 4. 配置参数\n编辑 `config.py` 文件，根据实际需求修改超参数（如学习率、Batch Size、训练轮数等）。\n\n### 5. 获取模型索引\n查看支持的模型列表及其对应的索引编号：\n```bash\npython show_model_list.py\n```\n\n### 6. 开始训练\n使用获取到的模型索引 `[index]` 启动训练：\n```bash\npython train.py --idx [index]\n```\n\n> **注意**：若训练 **EfficientNet** 系列模型，请在训练前根据具体版本在 `config.py` 中调整输入图像尺寸：\n> *   b0: (224, 224)\n> *   b1: (240, 240)\n> *   b2: (260, 260)\n> *   b3: (300, 300)\n> *   b4: (380, 380)\n> *   b5: (456, 456)\n> *   b6: (528, 528)\n> *   b7: (600, 600)\n\n### 7. 模型评估\n训练完成后，使用测试集评估模型性能：\n```bash\npython evaluate.py --idx [index]\n```\n\n## 常见模型输入尺寸参考\n\n| 模型系列 | 具体模型 | 推荐输入尺寸 (高 * 宽) |\n| :--- | :--- | :--- |\n| **MobileNet** | V1, V2, V3 | 224 * 224 |\n| **ResNet** | 18, 34, 50, 101, 152 | 224 * 224 |\n| **SE-ResNet** | 50, 101, 152 | 224 * 224 |\n| **ResNeXt** | 50, 101 | 224 * 224 |\n| **DenseNet** | 121, 169, 201, 269 | 224 * 224 |\n| **Inception** | V4, ResNet V1\u002FV2 | 299 * 299 |\n| **Others** | SqueezeNet, ShuffleNetV2 | 224 * 224 |\n| **EfficientNet**| B0 ~ B7 | 见上文训练步骤说明 |","某初创医疗科技团队正急需开发一套部署在边缘设备上的皮肤癌早期筛查系统，需要在有限的算力下快速验证多种卷积神经网络的效果。\n\n### 没有 Basic_CNNs_TensorFlow2 时\n- **重复造轮子耗时严重**：工程师需手动从论文复现 MobileNet、EfficientNet 等十几种架构的代码，仅搭建基础模型就耗费了数周时间。\n- **环境适配困难**：不同网络对输入图像尺寸要求各异（如 InceptionV4 需 299x299，而 MobileNet 仅需 224x224），手动调整数据预处理逻辑极易出错。\n- **数据流程繁琐**：缺乏统一的数据集划分与 TFRecord 生成脚本，每次更换模型都需要重新编写数据加载管道，导致实验迭代缓慢。\n- **超参调试盲目**：由于缺乏标准化的配置文件（config.py），针对特定模型（如 EfficientNet-B7）调整分辨率和批大小时常因参数不匹配导致训练崩溃。\n\n### 使用 Basic_CNNs_TensorFlow2 后\n- **即插即用加速研发**：直接调用库中已封装好的 MobileNetV3、SE-ResNet 等主流模型接口，将模型搭建时间从数周缩短至几小时。\n- **自动化尺寸管理**：工具内置了各网络对应的最佳输入尺寸配置，自动处理数据缩放，消除了因维度不匹配引发的运行时错误。\n- **标准化数据流水线**：利用自带的 `split_dataset.py` 和 `to_tfrecord.py` 脚本，一键完成数据清洗、划分及格式转换，实现了训练流程的无缝衔接。\n- **灵活高效的实验对比**：通过修改 `config.py` 并指定模型索引即可启动训练，轻松在同一数据集上并行对比 DenseNet 与 ShuffleNetV2 的性能表现。\n\nBasic_CNNs_TensorFlow2 通过提供一站式、标准化的 TensorFlow 2 经典模型实现，让开发者从繁琐的代码复现中解放出来，专注于核心算法优化与业务落地。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FcalmiLovesAI_Basic_CNNs_TensorFlow2_8fba2507.png","calmiLovesAI","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FcalmiLovesAI_354d4ab0.png",null,"https:\u002F\u002Fgithub.com\u002FcalmiLovesAI",[77],{"name":78,"color":79,"percentage":80},"Python","#3572A5",100,534,174,"2026-03-30T13:42:12","MIT","","未说明",{"notes":88,"python":89,"dependencies":90},"训练 EfficientNet 系列模型前，需在配置文件中根据具体型号（b0-b7）调整输入图像尺寸（从 224x224 到 600x600 不等）。数据集需预先通过脚本划分为训练集、验证集和测试集，并转换为 TFRecord 格式方可开始训练。",">=3.9",[91,92],"tensorflow>=2.7.0","tensorflow-addons>=0.15.0",[15,14],[95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112],"tensorflow2","image-classification","image-recognition","tensorflow","mobilenet-v1","mobilenet-v2","mobilenet-v3","efficientnet","resnext","inception-v4","inception-resnet-v2","senet","seresnet","squeezenet","densenet","shufflenet-v2","resnet","regnet","2026-03-27T02:49:30.150509","2026-04-07T13:27:29.685313",[116,121,126,131,136,141,146,151],{"id":117,"question_zh":118,"answer_zh":119,"source_url":120},22212,"训练前是否需要对图像像素值除以 255 进行归一化？","是的，通常在将图像输入网络之前，需要将像素值除以 255，将范围从 [0, 255] 缩放到 [0, 1]。这有助于加速模型收敛并提高训练稳定性。请在预处理函数（如 load_and_preprocess_image）中执行此操作。","https:\u002F\u002Fgithub.com\u002FcalmiLovesAI\u002FBasic_CNNs_TensorFlow2\u002Fissues\u002F37",{"id":122,"question_zh":123,"answer_zh":124,"source_url":125},22206,"为什么训练时准确率高且损失低，但验证时准确率低且损失高？","这通常是因为模型中使用了批归一化（BN）、Dropout 和数据增强。这些技术在训练阶段会引入随机性或统计特性，而在验证\u002F测试阶段行为不同（例如 Dropout 关闭，BN 使用移动平均），导致训练集和验证集表现差异。如果验证数据与训练数据完全相同但仍出现此问题，请检查是否正确设置了 training 参数以控制这些层的行为。","https:\u002F\u002Fgithub.com\u002FcalmiLovesAI\u002FBasic_CNNs_TensorFlow2\u002Fissues\u002F36",{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},22207,"如何在不使用 TFRecord 的情况下测试单张 JPG 或 JPEG 图片？","可以使用 tf.io.read_file() 函数读取图片路径，然后将结果传递给 load_and_preprocess_image() 函数转换为张量格式数据，最后输入网络进行预测。使用 tf.argmax() 从输出中获取预测类别。示例流程：读取文件 -> 预处理为张量 -> 模型推理 -> 取最大值索引得到结果。","https:\u002F\u002Fgithub.com\u002FcalmiLovesAI\u002FBasic_CNNs_TensorFlow2\u002Fissues\u002F4",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},22208,"自定义 DenseBlock 层中显示参数数量为 0 是怎么回事？","这是因为在继承自 tf.keras.layers.Layer 的自定义层的 call 函数内部创建了新的层（如 BottleNeck）。正确做法是在 __init__ 方法中初始化所有子层。此外，自定义层应实现 get_config 方法以避免保存模型时出错。修正代码示例：在 __init__ 中创建 self.model_list 并实例化 BottleNeck，在 call 中调用这些预定义的层，同时添加 get_config 返回 growth_rate, drop_rate, num_layers 等配置。","https:\u002F\u002Fgithub.com\u002FcalmiLovesAI\u002FBasic_CNNs_TensorFlow2\u002Fissues\u002F10",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},22209,"运行 evaluate.py 时出现 'TypeError: _UserObject object is not callable' 错误怎么办？","这可能是 TensorFlow 2.0.0 版本的 Bug。解决方案是不要保存整个模型，而是只保存和加载权重（weights）。在训练时使用 model.save_weights() 保存，在评估时使用 model.load_weights() 加载，然后再次编译模型或直接进行预测。","https:\u002F\u002Fgithub.com\u002FcalmiLovesAI\u002FBasic_CNNs_TensorFlow2\u002Fissues\u002F5",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},22210,"输入图像的尺寸必须相同吗？是否取决于我的数据集？","对于特定的网络架构，输入图像尺寸是一个固定值。在训练过程中，程序会将数据集中图像的宽度和高度缩放（resize）到这个特定尺寸，然后再输入网络。因此，无论原始数据集图片尺寸如何，都需要统一调整为网络要求的输入尺寸。","https:\u002F\u002Fgithub.com\u002FcalmiLovesAI\u002FBasic_CNNs_TensorFlow2\u002Fissues\u002F3",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},22211,"如何在测试时获取被预测图片的文件名以便分析对错？","需要在数据加载管道中保留文件名信息。通常在构建 tf.data.Dataset 时，除了返回图像和标签外，还应返回文件名。在测试循环中，将文件名与预测结果一起输出，即可知道哪张图片预测正确或错误。具体实现需修改数据生成器或预处理函数，确保 filename 作为输出的一部分传递到评估脚本中。","https:\u002F\u002Fgithub.com\u002FcalmiLovesAI\u002FBasic_CNNs_TensorFlow2\u002Fissues\u002F34",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},22213,"MobileNet 或其他网络所需的数据集格式是什么样的？","该仓库中的所有网络都适用相同的数据集格式。请严格按照 README.md 中的说明准备数据。通常需要将图片按类别放入不同的子文件夹中，或者制作成 TFRecord 文件。具体目录结构和标签映射方式请参考项目文档。","https:\u002F\u002Fgithub.com\u002FcalmiLovesAI\u002FBasic_CNNs_TensorFlow2\u002Fissues\u002F1",[]]