Ultralytics:解读Proto模块
Ultralytics解读Proto模块前言相关介绍Ultralytics 简介前提条件实验环境ProtoYOLO 分割掩码原型生成模块代码实现功能初始化参数前向方法使用示例流程示意图代码解读注意事项优缺点优点缺点参考文献前言由于本人水平有限难免出现错漏敬请批评改正。更多精彩内容可点击进入Python日常小操作专栏、OpenCV-Python小应用专栏、YOLO系列专栏、自然语言处理专栏、人工智能混合编程实践专栏或我的个人主页查看YOLOs-CPP一个免费开源的YOLO全系列C推理库以YOLO26为例PaddleOCRWin10上安装使用PPOCRLabel标注工具目标检测使用自己的数据集微调DEIMv2进行物体检测图像分割PyTorch从零开始实现SegFormer语义分割图像超分使用自己的数据集微调Real-ESRGAN-x4plus进行超分重建图像生成PyTorch从零开始实现一个简单的扩散模型Stable Diffusion使用自己的数据集微调 Stable Diffusion 3.5 LoRA 文生图模型图像超分使用自己的数据集微调Real-ESRGAN-x2plus进行超分重建Anomalib使用Anomalib 2.1.0训练自己的数据集进行异常检测Anomalib在Linux服务器上安装使用Anomalib 2.1.0人工智能混合编程实践C调用封装好的DLL进行异常检测推理人工智能混合编程实践C调用封装好的DLL进行FP16图像超分重建v3.0隔离系统Python源码编译3.11.8到自定义目录含PGO性能优化在线机的Python环境迁移到离线机上Nuitka 将 Python 脚本封装为 .pyd 或 .so 文件Ultralytics使用 YOLO11 进行速度估计Ultralytics使用 YOLO11 进行物体追踪Ultralytics使用 YOLO11 进行物体计数Ultralytics使用 YOLO11 进行目标打码人工智能混合编程实践C调用Python ONNX进行YOLOv8推理人工智能混合编程实践C调用封装好的DLL进行YOLOv8实例分割人工智能混合编程实践C调用Python ONNX进行图像超分重建人工智能混合编程实践C调用Python AgentOCR进行文本识别通过计算实例简单地理解PatchCore异常检测Python将YOLO格式实例分割数据集转换为COCO格式实例分割数据集YOLOv8 Ultralytics使用Ultralytics框架训练RT-DETR实时目标检测模型基于DETR的人脸伪装检测YOLOv7训练自己的数据集口罩检测YOLOv8训练自己的数据集足球检测YOLOv5TensorRT加速YOLOv5模型推理YOLOv5IoU、GIoU、DIoU、CIoU、EIoU玩转Jetson Nano五TensorRT加速YOLOv5目标检测YOLOv5添加SE、CBAM、CoordAtt、ECA注意力机制YOLOv5yolov5s.yaml配置文件解读、增加小目标检测层Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集YOLOv5使用7.0版本训练自己的实例分割模型车辆、行人、路标、车道线等实例分割使用Kaggle GPU资源免费体验Stable Diffusion开源项目Stable Diffusion在服务器上部署使用Stable Diffusion WebUI进行AI绘图v2.0Stable Diffusion使用自己的数据集微调训练LoRA模型v2.0相关介绍Ultralytics 简介Ultralytics 基于多年的计算机视觉和人工智能基础研究创建了最先进的 (SOTA) YOLO 模型。我们的模型不断更新性能和灵活性快速、准确且易于使用。他们擅长对象检测、跟踪、实例分割、语义分割、图像分类和姿势估计任务。官方文档https://docs.ultralytics.com/官方代码https://github.com/ultralytics/ultralytics.git前提条件熟悉Python、Pytorch实验环境Package Version ------------------------ ------------ Python3.11.8 absl-py2.4.0 accelerate1.13.0 annotated-doc0.0.4 anyio4.13.0 calflops0.3.2 certifi2026.4.22 charset-normalizer3.4.7 click8.3.3 colorama0.4.6 contourpy1.3.3 cycler0.12.1 filelock3.29.0 flatbuffers25.12.19 fonttools4.62.1 fsspec2026.4.0 grpcio1.80.0 h110.16.0 hf-xet1.5.0 httpcore1.0.9 httpx0.28.1 huggingface_hub1.14.0 idna3.15Jinja23.1.6 kiwisolver1.5.0 Markdown3.10.2 markdown-it-py4.2.0 MarkupSafe3.0.3 matplotlib3.10.9 mdurl0.1.2 ml_dtypes0.5.0 mpmath1.3.0 networkx3.6.1 numpy1.26.4 nvidia-cublas-cu1212.8.3.14 nvidia-cuda-cupti-cu1212.8.57 nvidia-cuda-nvrtc-cu1212.8.61 nvidia-cuda-runtime-cu1212.8.57 nvidia-cudnn-cu129.7.1.26 nvidia-cufft-cu1211.3.3.41 nvidia-cufile-cu121.13.0.11 nvidia-curand-cu1210.3.9.55 nvidia-cusolver-cu1211.7.2.55 nvidia-cusparse-cu1212.5.7.53 nvidia-cusparselt-cu120.6.3 nvidia-nccl-cu122.26.2 nvidia-nvjitlink-cu1212.8.61 nvidia-nvtx-cu1212.8.55 onnx1.19.0 onnxruntime-gpu1.26.0 onnxslim0.1.94 opencv-python4.6.0.66 packaging26.2pillow12.2.0 pip24.0polars1.40.1 polars-runtime-321.40.1 protobuf7.34.1 psutil7.2.2 pycocotools2.0.11 Pygments2.20.0 pyparsing3.3.2 python-dateutil2.9.0.post0 PyYAML6.0.3 regex2026.5.9 requests2.34.1 rich15.0.0 safetensors0.7.0 scipy1.16.0 setuptools65.5.0 shellingham1.5.4 six1.17.0 sympy1.14.0 tabulate0.10.0 tensorboard2.20.0 tensorboard-data-server0.7.2 tokenizers0.22.2 torch2.7.1cu128 torchaudio2.7.1cu128 torchvision0.22.1cu128 tqdm4.67.3 transformers5.8.1 triton3.3.1 typer0.25.1 typing_extensions4.15.0 ultralytics8.4.58 ultralytics-thop2.0.19 urllib32.7.0 Werkzeug3.1.8ProtoYOLO 分割掩码原型生成模块Proto是 Ultralytics YOLO 系列如 YOLOv8‑seg中用于实例分割的核心组件负责从特征图中生成一组原型掩码prototype masks。这些原型掩码是通用的、与类别无关的“基掩码”后续会与每个检测框的掩码系数mask coefficients进行线性组合得到最终的分割掩码。该模块通过卷积层 转置卷积上采样的方式将输入特征图转换为固定数量的原型掩码图其空间分辨率通常为输入特征图的 2 倍。代码实现importcv2importmathimporttorchimporttorch.nnasnnimporttorch.nn.functionalasFimportnumpyasnpimportmatplotlib.pyplotaspltdefautopad(k,pNone,d1):# kernel, padding, dilationPad to same shape outputs.ifd1:kd*(k-1)1ifisinstance(k,int)else[d*(x-1)1forxink]# actual kernel-sizeifpisNone:pk//2ifisinstance(k,int)else[x//2forxink]# auto-padreturnpclassConv(nn.Module):Standard convolution module with batch normalization and activation. Attributes: conv (nn.Conv2d): Convolutional layer. bn (nn.BatchNorm2d): Batch normalization layer. act (nn.Module): Activation function layer. default_act (nn.Module): Default activation function (SiLU). default_actnn.SiLU()# default activationdef__init__(self,c1,c2,k1,s1,pNone,g1,d1,actTrue):Initialize Conv layer with given parameters. Args: c1 (int): Number of input channels. c2 (int): Number of output channels. k (int): Kernel size. s (int): Stride. p (int, optional): Padding. g (int): Groups. d (int): Dilation. act (bool | nn.Module): Activation function. super().__init__()self.convnn.Conv2d(c1,c2,k,s,autopad(k,p,d),groupsg,dilationd,biasFalse)self.bnnn.BatchNorm2d(c2)self.actself.default_actifactisTrueelseactifisinstance(act,nn.Module)elsenn.Identity()defforward(self,x):Apply convolution, batch normalization and activation to input tensor. Args: x (torch.Tensor): Input tensor. Returns: (torch.Tensor): Output tensor. returnself.act(self.bn(self.conv(x)))defforward_fuse(self,x):Apply convolution and activation without batch normalization. Args: x (torch.Tensor): Input tensor. Returns: (torch.Tensor): Output tensor. returnself.act(self.conv(x))classProto(nn.Module):Ultralytics YOLO models mask Proto module for segmentation models.def__init__(self,c1:int,c_:int256,c2:int32):Initialize the Ultralytics YOLO models mask Proto module with specified number of protos and masks. Args: c1 (int): Input channels. c_ (int): Intermediate channels. c2 (int): Output channels (number of protos). super().__init__()self.cv1Conv(c1,c_,k3)self.upsamplenn.ConvTranspose2d(c_,c_,2,2,0,biasTrue)# nn.Upsample(scale_factor2, modenearest)self.cv2Conv(c_,c_,k3)self.cv3Conv(c_,c2)defforward(self,x:torch.Tensor)-torch.Tensor:Perform a forward pass through layers using an upsampled input image.returnself.cv3(self.cv2(self.upsample(self.cv1(x))))功能特征降维与提炼通过cv13×3 卷积将输入通道c1压缩到中间通道c_提取紧凑特征。空间上采样使用 2×2 转置卷积ConvTranspose2d将特征图的空间尺寸放大 2 倍高和宽各翻倍增加细节分辨率。特征精炼与输出再经过cv2和cv3两个 3×3 卷积最终输出通道数为c2的特征图其中每个通道即为一个原型掩码。输出尺寸最终输出的空间尺寸为输入尺寸的 2 倍通道数为原型数量c2。初始化参数参数类型说明c1int输入特征图的通道数通常来自骨干网络c_int中间通道数默认 256用于降低计算量c2int输出通道数默认 32即生成的原型掩码数量cv1、cv2、cv3均为Conv模块包含卷积 BatchNorm SiLU 激活卷积核大小为 3步长为 1填充自动 same。upsample为 2×2 转置卷积nn.ConvTranspose2d输入/输出通道均为c_步长 2无填充带偏置。前向方法forward(x)输入x形状[B, c1, H, W]输出[B, c2, 2H, 2W]。计算流程x self.cv1(x)→[B, c_, H, W]x self.upsample(x)→[B, c_, 2H, 2W]x self.cv2(x)→[B, c_, 2H, 2W]x self.cv3(x)→[B, c2, 2H, 2W]使用示例if__name____main__:# 1. 模拟输入特征图通常来自骨干网络或 NeckB,c1,H,W2,128,32,32xtorch.randn(B,c1,H,W)# 2. 创建 Proto 模块输入通道128中间256输出32个原型protoProto(c1128,c_256,c232)# 3. 前向传播withtorch.no_grad():outproto(x)print(输入形状:,x.shape)# [2, 128, 32, 32]print(输出形状:,out.shape)# [2, 32, 64, 64]# 4. 使用真实图像演示仅演示流程实际需提取特征图img_pathcat_640x640.pngimg_bgrcv2.imread(img_path)ifimg_bgrisnotNone:# 缩放到 64x64 并转为张量img_rgbcv2.cvtColor(cv2.resize(img_bgr,(64,64)),cv2.COLOR_BGR2RGB)img_tensortorch.from_numpy(img_rgb).float().permute(2,0,1).unsqueeze(0)/255.0# [1,3,64,64]# 模拟一个简单的特征图通过卷积提取dummy_convnn.Conv2d(3,128,3,1,1)withtorch.no_grad():featdummy_conv(img_tensor)# [1,128,64,64]# 使用 Protoproto_imgProto(c1128,c_64,c24)# 生成4个原型withtorch.no_grad():protosproto_img(feat)# [1, 4, 128, 128]# 可视化第一个原型掩码proto0protos[0,0].cpu().numpy()# [128, 128]proto0(proto0-proto0.min())/(proto0.max()-proto0.min()1e-8)plt.figure(figsize(10,5))plt.subplot(1,2,1)plt.imshow(img_rgb)plt.title(Original)plt.axis(off)plt.subplot(1,2,2)plt.imshow(proto0,cmapgray)plt.title(Prototype 0)plt.axis(off)plt.savefig(proto_demo.png,dpi150)print(可视化已保存为 proto_demo.png)输出示例输入形状: torch.Size([2, 128, 32, 32]) 输出形状: torch.Size([2, 32, 64, 64]) 可视化已保存为 proto_demo.png流程示意图输入 x (B, c1, H, W)cv1: Conv 3x3, c1 → c_特征 (B, c_, H, W)upsample: ConvTranspose2d, 2×2, stride2上采样 (B, c_, 2H, 2W)cv2: Conv 3x3, c_ → c_特征 (B, c_, 2H, 2W)cv3: Conv 3x3, c_ → c2输出原型 (B, c2, 2H, 2W)代码解读__init__self.cv13×3 卷积将输入通道c1压缩到c_减少后续计算量。self.upsample转置卷积反卷积将空间尺寸放大 2 倍同时保持通道数c_。与双线性插值上采样相比转置卷积是可学习的能提供更精细的上采样效果。self.cv2和self.cv3两个 3×3 卷积进一步精炼特征最终将通道数压缩到原型数量c2。forward顺序执行上述层输出原型掩码。注意事项输入与输出尺寸关系输出空间尺寸为输入尺寸的 2 倍因此输入特征图的分辨率需适中过高会增加计算量过低则丢失细节。原型数量c2通常设置为 32 左右过多会增加计算量过少则影响分割精度。转置卷积的“棋盘效应”使用ConvTranspose2d可能产生棋盘格伪影但 YOLO 设计中后续会与掩码系数结合且使用了 BatchNorm 和激活可缓解该问题。激活函数Conv模块默认使用 SiLUSwish与 YOLOv8 整体风格一致。训练与推理该模块在训练和推理阶段行为相同无特殊模式。优缺点优点高效仅由 3 个卷积层和 1 个上采样层组成参数少计算快。可学习上采样使用转置卷积而非固定插值使上采样过程可调有助于生成更精细的原型。输出分辨率高将特征图分辨率提升至 2 倍有利于小目标分割。缺点转置卷积可能引入伪影在不适当的初始化或训练下可能产生棋盘格效应。输出尺寸固定为 2 倍无法灵活调整上采样倍数如需 4 倍需修改代码。原型之间缺乏显式约束生成的原型掩码可能重复或冗余需依赖训练数据学习多样性。在 YOLOv8‑seg 中Proto模块位于检测头之前与掩码系数预测分支并行共同生成最终的分割掩码。它通过少量参数实现了从特征图到原型掩码的转换是实例分割任务的关键组成部分。使用时可根据输入特征图尺寸调整c_和c2以平衡计算量和精度。参考文献[1] https://docs.ultralytics.com/[2] https://github.com/ultralytics/ultralytics.git由于本人水平有限难免出现错漏敬请批评改正。更多精彩内容可点击进入Python日常小操作专栏、OpenCV-Python小应用专栏、YOLO系列专栏、自然语言处理专栏、人工智能混合编程实践专栏或我的个人主页查看YOLOs-CPP一个免费开源的YOLO全系列C推理库以YOLO26为例PaddleOCRWin10上安装使用PPOCRLabel标注工具目标检测使用自己的数据集微调DEIMv2进行物体检测图像分割PyTorch从零开始实现SegFormer语义分割图像超分使用自己的数据集微调Real-ESRGAN-x4plus进行超分重建图像生成PyTorch从零开始实现一个简单的扩散模型Stable Diffusion使用自己的数据集微调 Stable Diffusion 3.5 LoRA 文生图模型图像超分使用自己的数据集微调Real-ESRGAN-x2plus进行超分重建Anomalib使用Anomalib 2.1.0训练自己的数据集进行异常检测Anomalib在Linux服务器上安装使用Anomalib 2.1.0人工智能混合编程实践C调用封装好的DLL进行异常检测推理人工智能混合编程实践C调用封装好的DLL进行FP16图像超分重建v3.0隔离系统Python源码编译3.11.8到自定义目录含PGO性能优化在线机的Python环境迁移到离线机上Nuitka 将 Python 脚本封装为 .pyd 或 .so 文件Ultralytics使用 YOLO11 进行速度估计Ultralytics使用 YOLO11 进行物体追踪Ultralytics使用 YOLO11 进行物体计数Ultralytics使用 YOLO11 进行目标打码人工智能混合编程实践C调用Python ONNX进行YOLOv8推理人工智能混合编程实践C调用封装好的DLL进行YOLOv8实例分割人工智能混合编程实践C调用Python ONNX进行图像超分重建人工智能混合编程实践C调用Python AgentOCR进行文本识别通过计算实例简单地理解PatchCore异常检测Python将YOLO格式实例分割数据集转换为COCO格式实例分割数据集YOLOv8 Ultralytics使用Ultralytics框架训练RT-DETR实时目标检测模型基于DETR的人脸伪装检测YOLOv7训练自己的数据集口罩检测YOLOv8训练自己的数据集足球检测YOLOv5TensorRT加速YOLOv5模型推理YOLOv5IoU、GIoU、DIoU、CIoU、EIoU玩转Jetson Nano五TensorRT加速YOLOv5目标检测YOLOv5添加SE、CBAM、CoordAtt、ECA注意力机制YOLOv5yolov5s.yaml配置文件解读、增加小目标检测层Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集YOLOv5使用7.0版本训练自己的实例分割模型车辆、行人、路标、车道线等实例分割使用Kaggle GPU资源免费体验Stable Diffusion开源项目Stable Diffusion在服务器上部署使用Stable Diffusion WebUI进行AI绘图v2.0Stable Diffusion使用自己的数据集微调训练LoRA模型v2.0

相关新闻

BLIP:Bootstrapping Language-Image Pre-training

BLIP:Bootstrapping Language-Image Pre-training

研究背景视觉-语言预训练(Vision-Language Pre-training,简称 VLP)显著提升了许多视觉语言任务的性能。VLP可以理解为视觉领域的"BERT"或者"GPT"。基本思想是:用大量图片文本数据进行预训练;让模型…

2026/9/25 13:14:45 阅读更多 →
AI编程工具如何降低技术门槛:从NBA选秀预测看未来开发模式变革

AI编程工具如何降低技术门槛:从NBA选秀预测看未来开发模式变革

你有多久没写过代码了?或者说,你有多久没觉得“写代码”这件事,必须得是科班出身、精通算法、能徒手撸框架的程序员才能干的了?最近,一场围绕NBA选秀预测的AI黑客松,给出了一个完全不同的答案。参赛的69名选…

2026/9/25 13:14:53 阅读更多 →
一、为什么要学习 USB 协议

一、为什么要学习 USB 协议

一、为什么要学习 USB 协议 引言:从日常使用到技术内核当你把U盘插入电脑,或者用数据线给手机充电时,你是否想过:为什么不同品牌、不同型号的设备都能通过同一根线缆进行通信?为什么USB能同时支持键盘、鼠标、摄像头、…

2026/9/25 16:22:23 阅读更多 →

最新新闻

Java Jar包报错Invalid CEN header:zip64字段损坏的排查与修复

Java Jar包报错Invalid CEN header:zip64字段损坏的排查与修复

1. 这个报错的现场,以及我为什么对1.8.13这个版本印象这么深先说场景:你在本地跑一个Spring Boot项目,本来好好的,换了一台机器、更新了依赖或者让同事拉了一份代码,一执行mvn clean package或者直接java -jar&#xf…

2026/9/26 14:09:37 阅读更多 →
Tessy集成测试C编译报错aggregate value:定位与修复

Tessy集成测试C编译报错aggregate value:定位与修复

如果你和我一样,是在Tessy集成测试工程的编译日志里看到这行报错的,那你大概率已经盯着屏幕想了一会儿“我明明没写错C代码,怎么编译器还是嫌我用错了类型”。error: aggregate value used where an integer was expected,这行英文…

2026/9/26 14:09:37 阅读更多 →
Guohua Diffusion实战:从扩散模型参数调优到国画风格批量生成落地

Guohua Diffusion实战:从扩散模型参数调优到国画风格批量生成落地

Guohua Diffusion这个词,最近在几个产区的设计圈里被反复提起。起初我以为又是个追着AI风口跑的概念包装,直到自己下场把整套流程跑通,从一线产区的高端定制打样,一路推到二线产区的批量生产规范,才意识到这其实是国画…

2026/9/26 14:09:37 阅读更多 →
主动配电网故障恢复统一模型:重构与孤岛划分的Matlab实现

主动配电网故障恢复统一模型:重构与孤岛划分的Matlab实现

1. 为什么故障恢复非得把“重构”和“孤岛划分”塞进同一个模型1.1 传统两阶段做法的问题在哪做主动配电网故障恢复的人,几乎都经历过这种纠结:配电网某条馈线跳闸后,一部分负荷失电,手上有分布式电源(DG)&…

2026/9/26 14:09:37 阅读更多 →
AI Agent能力扩展:MCP、Tools、Skills三者的区别与协同实战

AI Agent能力扩展:MCP、Tools、Skills三者的区别与协同实战

三句话就能说清MCP、Tools、Skills的关系,但我见过太多人在群里问“这仨到底啥区别”“先学哪个”“是不是有了MCP就不用写Tools了”。说实话,这三个词看起来都是给AI Agent扩展能力,实际定位完全不同,用错场景就是灾难。这篇内容…

2026/9/26 14:09:37 阅读更多 →
PySpark+Hadoop打造视频推荐与弹幕情感分析系统:从环境搭建到毕业设计全解析

PySpark+Hadoop打造视频推荐与弹幕情感分析系统:从环境搭建到毕业设计全解析

大数据方向的毕业设计,最怕的不是代码写不出来,而是做完了连自己都讲不清楚它到底干了什么。Python PySpark Hadoop 视频推荐系统加视频弹幕情感分析,这个组合属于典型的“重计算、看得见、能落地”的选题:底层用 Hadoop 做分布…

2026/9/26 14:08:37 阅读更多 →

日新闻

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、…

2026/9/26 0:00:25 阅读更多 →
学校官网模拟全流程实践:从页面布局到后端接口与部署

学校官网模拟全流程实践:从页面布局到后端接口与部署

如果你正在找一门 Web 大作业的题目,或者刚开始接触 Web 前端开发想做点能拿来展示的东西,“学校官网模拟”几乎是最稳的选择。题目看着简单,但要把导航、新闻列表、轮播 Banner、二级页面、后台数据都串起来,其实已经把前端布局、…

2026/9/26 0:00:25 阅读更多 →
超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

简介:这是一份面向游戏开发初学者与C进阶学习者的超级玛丽(超级马里奥)游戏源码,基于C面向对象编程实现,适合想通过经典项目理解游戏主循环、角色类设计、地图关卡加载与物理碰撞检测的读者参考。压缩包共49个文件&…

2026/9/26 0:00:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/25 19:27:14 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/25 11:15:26 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/25 20:29:09 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/25 19:27:26 阅读更多 →