[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-creafz--pytorch-cnn-finetune":3,"tool-creafz--pytorch-cnn-finetune":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 真正成长为懂上",159636,2,"2026-04-17T23:33:34",[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":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":76,"owner_website":76,"owner_url":77,"languages":78,"stars":87,"forks":88,"last_commit_at":89,"license":90,"difficulty_score":91,"env_os":92,"env_gpu":93,"env_ram":93,"env_deps":94,"category_tags":100,"github_topics":101,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":106,"updated_at":107,"faqs":108,"releases":138},8724,"creafz\u002Fpytorch-cnn-finetune","pytorch-cnn-finetune","Fine-tune pretrained Convolutional Neural Networks with PyTorch","pytorch-cnn-finetune 是一个基于 PyTorch 的开源库，旨在帮助开发者快速微调预训练的卷积神经网络（CNN）。它解决了在迁移学习中重复构建模型架构、手动替换分类层以及处理不同输入分辨率的繁琐问题，让用户能轻松将已在 ImageNet 上训练好的主流模型应用到自己的自定义数据集上。\n\n该工具非常适合从事计算机视觉研究的科研人员、算法工程师以及需要快速验证想法的深度学习开发者。其核心亮点在于极高的灵活性与便捷性：它不仅支持包括 ResNet、DenseNet、MobileNet 在内的数十种经典及前沿架构，还能自动适配不同数量的分类任务。用户无需受限于原始模型的输入尺寸，可自由调整图像分辨率，并能按需添加 Dropout 层、更换池化策略或完全自定义分类器结构。只需几行代码，即可完成从模型加载到针对新任务改造的全过程，显著降低了高性能视觉模型的开发门槛。","### Fine-tune pretrained Convolutional Neural Networks with PyTorch.\n\n\n[![PyPI](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fcnn-finetune.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fcnn-finetune\u002F)\n[![CircleCI](https:\u002F\u002Fcircleci.com\u002Fgh\u002Fcreafz\u002Fpytorch-cnn-finetune\u002Ftree\u002Fmaster.svg?style=shield)](https:\u002F\u002Fcircleci.com\u002Fgh\u002Fcreafz\u002Fpytorch-cnn-finetune)\n[![codecov.io](https:\u002F\u002Fcodecov.io\u002Fgithub\u002Fcreafz\u002Fpytorch-cnn-finetune\u002Fcoverage.svg?branch=master)](https:\u002F\u002Fcodecov.io\u002Fgithub\u002Fcreafz\u002Fpytorch-cnn-finetune)\n\n\n### Features\n- Gives access to the most popular CNN architectures pretrained on ImageNet.\n- Automatically replaces classifier on top of the network, which allows you to train a network with a dataset that has a different number of classes.\n- Allows you to use images with any resolution (and not only the resolution that was used for training the original model on ImageNet).\n- Allows adding a Dropout layer or a custom pooling layer.\n\n\n### Supported architectures and models\n\n#### From the [torchvision](https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fvision\u002F) package:\n\n- ResNet (`resnet18`, `resnet34`, `resnet50`, `resnet101`, `resnet152`)\n- ResNeXt (`resnext50_32x4d`, `resnext101_32x8d`)\n- DenseNet (`densenet121`, `densenet169`, `densenet201`, `densenet161`)\n- Inception v3 (`inception_v3`)\n- VGG (`vgg11`, `vgg11_bn`, `vgg13`, `vgg13_bn`, `vgg16`, `vgg16_bn`, `vgg19`, `vgg19_bn`)\n- SqueezeNet (`squeezenet1_0`, `squeezenet1_1`)\n- MobileNet V2 (`mobilenet_v2`)\n- ShuffleNet v2 (`shufflenet_v2_x0_5`, `shufflenet_v2_x1_0`)\n- AlexNet (`alexnet`)\n- GoogLeNet (`googlenet`)\n\n#### From the [Pretrained models for PyTorch](https:\u002F\u002Fgithub.com\u002FCadene\u002Fpretrained-models.pytorch) package:\n- ResNeXt (`resnext101_32x4d`, `resnext101_64x4d`)\n- NASNet-A Large (`nasnetalarge`)\n- NASNet-A Mobile (`nasnetamobile`)\n- Inception-ResNet v2 (`inceptionresnetv2`)\n- Dual Path Networks (`dpn68`, `dpn68b`, `dpn92`, `dpn98`, `dpn131`, `dpn107`)\n- Inception v4 (`inception_v4`)\n- Xception (`xception`)\n- Squeeze-and-Excitation Networks (`senet154`, `se_resnet50`, `se_resnet101`, `se_resnet152`, `se_resnext50_32x4d`, `se_resnext101_32x4d`)\n- PNASNet-5-Large (`pnasnet5large`)\n- PolyNet (`polynet`)\n\n\n### Requirements\n* Python 3.5+\n* PyTorch 1.1+\n\n### Installation\n\n```\npip install cnn_finetune\n```\n\n\n### Major changes:\n#### Version 0.4\n- Default value for `pretrained` argument in `make_model` is changed from `False` to `True`. Now call `make_model('resnet18', num_classes=10)` is equal to `make_model('resnet18', num_classes=10, pretrained=True)`\n\n\n### Example usage:\n\n#### Make a model with ImageNet weights for 10 classes\n\n```\nfrom cnn_finetune import make_model\n\nmodel = make_model('resnet18', num_classes=10, pretrained=True)\n```\n\n#### Make a model with Dropout\n```\nmodel = make_model('nasnetalarge', num_classes=10, pretrained=True, dropout_p=0.5)\n```\n\n#### Make a model with Global Max Pooling instead of Global Average Pooling\n```\nimport torch.nn as nn\n\nmodel = make_model('inceptionresnetv2', num_classes=10, pretrained=True, pool=nn.AdaptiveMaxPool2d(1))\n```\n\n\n#### Make a VGG16 model that takes images of size 256x256 pixels\nVGG and AlexNet models use fully-connected layers, so you have to additionally pass the input size of images\nwhen constructing a new model. This information is needed to determine the input size of fully-connected layers.\n```\nmodel = make_model('vgg16', num_classes=10, pretrained=True, input_size=(256, 256))\n```\n\n\n#### Make a VGG16 model that takes images of size 256x256 pixels and uses a custom classifier\n```\nimport torch.nn as nn\n\ndef make_classifier(in_features, num_classes):\n    return nn.Sequential(\n        nn.Linear(in_features, 4096),\n        nn.ReLU(inplace=True),\n        nn.Linear(4096, num_classes),\n    )\n\nmodel = make_model('vgg16', num_classes=10, pretrained=True, input_size=(256, 256), classifier_factory=make_classifier)\n```\n\n\n#### Show preprocessing that was used to train the original model on ImageNet\n```\n>> model = make_model('resnext101_64x4d', num_classes=10, pretrained=True)\n>> print(model.original_model_info)\nModelInfo(input_space='RGB', input_size=[3, 224, 224], input_range=[0, 1], mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])\n>> print(model.original_model_info.mean)\n[0.485, 0.456, 0.406]\n```\n\n#### CIFAR10 Example\nSee [examples\u002Fcifar10.py](examples\u002Fcifar10.py) file (requires PyTorch 1.1+).\n","### 使用 PyTorch 微调预训练的卷积神经网络。\n\n\n[![PyPI](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fcnn-finetune.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fcnn-finetune\u002F)\n[![CircleCI](https:\u002F\u002Fcircleci.com\u002Fgh\u002Fcreafz\u002Fpytorch-cnn-finetune\u002Ftree\u002Fmaster.svg?style=shield)](https:\u002F\u002Fcircleci.com\u002Fgh\u002Fcreafz\u002Fpytorch-cnn-finetune)\n[![codecov.io](https:\u002F\u002Fcodecov.io\u002Fgithub\u002Fcreafz\u002Fpytorch-cnn-finetune\u002Fcoverage.svg?branch=master)](https:\u002F\u002Fcodecov.io\u002Fgithub\u002Fcreafz\u002Fpytorch-cnn-finetune)\n\n\n### 功能\n- 提供访问在 ImageNet 上预训练的最流行 CNN 架构的接口。\n- 自动替换网络顶部的分类器，使您能够使用具有不同类别数的数据集来训练网络。\n- 允许使用任意分辨率的图像（而不仅限于原始模型在 ImageNet 上训练时使用的分辨率）。\n- 支持添加 Dropout 层或自定义池化层。\n\n\n### 支持的架构和模型\n\n#### 来自 [torchvision](https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fvision\u002F) 包：\n\n- ResNet (`resnet18`, `resnet34`, `resnet50`, `resnet101`, `resnet152`)\n- ResNeXt (`resnext50_32x4d`, `resnext101_32x8d`)\n- DenseNet (`densenet121`, `densenet169`, `densenet201`, `densenet161`)\n- Inception v3 (`inception_v3`)\n- VGG (`vgg11`, `vgg11_bn`, `vgg13`, `vgg13_bn`, `vgg16`, `vgg16_bn`, `vgg19`, `vgg19_bn`)\n- SqueezeNet (`squeezenet1_0`, `squeezenet1_1`)\n- MobileNet V2 (`mobilenet_v2`)\n- ShuffleNet v2 (`shufflenet_v2_x0_5`, `shufflenet_v2_x1_0`)\n- AlexNet (`alexnet`)\n- GoogLeNet (`googlenet`)\n\n#### 来自 [Pretrained models for PyTorch](https:\u002F\u002Fgithub.com\u002FCadene\u002Fpretrained-models.pytorch) 包：\n- ResNeXt (`resnext101_32x4d`, `resnext101_64x4d`)\n- NASNet-A Large (`nasnetalarge`)\n- NASNet-A Mobile (`nasnetamobile`)\n- Inception-ResNet v2 (`inceptionresnetv2`)\n- Dual Path Networks (`dpn68`, `dpn68b`, `dpn92`, `dpn98`, `dpn131`, `dpn107`)\n- Inception v4 (`inception_v4`)\n- Xception (`xception`)\n- Squeeze-and-Excitation Networks (`senet154`, `se_resnet50`, `se_resnet101`, `se_resnet152`, `se_resnext50_32x4d`, `se_resnext101_32x4d`)\n- PNASNet-5-Large (`pnasnet5large`)\n- PolyNet (`polynet`)\n\n\n### 需求\n* Python 3.5+\n* PyTorch 1.1+\n\n### 安装\n\n```\npip install cnn_finetune\n```\n\n\n### 主要变更：\n#### 版本 0.4\n- `make_model` 函数中 `pretrained` 参数的默认值由 `False` 改为 `True`。现在调用 `make_model('resnet18', num_classes=10)` 等同于 `make_model('resnet18', num_classes=10, pretrained=True)`。\n\n\n### 使用示例：\n\n#### 创建一个带有 ImageNet 权重、适用于 10 类的模型\n\n```\nfrom cnn_finetune import make_model\n\nmodel = make_model('resnet18', num_classes=10, pretrained=True)\n```\n\n#### 创建一个带有 Dropout 的模型\n```\nmodel = make_model('nasnetalarge', num_classes=10, pretrained=True, dropout_p=0.5)\n```\n\n#### 创建一个使用全局最大池化而非全局平均池化的模型\n```\nimport torch.nn as nn\n\nmodel = make_model('inceptionresnetv2', num_classes=10, pretrained=True, pool=nn.AdaptiveMaxPool2d(1))\n```\n\n\n#### 创建一个可接受 256x256 像素图像的 VGG16 模型\n由于 VGG 和 AlexNet 模型使用全连接层，在构建新模型时需要额外指定输入图像的尺寸。这一信息用于确定全连接层的输入大小。\n```\nmodel = make_model('vgg16', num_classes=10, pretrained=True, input_size=(256, 256))\n```\n\n\n#### 创建一个可接受 256x256 像素图像并使用自定义分类器的 VGG16 模型\n```\nimport torch.nn as nn\n\ndef make_classifier(in_features, num_classes):\n    return nn.Sequential(\n        nn.Linear(in_features, 4096),\n        nn.ReLU(inplace=True),\n        nn.Linear(4096, num_classes),\n    )\n\nmodel = make_model('vgg16', num_classes=10, pretrained=True, input_size=(256, 256), classifier_factory=make_classifier)\n```\n\n\n#### 查看原始模型在 ImageNet 上训练时所使用的预处理方法\n```\n>> model = make_model('resnext101_64x4d', num_classes=10, pretrained=True)\n>> print(model.original_model_info)\nModelInfo(input_space='RGB', input_size=[3, 224, 224], input_range=[0, 1], mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])\n>> print(model.original_model_info.mean)\n[0.485, 0.456, 0.406]\n```\n\n#### CIFAR10 示例\n请参阅 [examples\u002Fcifar10.py](examples\u002Fcifar10.py) 文件（需要 PyTorch 1.1+）。","# pytorch-cnn-finetune 快速上手指南\n\n`pytorch-cnn-finetune` 是一个基于 PyTorch 的实用工具库，旨在简化预训练卷积神经网络（CNN）的微调过程。它支持自动替换分类器以适应不同类别数量的数据集，并允许使用任意分辨率的图像进行训练。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows\n*   **Python 版本**：3.5 或更高\n*   **核心依赖**：PyTorch 1.1 或更高版本\n\n> **提示**：国内用户建议使用清华源或阿里源安装 PyTorch，以获得更快的下载速度。\n\n## 安装步骤\n\n您可以直接使用 `pip` 进行安装。为了提升下载速度，推荐指定国内镜像源：\n\n```bash\npip install cnn_finetune -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n## 基本使用\n\n### 1. 快速构建模型\n\n最简单的用法是加载一个在 ImageNet 上预训练的模型（如 ResNet18），并将其分类头自动调整为适合你数据集的类别数量（例如 10 类）。默认情况下 `pretrained` 参数为 `True`。\n\n```python\nfrom cnn_finetune import make_model\n\n# 创建一个用于 10 分类任务的 ResNet18 模型，加载 ImageNet 预训练权重\nmodel = make_model('resnet18', num_classes=10)\n```\n\n### 2. 处理不同分辨率的图像\n\n该库允许输入任意分辨率的图像。但对于包含全连接层的模型（如 VGG 或 AlexNet），需要显式指定输入图像的尺寸，以便库能正确计算全连接层的输入维度。\n\n```python\n# 创建一个接受 256x256 像素输入的 VGG16 模型\nmodel = make_model('vgg16', num_classes=10, input_size=(256, 256))\n```\n\n### 3. 自定义模型结构\n\n您还可以通过参数轻松添加 Dropout 层、更换池化方式或完全自定义分类器结构。\n\n**添加 Dropout：**\n```python\n# 创建带有 0.5 丢弃率的 NASNet-large 模型\nmodel = make_model('nasnetalarge', num_classes=10, dropout_p=0.5)\n```\n\n**更换池化层（使用最大池化代替平均池化）：**\n```python\nimport torch.nn as nn\n\nmodel = make_model('inceptionresnetv2', num_classes=10, pool=nn.AdaptiveMaxPool2d(1))\n```\n\n**使用自定义分类器：**\n```python\nimport torch.nn as nn\n\ndef make_classifier(in_features, num_classes):\n    return nn.Sequential(\n        nn.Linear(in_features, 4096),\n        nn.ReLU(inplace=True),\n        nn.Linear(4096, num_classes),\n    )\n\n# 为 VGG16 指定自定义分类器结构\nmodel = make_model('vgg16', num_classes=10, input_size=(256, 256), classifier_factory=make_classifier)\n```\n\n### 4. 获取预处理参数\n\n模型构建后，可以通过 `original_model_info` 属性查看原模型在 ImageNet 训练时使用的预处理参数（如均值、标准差），以便在数据加载阶段进行一致的归一化处理。\n\n```python\nmodel = make_model('resnext101_64x4d', num_classes=10)\n\n# 打印预处理信息\nprint(model.original_model_info)\n# 输出示例：ModelInfo(input_space='RGB', input_size=[3, 224, 224], ..., mean=[0.485, 0.456, 0.406], ...)\n\n# 单独获取均值用于数据变换\nmean_values = model.original_model_info.mean\n```","某医疗科技公司的算法工程师正急需开发一个能识别五种特定皮肤病变的辅助诊断系统，但团队缺乏从零训练深度模型的海量标注数据和算力资源。\n\n### 没有 pytorch-cnn-finetune 时\n- **架构搭建繁琐**：工程师需手动下载 ResNet 或 DenseNet 等预训练权重，并编写大量样板代码来剔除原分类头、适配新的 5 类输出，极易因维度不匹配报错。\n- **输入限制僵化**：原始模型通常强制要求固定分辨率（如 224x224），面对医院提供的不同尺寸皮肤镜图像，必须额外编写复杂的缩放或裁剪逻辑，否则无法推理。\n- **定制扩展困难**：若想在全连接层前加入 Dropout 防止过拟合，或将平均池化改为最大池化以捕捉显著病灶特征，需要深入修改模型内部结构，调试成本高。\n- **多模型试错慢**：为了找到最优架构，需在 torchvision 和第三方库间反复切换代码风格，导致对比实验周期被大幅拉长。\n\n### 使用 pytorch-cnn-finetune 后\n- **一键迁移学习**：仅需一行 `make_model('resnet50', num_classes=5, pretrained=True)` 即可自动加载 ImageNet 权重并重构分类器，将模型准备时间从数小时缩短至秒级。\n- **灵活适配分辨率**：直接传入 `input_size` 参数即可支持任意尺寸的皮肤镜图像输入，无需担心全连接层维度错误，完美兼容临床多样数据。\n- **轻松定制结构**：通过简单的 `dropout_p` 参数或传入自定义池化层函数，即可快速添加正则化或调整特征提取策略，显著提升小样本下的泛化能力。\n- **统一实验接口**：支持包括 NASNet、SE-ResNet 在内的数十种主流架构，且调用方式完全一致，让团队能高效并行测试多种模型以锁定最佳方案。\n\npytorch-cnn-finetune 通过极简的 API 屏蔽了底层复杂的模型改造细节，让开发者能专注于数据与业务逻辑，极速实现从预训练模型到垂直领域应用的落地。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcreafz_pytorch-cnn-finetune_08d7bea3.png","creafz","Alex Parinov","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fcreafz_f88bd517.jpg","Deep Learning | Computer Vision | ML Infrastructure",null,"https:\u002F\u002Fgithub.com\u002Fcreafz",[79,83],{"name":80,"color":81,"percentage":82},"Python","#3572A5",96.3,{"name":84,"color":85,"percentage":86},"Shell","#89e051",3.7,725,121,"2026-02-25T00:49:35","MIT",1,"","未说明",{"notes":95,"python":96,"dependencies":97},"该工具支持从 torchvision 和 pretrained-models.pytorch 加载多种预训练 CNN 架构。对于使用全连接层的模型（如 VGG 和 AlexNet），构建新模型时必须额外传递输入图像尺寸（input_size）。默认情况下 make_model 函数会加载预训练权重（pretrained=True）。","3.5+",[98,99],"torch>=1.1","torchvision",[14],[102,103,104,105],"pytorch","deep-learning","convolutional-neural-networks","pretrained-models","2026-03-27T02:49:30.150509","2026-04-18T09:20:50.114235",[109,114,119,123,128,133],{"id":110,"question_zh":111,"answer_zh":112,"source_url":113},39092,"如何在多 GPU 环境下进行模型微调？","在使用 `nn.DataParallel` 包装模型后，原始模型属性（如 `original_model_info`）会被移动到 `.module` 属性下。访问这些属性时需使用 `model.module.original_model_info`。此外，若需冻结部分层并重新初始化优化器，应在设置 `requires_grad` 属性之后创建优化器实例，以确保优化器只更新需要训练的参数。示例代码：\n1. 冻结特征提取器参数：`for param in model._features.parameters(): param.requires_grad = False`\n2. 创建新优化器：`optimizer = optim.Adam((param for param in model.parameters() if param.requires_grad), lr=args.lr)`","https:\u002F\u002Fgithub.com\u002Fcreafz\u002Fpytorch-cnn-finetune\u002Fissues\u002F7",{"id":115,"question_zh":116,"answer_zh":117,"source_url":118},39093,"加载 Xception 等预训练模型时出现 'size mismatch' 错误怎么办？","该错误通常是因为输入图像尺寸与预训练权重不匹配，或者模型架构中某些层（如 pointwise convolution）的维度定义不一致。对于 Xception 模型，请确保输入尺寸符合官方预训练权重的要求（通常为 299x299）。如果使用了 `dropout_p > 0`，库会在特征提取器和分类器之间自动添加一个新的 Dropout 层，这可能会改变网络结构导致加载失败。建议先尝试将 `dropout_p` 设为 0 测试是否能正常加载权重。","https:\u002F\u002Fgithub.com\u002Fcreafz\u002Fpytorch-cnn-finetune\u002Fissues\u002F8",{"id":120,"question_zh":121,"answer_zh":122,"source_url":118},39094,"设置 dropout_p > 0 时，Dropout 层具体添加在网络的哪个位置？","当设置 `dropout_p > 0` 时，库会在特征提取器（feature extractor）和分类器（classifier）之间强制添加一个新的 Dropout 层。它不会修改原网络内部（如 DenseNet 的 dense block 之后）已有的 Dropout 层的丢弃率，而是在最后分类层之前额外插入一层。",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},39095,"使用 AlexNet 或 Inception 系列模型时报 'Output size is too small' 错误如何解决？","此错误表明输入图像尺寸过小，经过多次下采样后特征图尺寸变为 0 或负数。解决方法是增大输入图像的尺寸（`input_size`）。例如，VGG 系列的最小可接受尺寸通常为 32x32，而 Inception 系列可能需要更大的尺寸（如 224x224 或 299x299）。虽然增大尺寸会增加计算复杂度，但这是保证网络正常运行的必要条件。不建议随意移除原模型的下采样层，因为这会破坏预训练权重的有效性。","https:\u002F\u002Fgithub.com\u002Fcreafz\u002Fpytorch-cnn-finetune\u002Fissues\u002F4",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},39096,"为什么某些模型（如 DPN, ResNet）在未指定 input_size 或指定后会报错？","不同模型对 `input_size` 参数的依赖不同。对于 VGG 和 SqueezeNet 系列，必须显式提供 `input_size` 参数（例如 `input_size=(224, 224)`），否则会抛出异常。对于 Cifar10 等小分辨率数据集（32x32），使用 DPN 等模型时也需要显式指定 `input_size=(32, 32)`。如果在某些 ResNet 模型上指定 `input_size` 后出现 `'ResNet' object has no attribute 'features'` 错误，可能是库版本问题或特定模型实现的兼容性问题，建议检查是否使用了最新的库版本，或尝试不指定该参数看默认行为是否正常。","https:\u002F\u002Fgithub.com\u002Fcreafz\u002Fpytorch-cnn-finetune\u002Fissues\u002F3",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},39097,"目前支持哪些新的 torchvision 模型（如 MobileNet, ShuffleNet）？","从 `cnn_finetune` 0.6.0 版本开始，已支持以下来自 torchvision 的新预训练模型：`resnext50_32x4d`, `resnext101_32x8d`, `mobilenet_v2`, `shufflenet_v2_x0_5`, `shufflenet_v2_x1_0`, 以及 `googlenet`。注意，由于 `shufflenetv2_x1.5` 和 `shufflenetv2_x2.0` 没有官方预训练权重，因此未被包含在内。使用时请确保已升级到最新版本。","https:\u002F\u002Fgithub.com\u002Fcreafz\u002Fpytorch-cnn-finetune\u002Fissues\u002F14",[]]