Guerrilla Checkers 环境实战指南:PufferLib 中不对称棋类自对弈的训练、检查点兼容与基准评估
强化学习深度学习人工智能【免费下载链接】PufferLibPuffing up reinforcement learning项目地址https://gitcode.com/gh_mirrors/pu/PufferLib点击查看免费下载Guerrilla Checkers 是 PufferLib 内置的一款棋盘类强化学习环境它把 Checkers国际跳棋与 Go围棋的规则不对称地混合在一起一方扮演游击队、另一方扮演金币形成了与常规对称棋类截然不同的博弈结构。本指南以仓库中的 ocean/guerrillacheckers/README.md 为核心结合 ocean/guerrillacheckers/guerrillacheckers.h、ocean/guerrillacheckers/mcts.h 与 config/guerrillacheckers.ini 的源码与配置实现完整讲解如何理解这个不对称环境的状态与动作空间、如何启动标准 5c 自对弈训练、如何保持新旧检查点格式兼容、以及如何构建独立客户端并对候选模型做与 Puffer 40 基线的交叉对局评估。读完本文你将掌握一套可直接复用的训练、评估与基线对照工作流并理解其中每一项关键配置在源码层面的真实作用。游戏规则Checkers 与 Go 的不对称混合Guerrilla Checkers 在源码头部被明确注释为 an asymmetric hybrid of Checkers and Go参见 ocean/guerrillacheckers/guerrillacheckers.h。棋盘由8×8的 COIN 格网与7×7的游击队格点叠加而成常量值含义GC_BOARD_W / GC_BOARD_H8 / 8COIN 棋子所在格网GC_G_W / GC_G_H7 / 7游击队落子点网格GC_COIN_CELLS64COIN 格点数GC_G_CELLS49游击队格点数GC_MAX_GUERRILLAS66游击队最多可投放的石子数GC_ACTIONS256动作头宽度GC_PASS_ACTION255非活跃槽位的确定性 pass 动作GC_OBS_SIZE120观测长度49 64 7GC_INVALID_ACTION_REWARD-1.0非法动作的负反馈GC_MAX_BANKS8历史银行对手池最大数量规则要点均可从 ocean/guerrillacheckers/guerrillacheckers.h 的gc_*系列函数中确认初始局面puf_reset在 6 个固定坐标{3,2},{2,3},{4,3},{3,4},{5,4},{4,5}放置金币见 guerrillacheckers.h。游击队Guerrilla先手每个回合可以在格点上连放两枚相邻的石子第一枚与已有石子邻接第二枚必须与第一枚邻接GC_MAX_GUERRILLAS 66是全局投放上限。金币COIN移动金币沿对角方向移动若跳越相邻的游击队格点则吃掉该石子吃到后若仍可继续连跳则强制继续coin_must_capture标志。包围吃子一枚金币若被其四角全部占据游击石子即被提走gc_check_guerrilla_capture。胜负判定gc_check_victory金币被全部清除 → Guerrilla 胜游击队用尽 66 枚或场上无合法落点 → COIN 胜。超时判定gc_check_timeout到达max_episode_length步仍胜负未分时直接判 Guerrilla 负COIN 胜因为 Guerrilla 的唯一胜利条件就是清空棋盘。这种一方通过围困蚕食、另一方通过跳吃反制的非对称设计是研究非对称博弈、不同行动节奏回合内连放两子 vs 单步移动与稀疏奖励的理想测试床。检查点格式Puffer 40 基线与新 5c 模型的兼容契约仓库为 Guerrilla Checkers 保留了原版 Puffer 40作为新标准 5c 自对弈模型的评估基线。README 记录的唯一基线检查点如下CheckpointPurposeSHA-256guerrillacheckers_weights.binOriginal Puffer 40f58615069b9a0e50105dd54b4729d366d602fe14b957a0042e4dc88089120398两种布局的差异需要特别留意Puffer 40使用旧的587,264 字节 biased 布局新训练的标准 5c 检查点使用586,240 字节 bias-free 布局且带 value-head 行独立评估器standalone evaluator会直接自动检测这两种格式因此新旧检查点可以用同一套评估流程、在完全相同的输入上对局。这得益于 guerrillacheckers.h 中的原生 5c 构建契约#define OBS_SIZE GC_OBS_SIZE // 120 #define NUM_ATNS 1 #define ACT_SIZES {GC_ACTIONS} // 单头 256 动作 #define PUF_STEPS_PER_SEC 3代码注释明确写道保持与原始 Puffer 策略契约一致是为了让新旧检查点能够在相同输入上被评估。这也解释了为什么 README 强调标准 5c 检查点带 value-head 行——旧模型只有 policy 头新模型额外携带 value 头评估器需要能分辨两者。训练真正交替的自对弈genuine alternating self-play启动命令./puffer train guerrillacheckers该命令的 env 名guerrillacheckers由 config/guerrillacheckers.ini 的[base] env_name决定训练器编译环境的方式见 build.sh默认编译ocean/guerrillacheckers/guerrillacheckers.h产出./puffer。自对弈机制双逻辑策略槽位README 明确描述了这套真正交替自对弈 随机化 sides的机制其源码实现在Env结构体与gc_actor_slot/gc_rebuild_action_mask中slot 0 是可训练策略slot 1 是当前或历史对手每局开始时随机决定哪一方由哪个槽位扮演side_cfg 0表示每局随机保证两边都被两个槽位充分训练到非活跃槽位每步收到一个确定性 pass 动作动作 255。在 guerrillacheckers.h 中注释了设计意图pass 动作在正常对局中不可能出现它是右下角金币格网向外的越界移动因此既能让等待槽位保持每步一个动作以维持 PPO 与循环状态的更新有效性又不会被误用两个槽位的循环状态recurrent states在每个游戏步都观察到完整局面遵循已有的 Ocean Chess 自对弈约定见 ocean/chess/chess.h20% 的环境使用历史银行historical bank即对手来自冻结的历史快照池对手交换只在所有 tagged 游戏都到达 episode boundary 之后进行避免在局中打断保证策略切换的干净边界。关键配置逐项解读config/guerrillacheckers.ini 是标准训练的规范配置以下为各节参数及其源码层面的作用[base] env_name guerrillacheckers # 一个 epoch 4096 agents * 64 horizon 262,144 agent steps。 # 每 20 个 epoch 存一次快照历史池大约每 5.24M 步收到一个新策略。 checkpoint_interval 20 [selfplay] enabled 1 max_size 100 seed 42 # 冻结银行大约按快照产出频率刷新加载推迟到所有 tagged 游戏到达 episode boundary。 opp_timeout_steps 5_000_000 [vec] total_agents 4096 num_buffers 8 num_threads 8 num_policies 2 # 80% 当前对当前20% 对历史池。 hist_policy_percent 0.2 hist_policy_hidden_size 128 hist_policy_num_layers 2 [env] # 硬性步数上限超时判 Guerrilla 失败COIN 胜。 max_episode_length 256 # selfplay 1两个策略槽位交替 sides历史池环境中 slot 0 是主策略slot 1 是冻结对手。 # selfplay 0策略以 side 与内置 opponent bot 对局。 selfplay 1 # slot 0主策略在自对弈中扮演的 side或 bot 模式下 agent 的 side # 0 每局随机1 Guerrilla2 COIN。 side 0 # selfplay 0 时的对手 bot0 random1 greedy最大化吃子2 mcts。 opponent 1 # MCTS 对手参数opponent 2 时使用。迭代越多越强、越慢。 mcts_iterations 256 mcts_exploration 0.7 # rollout 策略0 random忠实 UCT1 greedy更强尤其是 Guerrilla 侧。 mcts_rollout 1 [policy] hidden_size 128 num_layers 2 [train] total_timesteps 100_000_000 gamma 0.98 # 本环境是稀疏的 256 路动作头action mask 负责合法性 # 低熵系数让探索不至于与 mask 过度对抗。 ent_coef 0.0001要点说明num_policies 2对应自对弈中的两个逻辑槽位hist_policy_percent 0.2使 20% 环境接入历史银行这与 README 中Twenty percent of environments use the historical bank一致side 0的随机化语义在 guerrillacheckers.h 中实现side_cfg为 1/2 时固定槽位归属否则按随机位分配max_episode_length 256直接驱动gc_check_timeout的超时判负逻辑ent_coef 0.0001的低熵压力是为了让探索不干扰 action mask 的合法性约束非法动作会被 mask 屏蔽且puf_step对非法动作按GC_INVALID_ACTION_REWARD -1.0的负向 no-op处理不即时判负由超时兜底——详见 guerrillacheckers.h。观测、动作与奖励的编码细节观测OBS_SIZE 120每个槽位看到完全相同的绝对棋盘编码源码注释强调这是为了保持原始检查点契约顺序为 guerrillacheckers.hGC_G_CELLS 49游击队占位0/1GC_COIN_CELLS 64金币占位0/17 个标量当前行动方 side idGuerrilla1 / COIN2、coin_must_capture标志、金币上一格1-1 记 0、游击队上一格1、本回合已放子数、游击队总投放数、场上现存游击队石子数。动作编码256 路单头Guerrilla 动作action first * 4 dir其中first是 49 个格点之一dir映射为四个方向{2,3,0,1}即下/右优先保证 reset 后动作 0 合法落子点在first与其该方向邻居——一个动作即连放两枚相邻石子COIN 动作action src * 4 dirsrc为 64 个金币格之一dir为四个对角方向合法动作由gc_rebuild_action_mask实时枚举生成gc_enumerate_legal写入行动槽位的action_mask。奖励设计每局终止时胜方 1.0、负方 -1.0自对弈中按slot_for_side[winner]结算到具体槽位吃子即时奖励Guerrilla 每次吃子 0.05 × 枚数COIN 每次 0.03 × 枚数guerrillacheckers.h非法动作GC_INVALID_ACTION_REWARD -1.0作为负向 no-opinvalid_rate统计每局决策中非法动作占比是评估/训练日志中重要的健康度指标。Log结构guerrillacheckers.h记录了 perf、score、episode_return/length、invalid_rate、按阵营统计的胜负场次、slot 0/1 得分以及hist_score_bank[0..7]的历史银行分槽统计——这些字段在puf_log中全部导出为训练日志用于监控自对弈进程。评估构建独立客户端并与 Puffer 40 基线对比构建与对比命令README 给出的完整评估流程./build.sh guerrillacheckers --fast ./guerrillacheckers --compare-candidate 1000 \ .runtime/checkpoints/guerrillacheckers/run/checkpoint.bin第一步构建独立客户端standalone client并产出可执行文件./guerrillacheckers第二步让原生候选模型与原始 Puffer 40从两侧各下 1000 局--compare-candidate 1000为局数参数候选检查点路径位于.runtime/checkpoints/guerrillacheckers/run/checkpoint.bin独立客户端同时内建了人类对战能力在 raylib 窗口中按住 Left Shift 点击即可先选点、再选目标地手动走棋gc_human_controls见 guerrillacheckers.h。关于构建的一般性说明仓库根目录的 build.sh 同时支持./build.sh guerrillacheckers原生训练/评估产出./puffer、./build.sh guerrillacheckers mybin自定义输出名、以及--cpu模式构建独立 CPU 评估二进制产出./build/cpu_guerrillacheckers要求环境头必须typedef obs_t。README 中记录的--fast是针对独立客户端的快速构建选项以其为准即可。基线交叉对局表每格 100 局Guerrilla wins - COIN winsREADME 记录的基线字段为每格 100 局、以Guerrilla 胜 - COIN 胜形式展示Guerrilla / COINRandomGreedyPuffer 40MCTS 2KMCTS 10KRandom8-920-1000-1000-1000-100Greedy98-233-671-990-1000-100Puffer 4096-499-115-8512-889-91MCTS 2K99-1100-050-5030-7011-89MCTS 10K100-0100-084-1681-1965-35分侧 Bradley-Terry Elo锚定 Elo 1500README 同时给出了**分侧side-specific**的 Bradley-Terry 拟合 Elo锚定基准为 1500覆盖全部 10 个分侧条目BotGuerrilla EloCOIN EloRandom338727Greedy11201189Puffer 4016361879MCTS 2K18341969MCTS 10K22002108两点值得注意同一策略扮演不同阵营时强度差异明显——Puffer 40 的 COIN Elo1879显著高于其 Guerrilla Elo1636MCTS 10K 则反过来Guerrilla 2200 vs COIN 2108这与环境的不对称规则直接相关基线表中 MCTS 10K 作为 Guerrilla 对阵任何对手都保持压倒性胜率而作为 COIN 对阵同级别 MCTS 对手时胜率下降65-35 vs 同 Bot 行这些数据是评估新模型时必须对照的分侧基线。内置对手与 MCTS 实现当selfplay 0bot 模式时agent 在puf_step内与内置 bot 对局。对手由opponent参数选择枚举见 guerrillacheckers.hRandomGC_BOT_RANDOM 0均匀随机挑选合法动作GreedyGC_BOT_GREEDY 1使用gc_action_capture_score对每个合法动作做不改动棋盘的即时吃子评估选取吃子数最多的动作并列时随机见gc_greedy_pickMCTSGC_BOT_MCTS 2完整 UCT 搜索实现在 ocean/guerrillacheckers/mcts.h 中。MCTS 对手的实现要点从源码结构看移植自参考实现nico/guerrillacheckers/src/mcts.nim采用完美信息单树 UCT每步决策构建一棵树wins 从移入该节点的玩家视角存储因此最大化子节点胜率即选择当前行动方的最优着法节点池化每次迭代最多展开一个节点因此池大小取itermax 1mcts.h迭代循环只克隆棋盘状态GuerrillaCheckers s *env后清空 agent 缓冲UCB1 选择探索常数默认0.7≈ sqrt(2)/2与参考引擎一致由mcts_exploration覆盖rollout 策略二选一mcts_rollout0为均匀随机 playout忠实 UCT1为 greedy 吃子最大化 playout——源码注释指出 greedy rollout 在宽阔的 Guerrilla 侧明显更强但单次迭代成本更高选择最终着法时采用最高访问次数子节点most-visited child而非最高胜率这是 UCT 的标准稳健做法。MCTS 的mcts_iterations默认 256、mcts_exploration默认 0.7、mcts_rollout默认 1三项旋钮全部来自 config/guerrillacheckers.ini 的[env]节在puf_init中读取并存入Env结构体。实操建议与注意事项用基线先行验证评估链路在评估任何新候选模型前先用guerrillacheckers_weights.binSHA-256f58615069b9a0e50105dd54b4729d366d602fe14b957a0042e4dc88089120398跑一遍--compare-candidate确认评估器能同时识别 587,264 字节的 biased 布局与 586,240 字节的 bias-free value-head 布局。关注分侧表现而非总胜率由于规则不对称同一模型的 Guerrilla Elo 与 COIN Elo 往往相差数百点。评估新模型时应分别对照 README 的十个分侧条目而不是只看整体胜率。自对弈健康度监控训练日志中的invalid_rate、slot_0_score_as_guerrilla/slot_0_score_as_coin与hist_score_bank_*分别反映合法性、分侧强度与历史对手池的对抗进程对手池交换被刻意推迟到所有 tagged 游戏到达 episode boundary这是保证策略切换干净的关键设计。超时兜底语义max_episode_length超时判 Guerrilla 负而非当前行动方负guerrillacheckers.h 注释这在 bot 模式下避免超时总是落在学习者头上——理解这一点对解释边界样本的奖励归属很重要。构建环境所有构建入口统一在仓库根目录的 build.sh无需修改任何源码即可完成./puffer train guerrillacheckers、独立客户端构建与--compare-candidate评估全流程。小结Guerrilla Checkers 是一个罕见的非对称混合规则棋盘博弈PufferLib 为其提供了完整的训练、评估与基线闭环genuine alternating self-play的双槽位机制与历史银行保证了稳定的对手进化586,240 / 587,264两种检查点布局的自动识别让新旧模型可以在同一契约下对局分侧 Elo 与交叉胜负表则给出了透明、可复现的评估锚点。对研究非对称博弈、回合节奏差异与稀疏奖励的读者来说这是一套可以立即上手的实验台。赞分享强化学习深度学习人工智能【免费下载链接】PufferLibPuffing up reinforcement learning项目地址https://gitcode.com/gh_mirrors/pu/PufferLib点击查看免费下载相关推荐KaTrain 完全指南基于 KataGo 的围棋复盘、AI 对弈与分布式训练实战手册KaTrain 完全指南基于 KataGo 的围棋复盘、AI 对弈与分布式训练实战手册 KaTrain 是一款以 KataGo 分析引擎为核心的围棋BaduAI 应用桌面应用教育KaTrain围棋AI训练平台5步完成智能对弈环境搭建终极指南KaTrain围棋AI训练平台5步完成智能对弈环境搭建终极指南 想要通过AI技术快速提升围棋水平吗KaTrain正是你需要的智能对弈伙伴这个基于KataGAI 应用桌面应用教育PaddleNLP 向量检索模型对比学习训练与评估实战指南PaddleNLP 向量检索模型对比学习训练与评估实战指南 导读 本文基于 PaddleNLP 仓库中 slm/pipelines/examples/contr人工智能大模型预训练微调LoRARLHF强化学习分布式训练模型推理服务推理引擎模型量化模型压缩本地部署NLP上一篇Flink Hive Dialect ALTER 语句完全指南数据库、表与视图的元数据变更实战下一篇Apache APISIX Script脚本机制详解在 Route 上直接运行自定义 Lua 代码创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

体系3.枚举、查找算法讲义

体系3.枚举、查找算法讲义

目录 第一部分 知识与方法1.1 枚举算法1.2 查找算法1.3 二分答案第二部分 例题精讲第三部分 分类拓展第四部分 总结梳理 壹 第一部分 知识与方法 1.1 枚举算法(穷举法 Enumeration) ① 基本思想 枚举就是把问题所有可能的解,按照某…

2026/10/9 12:11:19 阅读更多 →
Simple Live:3 步把 4 个平台的直播聚合进一个播放器

Simple Live:3 步把 4 个平台的直播聚合进一个播放器

Simple Live:3 步把 4 个平台的直播聚合进一个播放器 【免费下载链接】dart_simple_live 简简单单的看直播 项目地址: https://gitcode.com/GitHub_Trending/da/dart_simple_live 晚上想看 B 站的游戏主播,平时追的斗鱼主播也刚好开播&#xff0c…

2026/10/9 12:11:19 阅读更多 →
AI+:一文带你了解市面主流AI模型与厂商之间的关系,以及如何用TaoToken统一调用

AI+:一文带你了解市面主流AI模型与厂商之间的关系,以及如何用TaoToken统一调用

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

2026/10/9 12:11:19 阅读更多 →

最新新闻

DeepSeek API 从入门到精通:学术论文辅助、自媒体运营与 RAG 知识库实战

DeepSeek API 从入门到精通:学术论文辅助、自媒体运营与 RAG 知识库实战

简介:这份手册面向希望借助AI助手提升效率的初学者与进阶用户,系统梳理了DeepSeek从账户创建、界面熟悉到高级应用的全流程。内容涵盖有效提问的五个黄金法则、文档分析与代码编写等复杂任务处理,并延伸至学术论文辅助、自媒体运营、个性化学…

2026/10/9 12:47:19 阅读更多 →
MySQL事件调度器实战:从定时清理到分批删除的完整方案

MySQL事件调度器实战:从定时清理到分批删除的完整方案

先说一个我踩过很多次之后的结论:如果你的库里有“定时清除7天前数据”这种需求,别急着往业务代码里塞定时任务。数据库定时任务这件事,MySQL自带的事件调度器足够稳,而且支持在一个任务里塞多条SQL执行语句,清理过期日…

2026/10/9 12:47:19 阅读更多 →
小红书多号运营如何省心?一个页面统一管理所有账号的实操指南

小红书多号运营如何省心?一个页面统一管理所有账号的实操指南

多号运营这个事儿,做小红书的应该都懂那种痛:手机里来来回回切换账号,切到后面自己都忘了哪个号发过什么;电脑上开无痕窗口、换浏览器、再不行就借朋友的手机登录一下。我就这么鸡飞狗跳地运营了四个号小半年,直到把工…

2026/10/9 12:47:19 阅读更多 →
系统规划与管理师备考:智能制造章节考点解析与复习策略

系统规划与管理师备考:智能制造章节考点解析与复习策略

备考系统规划与管理师时,大多数人翻开《系统规划与管理师教程》目录,会本能地先奔着ITIL、ITSS、服务生命周期这些"有逻辑可循"的章节去,把智能制造发展规划这类带行业背景的内容留到临考前临阵磨枪。我第一次备考也是这个套路&…

2026/10/9 12:47:19 阅读更多 →
Kappa架构深度解析:用流处理统一批与流的实时数据平台设计

Kappa架构深度解析:用流处理统一批与流的实时数据平台设计

聊到大数据架构设计,绕不开的两个词就是Lambda和Kappa。很多朋友备考系统架构设计师,看到教程第19章里Kappa架构那一小节,总觉得它不过是Lambda的一个改良版,扫一眼就过去了。但以我带过多个实时数据平台落地项目的经验来看&#…

2026/10/9 12:47:18 阅读更多 →
Pygame飞机大战开发全攻略:主循环、碰撞检测与避坑实战

Pygame飞机大战开发全攻略:主循环、碰撞检测与避坑实战

简介:面向希望用Pygame制作2D游戏的Python初学者与编程爱好者,以经典「飞机大战」为完整案例,系统梳理Pygame开发的核心知识点,包括窗口初始化、键盘事件监听、精灵类设计、sprite分组与碰撞检测、游戏循环、音效播放与帧动画切换…

2026/10/9 12:46:14 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 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/8 21:13:17 阅读更多 →
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/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/9 6:17:20 阅读更多 →