机器学习股票预测实战:从数据管线到回测防坑指南
简介这套基于机器学习的股票预测与分析完整项目专为计算机相关专业毕业设计学生及需要项目实战练习的中高级学习者打造既可作为毕业设计/课程设计也适合期末大作业或求职作品集实践。资源内含完整源码、项目说明文档以及多达2000个配套文件按用途区分CSV文件保存股票历史行情数据NPZ/PTH为NumPy数据与模型权重PY为算法脚本PNG为可视化分析图表另有少量配置与说明文件压缩包为zip格式整体约693MB。项目出自评分98分的毕业设计代码经过严格调试确保可运行覆盖数据清洗、特征工程、模型训练、结果评估与可视化展示的完整流程文档部分还包含设计思路与目录结构说明便于快速定位核心代码和复现实验。目前已有614人浏览/学习适合希望参照高质量毕业设计完成自身课题或通过真实场景快速提升机器学习应用能力的学习者。1. 机器学习股票预测一份能高分毕业的源码赢在数据管线够老实每年毕设季都能看到“Python实现基于机器学习的股票预测和分析源码文档说明高分毕业设计”这类题目挂在各个资源站上。说实话真正让这份源码拿高分的关键并不是模型多先进而是它把数据管线做得够老实拿到干净日线、算对特征和标签、回测环节不造假答辩时经得起追问。本文就把这条完整链路拆开讲从数据获取、特征构造到模型训练和回测验证每一步落代码、说参数、指坑适合正在赶毕设的学生也适合想验证“机器学习到底能不能用来看股票”的 Python 开发者照着复现。一句话先说结论做股票预测读懂日报表比读懂神经网络重要得多。只要你的训练集里混进了一天未来数据再漂亮的 LSTM 也是自欺欺人答辩老师一眼就能看穿。2. 数据获取与清洗拿免费接口拉十年日线先解决对齐问题2.1 免费数据源怎么选akshare 还是 tushare做毕业设计的数据源选型第一原则是免费、不用注册、能跑通。国内常用的有两个tushare 需要注册 token部分接口有积分门槛对新手不友好akshare 是直接抓公开网页接口装上就能用拿到的是 Pandas DataFrame省去自己解析 JSON 的步骤。我自己一般会推荐 akshare理由有三个零门槛、字段完整、接口更新快。缺点是接口名会随上游网页改版而变所以代码里拿到数据后第一件事是打印列名确认字段顺序别想当然地按文档写死。对比项aksharetushare注册不需要需要 token费用免费基础接口免费部分收费数据格式直接返回 DataFrame返回 DataFrame需设置 token接口稳定性偶尔变动相对稳定适合场景毕设、个人研究量化入门、有持续维护需求2.2 拉取十年日线的最小脚本下面这段代码能直接跑通拉取平安银行000001从 2015 年到现在的前复权日线数据计算所需要的字段只有日期、开高低收和成交量。import akshare as ak import pandas as pd # 拉取沪深A股日线前复权 df ak.stock_zh_a_hist( symbol000001, perioddaily, start_date20150101, end_date20250101, adjustqfq, # 前复权关键是这个参数 ) # akshare 返回的是中文字段名先打印确认再映射 print(df.columns.tolist()) df.columns [date, code, open, close, high, low, volume, amount, amplitude, pct_change, change, turnover] df df[[date, open, close, high, low, volume]] df[date] pd.to_datetime(df[date]) df df.set_index(date).sort_index() print(df.tail())这里最关键的参数是adjustqfq表示前复权。如果不复权遇到除权除息日股价会出现一个假跳空模型会把“除权导致的下跌”当成正常行情特征来学习后面预测全部跑偏。perioddaily表示日线级别毕设用日线足够不需要上分钟数据分钟级别的噪声和计算量都会暴涨。还有一点akshare 不同版本的列名顺序会有调整。所以我在代码里先print(df.columns.tolist())看到实际列名再映射这是所有用 akshare 的人都会遇到的坑提前写完映射能省很多调试时间。2.3 复权、停牌与训练集对齐的三个细节拿到数据后清洗阶段有三件事必须做否则后面模型训练会和玄学一样。第一停牌日处理。A 股停牌时当天没有数据DataFrame 里会直接缺失这个日期。如果直接dropna()会把停牌前后的时间间隔压缩导致“相邻交易日”实际上隔了半个月。常见做法是按自然日 reindex把停牌日填成 NaN或者直接用正常交易日的序列让模型自己处理缺失特征。第二训练集对齐。多只股票做统一建模时不同股票会因为停牌导致交易日错位直接用行号合并会错位。正确做法是用日期做索引按日期join到一起缺失的日期填 NaN 或前向填充。# 多股票按日期对齐的常见做法 from functools import reduce stock_list [000001, 600519, 000858] frames [] for code in stock_list: tmp fetch_daily(code) # 复用上面的拉取逻辑 tmp tmp.rename(columns{close: fclose_{code}}) frames.append(tmp) aligned reduce(lambda left, right: left.join(right, howouter), frames) aligned aligned.ffill() # 前向填充停牌日第三复权方式要统一。前面说前复权但要注意不同数据源、不同复权方式算出来的收益率序列有细微差异。建议全程只用一种复权方式并且文档里写明。答辩时老师问“你数据怎么处理的”能答出“前复权避免除权跳空”就是一个加分点。3. 特征工程与标签设计把K线变成模型能读的表格3.1 标签怎么定未来收益与三分类股票预测的标签设计本质是回答“你想让模型预测什么”。最常见的有两种预测未来一天涨跌或者预测未来五天累计收益。我建议做五天的原因很实际日线级别的单日涨跌噪声太大模型很难学到稳定规律五天的收益更平滑也更接近短线交易的持仓周期。标签的计算方式是把收盘价向前平移五天比较# 未来5日收益作为原始标签 df[label_5d] df[close].shift(-5) / df[close] - 1 # 转成三分类涨、平、跌 def classify(ret): if ret 0.01: # 5日收益大于1%算涨 return 2 elif ret -0.01: # 小于-1%算跌 return 0 else: return 1 df[label_class] df[label_5d].apply(classify) df df.dropna(subset[label_5d])注意这里的shift(-5)是“向前平移五天”意思是 T 日的标签要用 T1 到 T5 的收益来算。训练时模型拿 T 日的特征去预测未来这个逻辑没问题。但如果你把shift方向搞反了模型就变成了“拿未来预测现在”这在机器学习应用流程中是致命的数据泄露。阈值 ±1% 可以根据股票波动率调。波动大的股票比如 5 日收益经常超过 2%阈值可以放宽到 2%波动小的银行股1% 就合理。这个参数在文档里要写明依据它直接影响样本均衡度。3.2 技术指标特征均线、RSI、MACD、布林带特征工程是这套源码里最值得写进论文的部分也是答辩时最能加分的。我一般会保留经典技术指标加上成交量信息一共十来个特征不追求数量但保证每个都有明确含义。下面的函数把原始 K 线转换成特征表def make_features(df: pd.DataFrame) - pd.DataFrame: x df.copy() # 收益率与均线 x[ret_1] x[close].pct_change(1) x[ma5] x[close].rolling(5).mean() x[ma10] x[close].rolling(10).mean() x[ma20] x[close].rolling(20).mean() x[ma_gap] x[ma5] / x[ma20] - 1 # 短期均线偏离度 # 成交量比当日量能 / 20日均量 x[vol_ratio] x[volume] / x[volume].rolling(20).mean() # RSI(14) delta x[close].diff() up delta.clip(lower0).rolling(14).mean() down (-delta.clip(upper0)).rolling(14).mean() x[rsi14] 100 - 100 / (1 up / down) # MACD(12, 26, 9) ema12 x[close].ewm(span12).mean() ema26 x[close].ewm(span26).mean() x[macd_dif] ema12 - ema26 x[macd_dea] x[macd_dif].ewm(span9).mean() x[macd_hist] x[macd_dif] - x[macd_dea] # 布林带位置收盘价在通道中的相对位置 mid x[close].rolling(20).mean() std x[close].rolling(20).std() x[boll_pos] (x[close] - mid) / (2 * std) return x特征参数说明RSI 的 14 是默认周期MACD 的 12、26、9 是业界标准参数布林带的 20 日和 2 倍标准差也是标配。这些参数可以直接用答辩时不需要解释太多但如果老师问“为什么选这些周期”你可以说“这是通用默认值后续可以用网格搜索优化”这比临时编一个理由更诚实。均线偏离度ma_gap和量比vol_ratio是我喜欢保留的两个特征它们在行情转折点往往有信号价值。注意所有 rolling 操作都只用了当前及之前的数据这是特征工程的红线。3.3 未来函数问题特征里不能混进未来信息这一小节是整个数据管线里最重要的一关。所谓未来函数就是特征值里包含了“当时不可能知道的信息”。举一个典型错误在 T 日计算 5 日均线时用了 T1 到 T5 的收盘价。# 错误示范rolling 均值包含未来数据 bad df[close].rolling(5).mean().shift(-2) # 正确做法rolling 默认窗口就是向左看不需要 shift good df[close].rolling(5).mean()rolling(5).mean()的默认行为是取当前行及之前 4 行计算均值这是安全的。但如果你写rolling(5).mean().shift(-2)等于把未来两天的数据也算进了今天的特征模型在训练时会发现“规律”实盘时这个规律根本不存在回测收益虚高到离谱。特征工程的检查口诀是所有特征在 T 日的取值只能用 T 日及之前的信息。我每次构造完特征都会随机抽一天手工用前一天的数据验证一遍这比写自动化测试更直观。4. 模型训练与调参XGBoost 做三分类一套能直接跑的流程4.1 为什么先用梯度提升树而不是直接上 LSTM很多学生一上来就选 LSTM觉得“股票是时间序列LSTM 天生适合”。这个想法在机器学习应用流程里恰恰是常见的误区。LSTM 确实能处理序列依赖但代价是训练慢、调参复杂、可解释性差。面对几千条日线数据和十几个表格类特征XGBoost 这类梯度提升树往往是更稳的选择。我的理由有三个第一特征已经做了滑窗和滞后树模型能捕捉到非线性关系第二XGBoost 对缺失值有内置处理不需要额外填充第三特征重要性可以直接导出写进论文很有说服力。等你把 XGBoost 跑通如果时间充裕再上 LSTM 做对比实验这才是合理的进阶路线。4.2 按时间顺序划分训练集与验证集股票预测里最忌讳的就是随机打乱数据。时间序列的样本之间存在顺序依赖随机划分会让模型“看到未来”。这里不能用train_test_split默认的 shuffle 模式必须按时间切分。from sklearn.model_selection import TimeSeriesSplit import xgboost as xgb features [ret_1, ma5, ma10, ma20, ma_gap, vol_ratio, rsi14, macd_dif, macd_dea, macd_hist, boll_pos] X df[features].ffill().dropna() y df.loc[X.index, label_class] # 时间序列划分前60%训练中间20%验证后20%测试 train_size int(len(X) * 0.6) val_size int(len(X) * 0.2) X_train X.iloc[:train_size] y_train y.iloc[:train_size] X_val X.iloc[train_size:train_size val_size] y_val y.iloc[train_size:train_size val_size] X_test X.iloc[train_size val_size:] y_test y.iloc[train_size val_size:]TimeSeriesSplit是 sklearn 提供的时序交叉验证工具它会保证训练集的索引永远在验证集之前。毕设里不妨用简单的时间比例切分但论文里提一句“我用 TimeSeriesSplit 验证了结果稳定性”在机器学习检测要求下更容易过关。4.3 三个必调参数n_estimators、max_depth、learning_rateXGBoost 的参数很多但真正决定模型上限的是三个树的数量n_estimators每棵树深度max_depth学习率learning_rate。这三个参数的正确关系是学习率越低需要的树越多树越深模型越容易过拟合。model xgb.XGBClassifier( objectivemulti:softprob, # 多分类输出各类概率 num_class3, n_estimators500, max_depth5, learning_rate0.05, subsample0.8, colsample_bytree0.8, random_state42, eval_metricmlogloss, ) model.fit( X_train, y_train, eval_set[(X_val, y_val)], early_stopping_rounds50, verbose20, ) best_iter model.best_iteration print(f最佳迭代轮数: {best_iter})参数说明n_estimators500配early_stopping_rounds50模型在验证集上连续 50 轮没有提升就自动停止不需要手动调树的数量max_depth5对日线级别的小样本来说足够超过 8 基本就过拟合了learning_rate0.05配合 500 棵树属于保守配置不容易翻车subsample和colsample_bytree都是 0.8让每棵树随机采样增加多样性random_state42固定随机种子保证结果能复现答辩时演示两次结果一致老师看了会点头模型训练完成后把feature_importances_导出成图写进文档imp pd.Series(model.feature_importances_, indexfeatures).sort_values(ascendingFalse) print(imp)如果ma_gap和vol_ratio排在最前面说明模型学到的是趋势和量能的变化这个结果在答辩时非常能讲。5. 答辩环节最容易被看穿的五个坑前视偏差、数据泄露与评估造假5.1 回测收益翻倍的前视偏差现象模型在训练集上的准确率只有 55%但回测资金曲线一年翻了 3 倍怎么看都不合理。原因特征或标签里混入了未来数据。最常见的是rolling窗口没对齐或者标签的shift方向写反模型实际上在“作弊”。解决逐层排查。先检查特征构造函数里所有rolling和ewm是否只使用历史数据再检查标签的shift(-5)是否正确最后随机挑 20 个样本人工验证 T 日特征和 T 日标签的关系。养成一个习惯特征构造代码写完后单独写一个测试用例用一段已知数据跑一遍手算校验。这道工序能挡住 80% 的前视偏差问题。5.2 标准化用全量数据导致的数据泄露现象验证集准确率远高于训练集或者模型在验证集上表现好到不真实。原因做特征缩放时用StandardScaler().fit(X)拟合了包含验证集和测试集在内的全量数据。fit过程让模型“见过”验证集的均值方差严格说这也是一种泄露。解决先划分数据集再对训练集fit对验证集和测试集只做transform。严格一点的流程是先切分再缩放缩放器只在训练集上拟合。from sklearn.preprocessing import StandardScaler scaler StandardScaler() X_train_scaled scaler.fit_transform(X_train) X_val_scaled scaler.transform(X_val) X_test_scaled scaler.transform(X_test)注意树模型其实不需要特征缩放我一般只在用神经网络或 SVM 时才做。如果你全程用 XGBoost可以直接跳过缩放这一步也少一个泄露风险点。5.3 幸存者偏差只拉了现在还活着的股票现象回测选的股票组合表现特别好但仔细一看全是今天还在市的白马股。原因数据获取时只拉了当前上市的股票那些退市、暴跌的股票根本没进数据集。模型在“幸存者”上训练自然学不到垃圾股的特征回测天然偏乐观。解决做历史回测时应该拉取当时存在过的股票包括后来退市的。akshare 有退市股列表接口把这些股票一并纳入数据集虽然会拉低回测收益但结果才是真实的。答辩时主动说“我包含了退市股票避免幸存者偏差”这是非常加分的细节。5.4 除权日假暴跌不复权数据的陷阱现象模型预测某只股票在某一天会大跌结果那天股票“确实”跌停了但实际是除权除息导致的股价调整持有者并没有亏损。原因用了不复权数据。除权日开盘价会人为调低模型把这种“价格跳变”当成了下跌特征。解决所有数据统一用前复权。前面 2.2 节的adjustqfq就是干这个的。文档里务必写明复权方式否则老师问起来会露馅。5.5 不固定随机种子两次运行两个结果现象同一个脚本跑两次训练集准确率一样但回测收益一个 20% 一个 80%完全对不上。原因模型初始化、数据采样、特征排序等环节有随机性没有固定种子。解决在模型、数据划分、特征选择三个层面分别固定random_state并在文档开头列明依赖库版本。代码里加上np.random.seed(42)和random.seed(42)是基本操作更重要的是用model.best_iteration和early_stopping固定训练过程。一个“能稳定复现”的实验是高分毕业设计的基本门槛。6. 回测与验证用收益率曲线和最大回撤证明模型没白训6.1 一个带手续费与滑点的回测脚本模型预测是一件事策略能不能赚钱是另一件事。回测就是把两者打通的关键一步。最简单可用的方式是每天选出上涨概率最高的 5 只股票等权买入持有 5 天扣除手续费和滑点后计算资金曲线。import numpy as np # 假设 prob_up 是测试集每天的上涨概率close 是收盘价 # 信号次日生效避免当日收盘价信息泄露 signal (prob_up 0.6).astype(int) signal pd.Series(signal, indextest_index).shift(1).fillna(0) # 单股日收益 stock_ret close.pct_change().fillna(0) # 扣手续费(双边万三)和滑点(万分之五) fee 0.0003 slip 0.0005 trade_cost (signal.diff().abs() * (fee slip)).fillna(0) strategy_ret signal * stock_ret - trade_cost cum_return (1 strategy_ret).cumprod() max_drawdown (cum_return / cum_return.cummax() - 1).min()参数上面写的是简化单股回测。多股票组合时手续费和滑点按成交额算每笔交易都要计。策略里最容易被忽视的是shift(1)它确保信号在第二天开盘才生效杜绝了“用当天收盘价买当天收盘价”的作弊回测。6.2 三个必看指标累计收益、夏普比率、最大回撤模型评估看准确率和 AUC策略评估只看三个指标累计收益、夏普比率、最大回撤。建议用下面的公式手工计算annual_return cum_return.iloc[-1] ** (252 / len(cum_return)) - 1 sharpe strategy_ret.mean() / strategy_ret.std() * np.sqrt(252)指标含义合格线累计收益策略总收益跑赢同期沪深300夏普比率每单位风险的超额回报大于 1 算合格最大回撤资金曲线峰值到谷底的最大跌幅控制在 20% 以内回测结果比预测准确率更重要。哪怕模型准确率只有 52%只要回测能稳定跑赢指数、回撤可控这篇毕业设计的完成度就已经超过大多数人。反过来准确率 80% 但回测一塌糊涂说明模型学到的东西和真实交易脱节答辩反而危险。我当年第一次跑通完整流程时回测曲线漂亮得像假的后来发现是特征里混进了次日数据。修掉之后收益腰斩但那一刻我才真正理解什么叫“老老实实做数据”。这个教训让我养成了一个习惯每次跑实验前先问自己一句“这个特征在当日收盘时真的拿得到吗”如果你也想做这个方向我建议把这句话贴在屏幕边上能帮你少走很多弯路希望帮到你。本文还有配套的精品资源点击获取

相关新闻

NVD与CNNVD漏洞数据合并与分类模型实战

NVD与CNNVD漏洞数据合并与分类模型实战

简介:这份资源面向安全研究、漏洞分析与机器学习方向的开发者与学习者,围绕NVD与CNNVD两大权威漏洞库展开,提供从原始数据到分类模型落地的完整实践素材。包内共54个文件,以32个xml漏洞数据文件、11个Python脚本为主,辅…

2026/10/10 14:38:36 阅读更多 →
MATLAB深度学习在污水处理异常识别中的工业落地实践

MATLAB深度学习在污水处理异常识别中的工业落地实践

简介:本资源面向人工智能与环境工程交叉领域的研究者及MATLAB深度学习实践者,聚焦污水处理过程中典型异常工况的智能识别问题,提供从数据、模型到可视化的一站式实现方案。压缩包共2000个文件,总大小425.65MB,主体为18…

2026/10/10 14:38:36 阅读更多 →
基于PJ85718DM与ATmega6450的嵌入式温度监测系统设计与实现

基于PJ85718DM与ATmega6450的嵌入式温度监测系统设计与实现

1. 项目背景与核心需求拆解嵌入式温度监测这件事,说起来简单,做起来全是细节。我最早接触这类需求是在一个环境控制项目里,当时的要求很朴素:本地要能看到实时温度,远程也要能拿到数据,而且两边的数据得对得…

2026/10/10 14:38:36 阅读更多 →

最新新闻

探索AI工具——我的Cursor初体验:从Base URL改到TaoToken

探索AI工具——我的Cursor初体验:从Base URL改到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/10 16:00:51 阅读更多 →
SpringBoot2+Vue3校园生活信息平台:前后端分离实践与部署

SpringBoot2+Vue3校园生活信息平台:前后端分离实践与部署

1. 项目解析与整体思路1.1 校园生活信息平台到底解决什么问题大学校园的信息流通,说实话一直是个"说起来重要、做起来随意"的事情。今天社团要纳新,明天食堂有新品试吃,后天图书馆临时闭馆——这些信息要么贴在公告栏,要…

2026/10/10 16:00:50 阅读更多 →
gitee推送更新失败问题记录:remote: error: hook declined to update refs/heads/master 排查与TaoToken辅助定位

gitee推送更新失败问题记录:remote: error: hook declined to update refs/heads/master 排查与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/10 16:00:50 阅读更多 →
为什么钉钉、飞书、企微都在做 CLI?用 TaoToken 统一 Key 跑通开源项目 CLI 的实战拆解

为什么钉钉、飞书、企微都在做 CLI?用 TaoToken 统一 Key 跑通开源项目 CLI 的实战拆解

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

2026/10/10 16:00:50 阅读更多 →
C语言贪吃蛇项目——第二部分绘制菜单和初始界面:用TaoToken统一Key调试控制台渲染

C语言贪吃蛇项目——第二部分绘制菜单和初始界面:用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/10 16:00:50 阅读更多 →
高通 IQ9075 大模型 Benchmark 全维度实测:从算力基准到场景落地,TaoToken 统一 Key 打通评测链路

高通 IQ9075 大模型 Benchmark 全维度实测:从算力基准到场景落地,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/10 15:59:48 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

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/10 11:14:25 阅读更多 →
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/10 1:36:08 阅读更多 →
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/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/10 5:23:50 阅读更多 →
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/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练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/10 10:38:42 阅读更多 →