时间序列预测核心:滑动窗口原理、参数与实战全解析
1. 从“点”到“线”为什么滑动窗口是时间序列的基石如果你刚开始接触时间序列预测无论是用ARIMA、LSTM还是Prophet可能都听过一个词滑动窗口。很多教程会直接甩给你一段代码告诉你“把数据这样切一下就能喂给模型了”但很少有人会停下来解释为什么非得这么切这个看似简单的操作背后到底解决了什么问题今天我们不谈复杂的模型就深入聊聊这个最基础、却最关键的预处理步骤——滑动窗口它如何将静态的“点”数据转化为模型能理解的动态“线”故事并分别剖析其在单变量和多变量场景下的应用细节与陷阱。想象一下你手头有一整年的每日气温数据一共365个点。你的目标是预测明天的气温。模型比如一个简单的线性回归或一个RNN不可能直接“吞下”这365个数字然后给出一个答案。它需要一种方式来“感受”数据的近期模式。滑动窗口做的就是这件事它像一个固定长度的观察框在时间轴上一步步滑动。比如我们设置窗口长度为7代表过去一周那么第一个窗口就包含第1天到第7天的数据目标是预测第8天然后窗口滑动一步第二个窗口包含第2天到第8天的数据目标是预测第9天以此类推。这样我们就把一个长长的序列转化成了许多个“特征-目标”对这正是监督学习模型所需要的形式。这个操作的核心价值在于将时间依赖性编码到数据样本的结构中。对于模型而言每个窗口内的数据点不再是孤立的它们之间的顺序和相对位置即时间先后本身就蕴含了趋势、周期等关键信息。没有滑动窗口大多数时间序列模型将无从下手。接下来我们将拆解这个过程中的每一个关键决策点。2. 滑动窗口的核心参数解析长度、步长与预测视野在动手写代码之前必须理清三个核心参数窗口长度、滑动步长和预测视野。理解它们就掌握了滑动窗口设计的主动权。2.1 窗口长度模型能看多远的历史窗口长度也叫回溯期或历史步长这是最重要的参数。它决定了模型在做出每一个预测时可以回顾多长的历史信息。过短模型“目光短浅”可能无法捕捉到稍长周期的模式如季节性。比如用3天的窗口预测下周销量很可能漏掉“周末效应”。过长一方面会导致训练样本数减少序列总长固定窗口越长能切出的样本越少另一方面会引入过多的噪声和冗余信息可能让模型难以聚焦在近期最重要的变化上同时也增加计算负担。如何选择没有银弹但可以从以下角度分析业务周期如果你的数据有明显的日周期如用电量、周周期如商场客流、月周期如销售额窗口长度至少应覆盖一个完整的周期。例如对于日数据窗口长度通常设为7的倍数7 14 21等来捕获周模式。数据频率对于高频数据如每分钟股价窗口长度可能需要数百甚至上千来捕捉数小时内的模式对于低频数据如月度经济指标窗口长度可能只需12一年或24两年。经验与实验一个常见的起点是使用一个或两个季节性周期长度。之后需要通过交叉验证来调整观察不同窗口长度下验证集误差的变化。2.2 滑动步长控制样本密度与独立性滑动步长决定了窗口每次滑动的距离。默认且最常用的是步长为1即每次滑动一个时间步生成最大数量的、高度重叠的样本。步长1最大化样本数量有助于模型训练尤其是数据量不大时。但相邻样本间高度相关可能导致模型过拟合于局部序列模式并在交叉验证时因数据泄漏而高估性能。步长1例如步长等于窗口长度则生成的样本之间完全没有重叠彼此独立。这能确保样本的独立性常用于构建更可靠的测试集或防止信息泄漏但会急剧减少训练样本量。实操建议对于模型训练通常从步长1开始以充分利用数据。但在划分训练集和测试集时必须确保测试集的样本完全来自训练集样本之后的时间段绝对不能打乱时间顺序随机划分。更严谨的做法是可以先用步长1生成数据然后按时间顺序分割或者用步长1生成相对独立的样本再进行分割。2.3 预测视野预测未来多远的一点预测视野即我们要预测未来第几个时间点。horizon1表示预测下一时刻最常用。horizonn表示预测未来第n个时刻。单步预测预测t1时刻的值。这是大多数场景的基础模型误差累积小。多步预测直接预测tn时刻的值。当n较大时难度急剧增加因为不确定性随预测距离增大而增大。更常见的多步预测策略是使用“滚动预测”或“序列到序列”模型而非简单地增大horizon。在我们的滑动窗口构造中通常将horizon固定为1。多步预测需要通过更复杂的框架如直接多输出、递归预测、或Seq2Seq结构来实现滑动窗口是其基础构建块。3. 单变量时间序列的滑动窗口实战单变量序列是最简单的情况我们只有一个随时间变化的指标比如某商店的每日销售额。我们的目标是利用过去一段时间的销售额预测未来的销售额。3.1 手动实现与直观理解我们先用最基础的Python列表操作来实现这有助于彻底理解过程def create_univariate_sliding_windows(data, window_size, horizon1): 为单变量序列创建滑动窗口样本。 参数: data: 一维列表或NumPy数组单变量时间序列。 window_size: 整数历史窗口长度。 horizon: 整数预测目标在未来的步数。 返回: X: 二维数组形状为 (n_samples, window_size) y: 一维数组形状为 (n_samples,) X, y [], [] for i in range(len(data) - window_size - horizon 1): # 获取窗口内的历史数据作为特征 X.append(data[i:i window_size]) # 获取窗口结束点之后第horizon个点的数据作为目标 y.append(data[i window_size horizon - 1]) return np.array(X), np.array(y) # 示例数据简单的上升趋势 ts_data np.array([10, 20, 30, 40, 50, 60, 70, 80, 90, 100]) window_size 3 horizon 1 X, y create_univariate_sliding_windows(ts_data, window_size, horizon) print(特征 X (历史窗口):) print(X) print(\n目标 y (预测值):) print(y)输出会是这样特征 X (历史窗口): [[10 20 30] [20 30 40] [30 40 50] [40 50 60] [50 60 70] [60 70 80] [70 80 90]] 目标 y (预测值): [40 50 60 70 80 90 100]看原始10个点的序列在window_size3horizon1的情况下被转化成了7个样本。第一个样本用[10,20,30]预测40第二个样本用[20,30,40]预测50完美体现了滑动和预测的关系。3.2 使用NumPy进行高效向量化操作对于大数据集循环效率低下。我们可以利用NumPy的切片和广播机制进行向量化操作这是生产环境中的标准做法def create_univariate_windows_numpy(data, window_size, horizon1): 使用NumPy向量化操作创建滑动窗口效率更高。 total_length len(data) num_samples total_length - window_size - horizon 1 if num_samples 0: raise ValueError(数据长度不足以创建指定窗口和视野的样本。) # 使用NumPy的as_strided进行高级切片需谨慎避免内存问题 # 更安全易懂的方法是使用列表推导式结合数组切片 indices np.arange(num_samples).reshape(-1, 1) np.arange(window_size) X data[indices] y_indices np.arange(num_samples) window_size horizon - 1 y data[y_indices] return X, y3.3 单变量场景下的关键注意事项数据标准化必须在窗口划分后进行这是一个极易出错的地方。你不能在整个序列上先做标准化如减去均值除以标准差然后再划分窗口。因为未来数据测试集的均值和标准差在训练时是未知的。正确做法是先按时间顺序划分出训练集和测试集然后仅在训练集上计算标准化参数均值、标准差并用这些参数去标准化训练集和测试集。对于滑动窗口是先划分窗口样本再按上述规则标准化。处理缺失值如果序列中存在缺失值需要在创建窗口前处理。简单的线性插值可能适用于连续数据但对于复杂的模式可能需要更高级的方法如用前后窗口的均值填充。关键是填充必须在滑动窗口操作之前完成否则缺失值会破坏窗口的连续性。序列的平稳性很多经典模型如ARIMA要求序列是平稳的。虽然深度学习模型对平稳性要求较低但一个非平稳序列有明显趋势或季节性仍然会让模型学习困难。通常在创建窗口前可以对序列进行差分操作计算相邻时间点的差值来消除趋势或进行季节性差分。处理后的平稳序列用于训练预测结果再通过逆变换还原。4. 多变量时间序列的窗口化从一维到多维的挑战多变量时间序列才是现实世界的常态。例如预测明日气温我们可能不仅有历史气温还有湿度、气压、风速等多个相关序列。此时滑动窗口的构造从一维数组变成了二维甚至三维张量复杂性增加。4.1 多变量窗口的维度分析假设我们有m个变量序列长度为T。数据形状为(T, m)。我们想用过去window_size个时间步的所有变量来预测未来horizon步的某一个单输出或某几个多输出变量。经过滑动窗口处理后特征 X的形状将变为(n_samples, window_size, m)n_samples: 样本数量计算方式同单变量。window_size: 每个样本回顾的时间步长。m: 特征变量的数量。目标 y的形状取决于预测任务单步单变量预测形状为(n_samples,)单步多变量预测形状为(n_samples, k)其中k是待预测的变量数k m多步预测形状会更复杂如(n_samples, horizon)或(n_samples, horizon, k)这种(样本 时间步 特征)的三维结构正是LSTM、GRU等循环神经网络RNN或一维卷积神经网络1D-CNN所期望的输入格式。4.2 多变量滑动窗口的代码实现def create_multivariate_sliding_windows(features, target_index, window_size, horizon1, target_is_multivariateFalse): 为多变量序列创建滑动窗口样本。 参数: features: 二维NumPy数组形状为 (序列长度, 特征数m)。 target_index: 整数或列表。整数表示预测单个特征其索引列表表示预测多个特征。 window_size: 整数历史窗口长度。 horizon: 整数预测目标在未来的步数。 target_is_multivariate: 布尔值如果target_index是列表且需要保持多变量输出设为True。 返回: X: 三维数组形状为 (n_samples, window_size, m) y: 二维或一维数组形状取决于输出类型。 total_len, num_features features.shape num_samples total_len - window_size - horizon 1 if num_samples 0: raise ValueError(数据长度不足以创建窗口。) # 创建特征X X np.zeros((num_samples, window_size, num_features)) for i in range(num_samples): X[i] features[i:i window_size] # 创建目标y y_start_indices np.arange(num_samples) window_size horizon - 1 if isinstance(target_index, int): # 单变量输出 y features[y_start_indices, target_index] elif isinstance(target_index, list) and not target_is_multivariate: # 多变量输出但展平为一维例如用于预测多个独立标量 # 注意这种处理需要后续模型输出层对应调整 y features[y_start_indices][:, target_index] # 形状 (n_samples, len(target_index)) else: # 保持多变量输出结构通常用于更复杂的模型 y features[y_start_indices] # 形状 (n_samples, num_features)通常需要掩码 return X, y # 示例3个特征预测第0个特征例如气温 # 假设features形状为 (100, 3)代表100个时间步每个时间步有3个测量值 # X.shape 将是 (样本数, 7, 3) # y.shape 将是 (样本数,)4.3 多变量场景下的核心陷阱与对策特征尺度差异不同变量如气温0-40度、气压980-1040hPa、风速0-20m/s量纲和数值范围差异巨大。直接输入模型会导致梯度更新被大数值特征主导。必须对每个特征进行独立的归一化或标准化。同样要牢记数据泄漏问题用训练集的统计量去缩放测试集。目标变量泄露在准备X时必须确保窗口内的特征不包含未来信息。这听起来简单但在多变量预测中如果你要预测变量A而变量B与A高度相关且可能领先于A变化例如社交媒体情绪指数可能领先于股价那么将变量B的“未来”值包含在特征窗口内就是泄漏。确保所有特征在时间点t的窗口内只包含截至t时刻的信息。缺失值处理复杂度升级多变量中缺失可能发生在不同变量的不同时间点。简单的全局填充方法可能不适用。需要考虑变量间的相关性使用如多元插补MICE或基于模型如KNN的方法。处理不当会扭曲变量间的联合分布。高维与稀疏性当变量数量m很大时例如成百上千个传感器window_size * m的维度会非常高可能导致“维数灾难”模型容易过拟合。此时需要考虑特征选择、降维如PCA或使用能自动处理高维关系的模型如带有Embedding的神经网络。5. 与深度学习框架的集成TensorFlow/Keras 数据管道手动创建数组适用于学习和中小数据集。对于大规模数据尤其是使用TensorFlow或PyTorch时利用其内置的数据加载工具可以构建高效的数据管道支持并行预处理和GPU加速。5.1 使用TensorFlow的tf.dataAPItf.data.Dataset提供了强大的方法来自定义数据生成流程。我们可以定义一个生成器函数然后利用from_generator或window方法。import tensorflow as tf def multivariate_window_generator(data, target_index, window_size, horizon, batch_size, shuffle_buffer1000): 创建一个tf.data.Dataset生成器用于多变量滑动窗口。 这种方式可以高效处理无法全部装入内存的大型数据集。 total_len, num_features data.shape # 计算每个样本的总长度历史窗口目标点 total_window_size window_size horizon # 使用tf.data.Dataset的window方法创建连续窗口 dataset tf.data.Dataset.from_tensor_slices(data) dataset dataset.window(total_window_size, shift1, drop_remainderTrue) dataset dataset.flat_map(lambda window: window.batch(total_window_size)) # 划分特征和目标 def split_window(full_window): # full_window形状: [total_window_size, num_features] inputs full_window[:window_size, :] # 取前window_size步作为特征 # 预测目标窗口后第horizon步的特定变量 # 注意这里假设target_index是整数。如果是多变量需要调整。 labels full_window[-1, target_index] # 因为horizon1时目标就是窗口最后一个点的下一个点不需要修正。 # 更通用的写法 labels full_window[window_size horizon - 1, target_index] return inputs, labels dataset dataset.map(split_window) if shuffle_buffer: dataset dataset.shuffle(shuffle_buffer) dataset dataset.batch(batch_size).prefetch(tf.data.AUTOTUNE) return dataset # 使用示例 # dataset multivariate_window_generator(train_data, target_index0, window_size30, horizon1, batch_size32)5.2 使用TimeseriesGeneratorKerasKeras提供了一个更简单的工具tf.keras.preprocessing.sequence.TimeseriesGenerator但它主要用于单变量或多变量输入、单变量输出的场景。from tensorflow.keras.preprocessing.sequence import TimeseriesGenerator # 假设 features 是 (n_timesteps, n_features) 的多变量数据 # targets 是 (n_timesteps,) 的单变量目标数据需要与features对齐 generator TimeseriesGenerator( datafeatures, # 多变量特征 targetstargets, # 单变量目标 lengthwindow_size, # 历史窗口长度 sampling_rate1, # 采样率默认为1每个时间步都取 stride1, # 滑动步长 start_index0, end_indexNone, shuffleFalse, # 注意时间序列数据通常按顺序训练时可设为True但需谨慎 batch_size32, reverseFalse ) # 生成的每个batchX形状为 (batch_size, window_size, n_features) y形状为 (batch_size,)注意TimeseriesGenerator在划分训练验证集时需要小心因为它内部不处理时间顺序。最佳实践是分别用训练集和验证集创建两个不同的Generator。6. 高级话题与性能优化掌握了基础操作后我们来看看一些进阶场景和优化技巧。6.1 滚动预测与多步输出的窗口构造之前我们主要针对horizon1的单步预测。对于多步预测有两种主要策略直接多步预测修改滑动窗口函数让y不再是一个值而是一个长度为horizon的向量。即用[t, twindow_size)的数据预测[twindow_size, twindow_sizehorizon)的数据。这要求模型输出层有horizon个神经元。这种方法一次预测未来多个点但长期预测精度可能下降。递归滚动预测仍然训练一个horizon1的模型。当需要预测未来多步时先用历史窗口预测t1步然后将这个预测值或真实值如果可用作为输入的一部分与窗口内其他值一起向后滑动形成新的窗口再预测t2步如此递归。这种方法误差会逐步累积。滑动窗口的构造需要根据你选择的策略进行调整。对于直接法y的构造逻辑需要改变对于递归法窗口构造本身不变但预测时的数据流需要动态管理。6.2 处理非常大的时间序列数据集当序列长度达到数百万甚至更长时如高频金融数据、物联网传感器数据将全部数据读入内存并创建窗口数组可能不可行。生成器模式如上文tf.data所示使用生成器或迭代器逐批生成样本而不是一次性创建所有样本。磁盘存储的窗口化数据如果特征工程复杂且耗时可以预先将窗口化后的样本以.tfrecord、HDF5或Parquet格式存储到磁盘训练时再流式读取。分布式处理使用Apache Spark或Dask等框架在集群上并行执行滑动窗口操作。6.3 结合特征工程的滑动窗口滑动窗口本身已经构造了滞后特征。但你还可以在窗口的基础上进一步构造特征丰富模型的输入窗口统计量计算每个窗口内的均值、标准差、最小值、最大值、斜率等作为附加的静态特征与原始窗口序列一起输入模型。傅里叶变换对窗口内的序列进行FFT提取主要频率分量有助于模型捕捉周期性。时间特征将窗口中间或结束点对应的时间信息如小时、星期几、是否节假日作为额外特征嵌入。这些衍生特征可以在窗口创建后通过一个自定义的map函数方便地添加到数据管道中。滑动窗口是将时间序列数据转化为机器学习模型可消化格式的桥梁。理解其原理、掌握其在不同场景单变量/多变量下的实现、并警惕数据泄漏和标准化等陷阱是构建任何时间序列预测模型不可或缺的第一步。它看似简单却直接决定了模型能看到什么样的“世界”其重要性再怎么强调也不为过。在实际项目中我通常会花大量时间反复验证窗口化过程的正确性因为一旦这里出错后续所有复杂的模型构建和调优都将建立在错误的基础之上。

相关新闻

TVS 二极管工作机理、选型方法及在机器人与车载领域的工程应用研究

TVS 二极管工作机理、选型方法及在机器人与车载领域的工程应用研究

摘要瞬态电压抑制二极管(TVS)作为核心电磁兼容防护器件,凭借纳秒级响应速度、高瞬态功率吸收能力与精准钳位特性,已成为电力电子系统抵御浪涌冲击、抑制过压尖峰的标准配置。随着人形机器人、四足机器人、新能源车载电子产业快速扩…

2026/10/20 21:41:34 阅读更多 →
110kV三段式相间距离保护原理与整定计算详解

110kV三段式相间距离保护原理与整定计算详解

1. 110kV三段式相间距离保护概述110kV电网作为电力系统的重要电压等级,其保护装置的可靠性直接关系到电网安全稳定运行。相间距离保护作为110kV线路的主保护之一,通过测量故障点与保护安装处之间的阻抗值来判断故障位置,具有灵敏度高、选择性…

2026/10/20 22:01:15 阅读更多 →
OpenClaw高危漏洞解析与AI系统安全加固实践

OpenClaw高危漏洞解析与AI系统安全加固实践

1. OpenClaw安全漏洞事件概述国家信息安全漏洞库(CNNVD)近期通报了人工智能框架OpenClaw存在的多个高危安全漏洞,这些漏洞涉及认证绕过、远程代码执行等严重风险。作为一款新兴的AI开发框架,OpenClaw在自然语言处理、智能体开发等…

2026/10/18 12:17:45 阅读更多 →

最新新闻

WebRTC拥塞控制核心:AimdRateControl原理与实战调优

WebRTC拥塞控制核心:AimdRateControl原理与实战调优

1. 项目概述:为什么一个“码率控制器”值得你花20分钟认真读完在WebRTC的实际工程落地中,90%的卡顿、花屏、延迟抖动问题,最终都指向同一个被低估的模块——AimdRateControl。它不是WebRTC协议栈里最炫酷的部分,没有SDP协商那么直…

2026/10/20 22:20:53 阅读更多 →
从零搭建群聊自动化Bot:环境配置、创建与部署实战

从零搭建群聊自动化Bot:环境配置、创建与部署实战

1. 从零搭建一个能干活儿的 Bot:整体思路与方案选型1.1 这个 Bot 到底能干什么,适合谁来折腾先把话说在前头:这篇东西讲的不是那种"跑个 demo 就完事"的玩具,而是一套能真正拉进群里、替你分担重复劳动的自动化助手。核…

2026/10/20 22:20:53 阅读更多 →
Claude Code 安装排坑指南:从环境检查到命令行实战

Claude Code 安装排坑指南:从环境检查到命令行实战

不知道你有没有见过这种场面:一个开发者看了一篇安装教程,前十分钟每一步都照做了,结果在最后启动命令时直接卡住,界面白屏、报错刷屏,只能把窗口关掉重新再来。身边最近讨论新一代命令行 AI 编程助手的声音挺大&#…

2026/10/20 22:20:53 阅读更多 →
Kubernetes入门:Ubuntu环境下k8s集群搭建实操与避坑指南

Kubernetes入门:Ubuntu环境下k8s集群搭建实操与避坑指南

有朋友让我聊聊 k8s 到底是个啥,顺便给一套能在 Ubuntu 上把环境跑起来的实操流程。这话题我前前后后折腾了不少次,从最早只会跑 docker 容器,到后来维护几个节点的集群,中间踩的坑不算少。这篇就结合我自己的实操经验&#xff0c…

2026/10/20 22:20:53 阅读更多 →
OpenClaw消息总线架构拆解:从SQLite队列到Agent运行时设计

OpenClaw消息总线架构拆解:从SQLite队列到Agent运行时设计

1. 项目概述与核心命题拆解1.1 这个项目到底在做什么OpenClaw 是一个开源的个人 AI 助理框架,核心定位是让用户通过日常聊天工具(如即时通讯软件)直接操控一台远程计算机,完成文件管理、代码执行、网页浏览、定时任务等操作。它不…

2026/10/20 22:20:53 阅读更多 →
Obsidian标签体系完整拆解:四种方案对比与落地模板

Obsidian标签体系完整拆解:四种方案对比与落地模板

开头笔记软件换了又换,最后能让我一直留下来的,反倒是 Obsidian 里那套看起来不起眼的标签系统。我见过不少人把 Obsidian 当成文件夹管理器,一个笔记塞进一个目录,回头找资料就翻了天;也见过更夸张的,半年…

2026/10/20 22:19:42 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 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/20 10:02:08 阅读更多 →
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/20 9:50: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/20 9:50:45 阅读更多 →