YOLOv11改进 | 注意力篇 | 用TaoToken统一通道接入DAT可变形注意力机制
1. 为什么要在 YOLOv11 里塞进 DAT 可变形注意力YOLOv11 的检测头在 P3/P4/P5 三个尺度上做特征融合默认的 C3k2 和 C2PSA 已经能覆盖大部分常规目标。但如果你做过小目标密集场景比如无人机航拍里的车辆、工业质检里的划痕、遥感图像里的船舶会发现一个共性问题固定采样网格的卷积核对形变目标的建模能力有限目标被遮挡、旋转、尺度突变时特征响应会明显掉点。Deformable Attention TransformerDAT的核心思路就是让注意力自己去学一组与查询无关的偏移量把 key/value 采样点挪到真正有信息的位置而不是死板地在规则网格上取。我试过在 P3 小目标层后面挂一个 DAT 模块mAP50 在自建数据集上有 1.8 个点的提升代价是参数量增加约 0.6M推理延迟增加 3ms 左右RTX 3060640 输入。这个性价比在精度敏感的项目里是可以接受的。DAT 的偏移量由一个小卷积子网络基于查询特征生成再用双线性插值从特征图上采样最后走标准多头注意力。整个过程内存复杂度保持线性不会像全局注意力那样爆显存。这篇文章要解决的问题很具体怎么把 DAT 模块干净地嵌进 YOLOv11 的工程结构里怎么用 TaoToken 统一通道管理训练和推理时的模型调用以及配置写错时常见的报错怎么排查。适合已经跑通过 YOLOv11 基础训练、想加注意力模块但不想把工程搞乱的人。下面从配置骨架开始一步步给可复制的片段。2. TaoToken 统一通道前置准备与 config.toml 骨架在动手改网络结构之前先把模型调用通道理顺。YOLOv11 训练本身是本地跑的但你在调参阶段经常需要调用大模型做代码审查、配置生成、报错解释或者用 coding agent 帮你改 tasks.py 里的注册逻辑。如果每个工具都单独配一套 Key管理成本很高。TaoToken 的做法是提供一个统一的 API 入口Base URL 固定为https://taotoken.net/api所有模型走同一个 Key。你需要先去控制台拿 Key。打开https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentconsole在 API Keys 页面创建一个新 Key复制出来。注意 Key 只在创建时完整显示一次丢了就重新建。拿到 Key 之后在项目根目录建一个config.toml把通道信息集中管理。这个文件不要提交到 git加进.gitignore。骨架如下# config.toml - TaoToken 统一通道配置 [taotoken] base_url https://taotoken.net/api api_key sk-你的Key default_model claude-sonnet-4-20250514 [taotoken.models] code_review claude-sonnet-4-20250514 config_gen gpt-4o error_explain claude-sonnet-4-20250514 [yolo] data_yaml datasets/data.yaml model_yaml datasets/yolo11DAT.yaml imgsz 640 epochs 100 batch 8 device 0对应的settings.json用于那些读 JSON 配置的工具比如某些 IDE 插件或 agent 框架{ taotoken: { base_url: https://taotoken.net/api, api_key: sk-你的Key, model_id: claude-sonnet-4-20250514 }, yolo: { project: runs/train, name: exp_dat, optimizer: SGD, close_mosaic: 10 } }这里三件套必须对齐Base URL 是https://taotoken.net/apiKey 是控制台拿的那串Model ID 按你实际用的模型填。如果你用 Claude Code 做代码辅助它的配置也是读这三个字段路径通常在~/.claude/settings.json或项目级.claude/settings.json。Cline 的 MCP 配置同理在cline_mcp_settings.json里填 Base URL 和 Key。Codex 的auth.json也是同一套逻辑把 base_url 和 api_key 写进去即可。配好之后先别急着改网络用一条 curl 验证通道通不通curl https://taotoken.net/api/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer sk-你的Key \ -d { model: claude-sonnet-4-20250514, messages: [{role: user, content: 回复 ok}], max_tokens: 10 }返回里能看到choices字段就说明通道正常。这一步很重要因为后面改 tasks.py 如果报错你要能区分是网络通道问题还是代码问题。3. DAT 模块可复制配置与 YOLOv11 注意力层替换现在进入核心工程部分。DAT 的代码结构分三块偏移量生成网络、可变形采样、带相对位置偏置的注意力。完整代码比较长我把它拆成可复制的片段你按顺序放进项目。第一步在ultralytics/nn/下新建Extramodule目录里面建DAT.py。文件头部导入和工具函数import torch import torch.nn.functional as F from torch import nn, einsum from einops import rearrange def exists(val): return val is not None def default(val, d): return val if exists(val) else d def divisible_by(numer, denom): return (numer % denom) 0 def create_grid_like(t, dim0): h, w, device *t.shape[-2:], t.device grid torch.stack(torch.meshgrid( torch.arange(h, devicedevice), torch.arange(w, devicedevice), indexingij), dimdim) grid.requires_grad False grid grid.type_as(t) return grid def normalize_grid(grid, dim1, out_dim-1): h, w grid.shape[-2:] grid_h, grid_w grid.unbind(dimdim) grid_h 2.0 * grid_h / max(h - 1, 1) - 1.0 grid_w 2.0 * grid_w / max(w - 1, 1) - 1.0 return torch.stack((grid_h, grid_w), dimout_dim)接着是相对位置偏置模块 CPB 和主模块 DeformableAttention。CPB 负责把查询网格和采样网格的位置差编码成注意力偏置depth 设为 2 就够了再深收益不明显还拖速度class Scale(nn.Module): def __init__(self, scale): super().__init__() self.scale scale def forward(self, x): return x * self.scale class CPB(nn.Module): def __init__(self, dim, heads, offset_groups, depth): super().__init__() self.heads heads self.offset_groups offset_groups self.mlp nn.ModuleList([]) self.mlp.append(nn.Sequential(nn.Linear(2, dim), nn.ReLU())) for _ in range(depth - 1): self.mlp.append(nn.Sequential(nn.Linear(dim, dim), nn.ReLU())) self.mlp.append(nn.Linear(dim, heads // offset_groups)) def forward(self, grid_q, grid_kv): grid_q rearrange(grid_q, h w c - 1 (h w) c) grid_kv rearrange(grid_kv, b h w c - b (h w) c) pos rearrange(grid_q, b i c - b i 1 c) - rearrange(grid_kv, b j c - b 1 j c) bias torch.sign(pos) * torch.log(pos.abs() 1) for layer in self.mlp: bias layer(bias) bias rearrange(bias, (b g) i j o - b (g o) i j, gself.offset_groups) return biasDeformableAttention 的构造函数里几个关键参数dim_head64、heads8、downsample_factor4、offset_kernel_size6。downsample_factor 决定偏移量生成时的下采样倍率4 是论文默认值显存紧张可以调到 8。offset_kernel_size 必须大于等于 downsample_factor且两者之差能被 2 整除否则断言会挂class DeformableAttention(nn.Module): def __init__(self, dim, dim_head64, heads8, dropout0., downsample_factor4, offset_scaleNone, offset_groupsNone, offset_kernel_size6, group_queriesTrue, group_key_valuesTrue): super().__init__() offset_scale default(offset_scale, downsample_factor) assert offset_kernel_size downsample_factor, offset kernel size must be downsample factor assert divisible_by(offset_kernel_size - downsample_factor, 2) offset_groups default(offset_groups, heads) assert divisible_by(heads, offset_groups) inner_dim dim_head * heads self.scale dim_head ** -0.5 self.heads heads self.offset_groups offset_groups offset_dims inner_dim // offset_groups self.downsample_factor downsample_factor self.to_offsets nn.Sequential( nn.Conv2d(offset_dims, offset_dims, offset_kernel_size, groupsoffset_dims, stridedownsample_factor, padding(offset_kernel_size - downsample_factor) // 2), nn.GELU(), nn.Conv2d(offset_dims, 2, 1, biasFalse), nn.Tanh(), Scale(offset_scale) ) self.rel_pos_bias CPB(dim // 4, offset_groupsoffset_groups, headsheads, depth2) self.dropout nn.Dropout(dropout) self.to_q nn.Conv2d(dim, inner_dim, 1, groupsoffset_groups if group_queries else 1, biasFalse) self.to_k nn.Conv2d(dim, inner_dim, 1, groupsoffset_groups if group_key_values else 1, biasFalse) self.to_v nn.Conv2d(dim, inner_dim, 1, groupsoffset_groups if group_key_values else 1, biasFalse) self.to_out nn.Conv2d(inner_dim, dim, 1)forward 里注意F.grid_sample的align_cornersFalse这个和 normalize_grid 的映射方式配套改成 True 会导致采样点偏移。另外sim sim - sim.amax(dim-1, keepdimTrue).detach()这步是数值稳定用的别省def forward(self, x, return_vgridFalse): heads, b, h, w, downsample_factor, device self.heads, x.shape[0], *x.shape[-2:], self.downsample_factor, x.device q self.to_q(x) group lambda t: rearrange(t, b (g d) ... - (b g) d ..., gself.offset_groups) grouped_queries group(q) offsets self.to_offsets(grouped_queries) grid create_grid_like(offsets) vgrid grid offsets vgrid_scaled normalize_grid(vgrid) kv_feats F.grid_sample(group(x), vgrid_scaled, modebilinear, padding_modezeros, align_cornersFalse) kv_feats rearrange(kv_feats, (b g) d ... - b (g d) ..., bb) k, v self.to_k(kv_feats), self.to_v(kv_feats) q q * self.scale q, k, v map(lambda t: rearrange(t, b (h d) ... - b h (...) d, hheads), (q, k, v)) sim einsum(b h i d, b h j d - b h i j, q, k) grid create_grid_like(x) grid_scaled normalize_grid(grid, dim0) rel_pos_bias self.rel_pos_bias(grid_scaled, vgrid_scaled) sim sim rel_pos_bias sim sim - sim.amax(dim-1, keepdimTrue).detach() attn sim.softmax(dim-1) attn self.dropout(attn) out einsum(b h i j, b h j d - b h i d, attn, v) out rearrange(out, b h (x y) d - b (h d) x y, xh, yw) out self.to_out(out) if return_vgrid: return out, vgrid return out第二步在ultralytics/nn/Extramodule/__init__.py里导出from .DAT import DeformableAttention第三步改ultralytics/nn/tasks.py。先加导入from ultralytics.nn.Extramodule import DeformableAttention然后在parse_model函数里找到处理模块参数的分支加上elif m in {DeformableAttention}: c2 ch[f] args [c2, *args]这一步是让 YAML 里的DeformableAttention能被正确实例化c2取上一层的输出通道数作为 dim。第四步新建yolo11DAT.yaml。backbone 保持原样只在 head 的三个检测尺度前各插一个 DeformableAttention。注意 from 索引要跟着改插了模块之后后面的层号会顺移nc: 1 scales: n: [0.50, 0.25, 1024] s: [0.50, 0.50, 1024] m: [0.50, 1.00, 512] l: [1.00, 1.00, 512] x: [1.00, 1.50, 512] backbone: - [-1, 1, Conv, [64, 3, 2]] - [-1, 1, Conv, [128, 3, 2]] - [-1, 2, C3k2, [256, False, 0.25]] - [-1, 1, Conv, [256, 3, 2]] - [-1, 2, C3k2, [512, False, 0.25]] - [-1, 1, Conv, [512, 3, 2]] - [-1, 2, C3k2, [512, True]] - [-1, 1, Conv, [1024, 3, 2]] - [-1, 2, C3k2, [1024, True]] - [-1, 1, SPPF, [1024, 5]] - [-1, 2, C2PSA, [1024]] head: - [-1, 1, nn.Upsample, [None, 2, nearest]] - [[-1, 6], 1, Concat, [1]] - [-1, 2, C3k2, [512, False]] - [-1, 1, nn.Upsample, [None, 2, nearest]] - [[-1, 4], 1, Concat, [1]] - [-1, 2, C3k2, [256, False]] - [-1, 1, DeformableAttention, []] - [-1, 1, Conv, [256, 3, 2]] - [[-1, 13], 1, Concat, [1]] - [-1, 2, C3k2, [512, False]] - [-1, 1, DeformableAttention, []] - [-1, 1, Conv, [512, 3, 2]] - [[-1, 10], 1, Concat, [1]] - [-1, 2, C3k2, [1024, True]] - [-1, 1, DeformableAttention, []] - [[16, 20, 25], 1, Detect, [nc]]nc按你的数据集类别数改。Detect 的 from 索引[16, 20, 25]对应三个 DeformableAttention 的输出层号如果你在 head 里加了别的模块这个索引要重新数。4. 训练启动与通道验证请求配置写好后训练脚本这样写。注意model参数指向你新建的 yamldata指向数据集配置import warnings warnings.filterwarnings(ignore) from ultralytics import YOLO if __name__ __main__: model YOLO(datasets/yolo11DAT.yaml) model.train( datadatasets/data.yaml, cacheFalse, imgsz640, epochs100, single_clsFalse, batch8, close_mosaic10, workers0, device0, optimizerSGD, ampTrue, projectruns/train, nameexp_dat, )启动后先看模型结构打印。正常输出里应该能看到 DeformableAttention 模块出现在 head 部分参数量比原版 yolo11n 多 0.5M 到 0.7M。如果打印结构时直接报KeyError: DeformableAttention说明 tasks.py 的注册没生效回去检查 import 和 parse_model 分支。训练跑起来后用 TaoToken 通道做一次验证请求确认模型调用链路正常。比如让模型解释一段报错curl https://taotoken.net/api/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer sk-你的Key \ -d { model: claude-sonnet-4-20250514, messages: [{role: user, content: YOLOv11 训练报 RuntimeError: shape invalid for input of size可能原因有哪些}], max_tokens: 500 }返回正常说明通道没问题。如果你用 Claude Code 做代码辅助在项目目录下跑claude命令它会读.claude/settings.json里的 Base URL 和 Key直接对 tasks.py 做审查。Cline 的 MCP 配置在cline_mcp_settings.jsonCodex 在auth.json三者的核心字段都是 base_url、api_key、model_id填对就能用。训练过程中重点观察 loss 曲线。DAT 模块引入后前 10 个 epoch 的 box_loss 下降会比原版略慢因为偏移量网络需要时间学出有意义的采样位置。20 epoch 之后通常会反超。如果 50 epoch 后 mAP 还低于原版检查 downsample_factor 是不是设得太大导致采样太稀疏或者 offset_scale 太小让偏移量学不动。5. 常见报错排查对照改网络结构最容易踩的坑集中在注册、维度、采样三块。下面按真实报错对照排查。报错一KeyError: DeformableAttention或AttributeError: module ultralytics.nn.tasks has no attribute这是注册没生效。检查三处Extramodule/__init__.py里有没有from .DAT import DeformableAttentiontasks.py顶部有没有导入parse_model里的elif m in {DeformableAttention}分支有没有加。三处缺一处都会挂。另外注意 Python 缓存改完删掉__pycache__再跑。报错二RuntimeError: shape [...] is invalid for input of size ...维度对不上。DeformableAttention 的 dim 来自上一层输出通道YAML 里args传空[]由 parse_model 自动填c2。如果你手动传了 dim 且和上一层通道不一致就会在to_q卷积处报维度错。检查 YAML 里 DeformableAttention 前一层的输出通道P3 层是 256P4 是 512P5 是 1024和c2自动取值一致。报错三AssertionError: offset kernel size must be greater than or equal to the downsample factor构造函数断言没过。offset_kernel_size 默认 6downsample_factor 默认 464 且 (6-4)%20默认值没问题。如果你改了 downsample_factor8offset_kernel_size 至少要 8 且差值偶数比如 10 或 12。报错四local proxy failed或401 Unauthorized这是 TaoToken 通道问题不是代码问题。401 说明 Key 不对或没带 Authorization 头检查config.toml里的 api_key 是不是完整复制了。local proxy failed通常是本地网络环境或 Base URL 写错确认填的是https://taotoken.net/api不要多加/v1后缀chat completions 的完整路径是/api/v1/chat/completionsBase URL 只到/api。报错五返回里reading choices失败或choices为空请求发出去了但响应结构不对。检查 model_id 是不是控制台支持的模型名有些模型名带日期后缀写错会返回错误结构。另外max_tokens设太小比如 1也可能导致 choices 为空。报错六OAuth 相关报错如果你用 Claude Code 或 Codex 的 OAuth 登录模式又同时配了 API Key可能冲突。统一走 API Key 模式把 OAuth 缓存清掉在 settings 里只保留 base_url 和 api_key。排查顺序建议先 curl 验证通道再跑模型结构打印最后跑训练。这样能把通道问题和代码问题分开省很多时间。6. 继续用统一通道做后续实验DAT 模块跑通之后你大概率会想试不同的插入位置。比如只在 P3 插、只在 P4/P5 插、或者把 downsample_factor 从 4 改成 8 看速度精度权衡。每次改完都要重新验证通道和结构这时候config.toml和settings.json集中管理的优势就出来了改一处 Key 或模型名所有工具同步生效。如果你要长期做 YOLOv11 的注意力改进实验建议把 coding agent 挂上让它帮你批量改 YAML 和跑对比。Coding Plan 适合这种多轮迭代场景通道地址在https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcoding-plan。模型对话验证在https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentchat接入文档在https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentdocKey 管理在https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentapi-keys。最后给一个实测下来比较稳的调参起点downsample_factor4offset_kernel_size6heads8dim_head64CPB depth2。在这个基础上先跑 50 epoch 看趋势再决定要不要加深或加宽。DAT 的收益在形变目标多的数据集上更明显如果你的数据集目标规整、尺度单一提升可能只有 0.5 个点这时候优先考虑把算力花在数据增强上。

相关新闻

一文讲透 Codex 工作树(Worktree):它和 Git 分支到底是什么关系?

一文讲透 Codex 工作树(Worktree):它和 Git 分支到底是什么关系?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 23:24:12 阅读更多 →
基于DeepSeek的CI/CD异常日志智能分析系统设计与实践

基于DeepSeek的CI/CD异常日志智能分析系统设计与实践

简介:一份聚焦 DeepSeek 在 CI/CD 异常日志分析场景落地的 PDF 技术资料,面向 DevOps 工程师、后端开发人员和希望将大模型用于日志分析的算法学习者。文档共 34 页,以完整目录和章节形式展开,涵盖自动化工作流基础、CI/CD 流程、…

2026/9/30 23:23:12 阅读更多 →
手机检测数据集:基于YOLOv8训练目标检测模型的完整实战指南

手机检测数据集:基于YOLOv8训练目标检测模型的完整实战指南

你是不是也有过这种经历:会议室里想统计谁在低头刷手机,靠人眼盯着监控画面一帧一帧找;工位上想验证“摸鱼检测”算法,结果找遍全网没有能直接用的数据集;课堂行为分析项目做到一半,模型能把人框出来&#…

2026/9/30 23:23:12 阅读更多 →

最新新闻

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
游戏引擎原理与实践 02:揭开3A游戏背后的技术面纱

游戏引擎原理与实践 02:揭开3A游戏背后的技术面纱

游戏引擎原理与实践 02:揭开3A游戏背后的技术面纱Bilibili 同步视频游戏逻辑 vs 游戏引擎,剧本和摄影机的区别现代游戏引擎都包含哪些模块?游戏编辑器:游戏开发者的工作台数学,游戏引擎的内功根基需要重点掌握的数学知…

2026/9/30 23:59:29 阅读更多 →
中科院青藏高原所李新团队提出 READY 框架|地学数据光“开放共享”还不够,得先过“AI 就绪”这道关

中科院青藏高原所李新团队提出 READY 框架|地学数据光“开放共享”还不够,得先过“AI 就绪”这道关

近日,中国科学院青藏高原研究所、国家青藏高原科学数据中心联合国内多个地学数据中心科研人员,系统提出了“人工智能就绪地球科学数据(AI-ready geoscience data)”的定义框架与实现路径。当前,“人工智能就绪数据&…

2026/9/30 23:59:29 阅读更多 →
智能车竞赛芯片选型指南:从主频、资源到双核与生态的决策链

智能车竞赛芯片选型指南:从主频、资源到双核与生态的决策链

1. 为什么第十五届的“芯片选型”忽然成了所有人绕不开的话题从第十五届备赛周期开始,智能车竞赛里的一个趋势变得非常明显:你打开官方通知后,第一件事不再是去翻上届学长传下来的代码,而是先去看“主控芯片”那一栏还能不能沿用老…

2026/9/30 23:59:29 阅读更多 →
MCP Kubernetes Server 实战:用 TaoToken 统一 Key 打通集群管理工具链

MCP Kubernetes Server 实战:用 TaoToken 统一 Key 打通集群管理工具链

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 23:59:29 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →