当前位置:首页>Excel>用Excel手搓神经网络4:反向传播算法(下)

用Excel手搓神经网络4:反向传播算法(下)

  • 2026-04-22 01:29:49
用Excel手搓神经网络4:反向传播算法(下)

用Excel手搓神经网络3:反向传播算法(上)

用Excel手搓神经网络1:从输入到输出,看懂前向传播计算过程
用Excel手搓神经网络2:从Small到Large,增长的是参数,不变的是逻辑

上一期已经对反向传播有了直观感受,看计算过程的第一感觉就是反向传播一点都不玄乎,它的核心逻辑,就是一个迭代往复修改错误的过程,其实就是每天都在做的一件事——「知错就改」,只不过机器把这个过程做得更精准、更高效而已。

一直拖着这个下期没更新,是因为再往下讲有点驾驭不住了,一方面需要触及数学生怕自己讲错,另一方面又怕晦涩难懂,另外就是做视频太耗时,暂时也不会用龙虾搞搞,还是先码文字吧。
总之今天的内容需要借助课本来补充下知识,我也是花功夫又仔细补了补数学知识,当然,为了便于理解,上来我先抛弃公式和术语,就用「学生备考」这个最常见的场景,把反向传播的底层逻辑说透。——你摸索着控制孩子的早读、作业、休息、辅导班时间,想提高他的成绩,这个过程,就是反向传播的精髓,保证你看完就能跟朋友聊明白。

先搞懂:没有反向传播,你就是“瞎调整”

咱们先把场景摆清楚:孩子正在中考备考,每天的学习时间是固定的(比如每天可支配学习+休息时间10小时),你要控制4个核心“变量”,来帮他提高成绩:早读时间、作业时间、休息时间、辅导班时间。这4个变量相互影响,比如作业时间太长,休息时间就会减少;辅导班时间太晚影响睡觉,早读时间就会被压缩。另外每个时间段对考试成绩的影响不同,早读侧重记忆,直接影响基础题的得分,特别是语文和英语注重长期积累,辅导班时间主要用来理解和专项技能不足的提高。

第一步:你凭感觉调整(对应神经网络「前向传播」)

一开始你没有任何经验,只能瞎摸索:给孩子安排每天1小时早读、3小时作业、7小时休息、2小时辅导班,剩下的时间自由安排。坚持1个月后,孩子参加摸底考试,成绩出来了——580分(目标是650分),离目标还差70分。

第二步:明确“差距”(对应「计算损失/误差」)

这次摸底考试的成绩,就是“孩子的输出结果”,650分的目标分,就是“正确答案”,两者的差距70分,就是我们说的「误差」——说白了,就是“目前的时间安排,离目标还差多少”。
重点来了:你知道成绩没达标,也知道要调整那4个时间变量,但你不知道「该调哪个、调多少」——是早读时间太短?还是作业时间太长导致疲劳?是休息不够影响效率?还是辅导班没用浪费时间?
如果没有方法,你下次可能随便调整:比如把早读增加到2小时,作业增加到4小时,休息减少到6小时,辅导班不变。结果孩子更疲劳,下次摸底成绩可能只考570分,反而倒退。而「反向传播」,就是帮你「从成绩差距出发,倒着找问题、精准调整变量」的方法,让每一次调整,都能往650分的目标靠近。

反向传播核心:从成绩倒推,精准调整4个时间变量

还是这个中考备考场景,咱们用反向传播的思路,一步步教你调整时间、提高成绩,你就懂机器是怎么学习的了——核心就是“从误差(成绩差距)倒推,找到问题变量,再针对性调整”。

第一步:先定“错多少”——算出总误差

首先明确,总误差是70分(孩子摸底成绩580分 - 目标成绩650分 = -70分,负号代表没达标)。这个总误差,就是我们要“消灭”的目标——就像你心里清楚,“孩子现在的状态,离中考目标还差70分,咱们得通过调整时间,把这70分补回来”。

第二步:倒着找“谁该背锅”——分配误差(找问题变量)

反向传播的关键,就是「从结果(成绩)往回推」,看4个时间变量(早读、作业、休息、辅导班),哪个对“成绩差距”的影响最大,也就是“哪个变量没安排好,导致分数没上去”,这就是「误差分配」。
咱们从成绩差距出发,倒着分析这4个变量的影响(就像你复盘孩子的备考状态):
  1. 早读时间(1小时):孩子反馈,早读时间太短,英语单词、语文古诗文记不牢,每次考试这两块都要丢20分——这是一个明显的误差来源;
  2. 作业时间(3小时):孩子说作业太多,很多重复题浪费时间,重点错题的覆盖率很低,针对性差,同时写到深夜很疲劳,第二天上课走神,数学、物理的基础题会丢15分——这是第二个误差来源;
  3. 休息时间(7小时):看似休息充足,但孩子熬夜写作业,实际深度睡眠只有4小时,白天效率低,间接影响所有科目,大概丢10分——第三个误差来源;
  4. 辅导班时间(2小时):辅导班讲的内容太基础,孩子已经掌握,相当于浪费时间,还占用了自主复习的时间,大概丢25分——这是影响最大的误差来源。
这样一来,我们就把总误差70分,精准分配到4个变量上:辅导班(25分)> 早读(20分)> 作业(15分)> 休息(10分)。相当于明确了“谁的问题最大”,不用再盲目调整,这就是反向传播的核心——找到每个变量对误差的影响,精准定位问题。

第三步:精准改错——调整每一个变量(对应更新参数)

找到每个变量的问题和对误差的影响后,就可以针对性调整了(这一步,对应神经网络里「更新参数」,4个时间变量,就是神经网络的“参数”),调整的原则是:影响越大,调整幅度越大,同时兼顾变量之间的平衡(比如减少辅导班时间,就能增加早读或休息时间)。
针对性调整方案(结合误差大小):
  1. 辅导班时间(影响最大,丢25分):从2小时减少到0.5小时,只保留薄弱科目(比如化学)的辅导,剩下1.5小时,一部分给早读,一部分给休息;
  2. 早读时间(丢20分):从1小时增加到1.5小时,重点背诵英语单词、语文古诗文,解决基础丢分问题;
  3. 作业时间(丢15分):从3小时减少到2.5小时,筛选掉重复题、基础题,重点做错题和拔高题,避免浪费时间;
  4. 休息时间(丢10分):保持7小时总休息时间,调整作息,保证孩子23点前睡觉,增加深度睡眠,提高白天学习效率。
调整后,每天的时间分配更合理:1.5小时早读、2.5小时作业、7小时休息、0.5小时辅导班,剩下4.5小时给孩子自主复习,既解决了每个变量的问题,又保证了整体平衡——这就是反向传播“精准调整参数”的过程,不是瞎改,而是有依据地调。

第四步:重复迭代——越调越准(对应神经网络训练)

一次调整不够,就像孩子备考需要一轮轮复习、一次次摸底,反向传播也需要“反复迭代”,直到误差(成绩差距)越来越小,最终达到目标。
我们再重复上面的步骤,看看效果:
  1. 再测试(前向传播):按新的时间安排,孩子坚持1个月,参加第二次摸底考试,成绩提升到630分,误差从70分缩小到20分;
  2. 倒着找错(反向传播):再次复盘,发现误差只剩下20分,主要来自:早读时间还是不够(丢8分)、作业里的拔高题没练够(丢7分)、休息时间虽够但白天专注力不足(丢5分),辅导班已经没问题;
  3. 再微调(更新参数):早读增加到1.8小时,作业增加0.2小时专门练拔高题,调整孩子白天的学习节奏(每学习1小时休息10分钟),辅导班保持0.5小时;
就这么反复迭代——每一轮摸底(测试)→ 复盘误差(找问题)→ 调整变量(改参数),孩子的成绩会一步步提升:630分→645分→652分,逐渐接近甚至超过650分的目标。
但随着中考越来越近,新的问题出现了:孩子开始出现明显焦虑情绪,平时随堂考试成绩忽高忽低、很不稳定,这就相当于神经网络训练中,出现了“参数调整到位,但输出仍不稳定”的情况,需要新增变量、进一步优化。这时我们果断调整:在原有时间分配基础上,消减晚上半小时作业时间,新增半小时运动时间(缓解疲劳、释放压力)和半小时聊天心理建设时间(疏导焦虑、稳定心态)。这个新增变量、针对性调整的过程,依然是反向传播的延伸——从“成绩不稳定”这个新的误差出发,倒推问题根源(焦虑),再新增并调整相关变量,确保最终输出(中考成绩)稳定达标。这个完整的过程,和机器通过反向传播,反复修正参数、解决新问题、不断逼近“正确结果”,完全一模一样。

对应到神经网络,其实就是这么回事

可能有人会问,这跟神经网络有啥关系?咱们把中考备考的场景,对应到神经网络的核心部分,你一看就懂,一点都不玄乎:
  • 你控制的「4个时间变量」(早读、作业、休息、辅导班)→ 神经网络的「每一层参数」(机器用来计算、预测的核心依据);
  • 孩子的「摸底考试成绩」→ 神经网络的「预测结果」(机器根据参数,算出的答案);
  • 「650分的目标成绩」→ 我们给机器的「真实标签」(比如图片里是猫,就告诉机器正确答案是猫);
  • 「成绩差距(误差)」→ 神经网络的「损失值」(预测结果和真实答案的差距);
  • 「反向传播」→ 从成绩差距(误差)出发,倒着分析每个时间变量(参数)的影响,再针对性调整,让下次摸底成绩(预测结果)更接近目标(真实标签)。
比如我们让AI识别猫和狗,一开始AI会瞎猜(就像你一开始瞎调整时间),把狗当成猫(误差大);然后通过反向传播,倒着查“哪一层参数设置错了”(就像你倒着查哪个时间变量没安排好),再调整每一层的参数(就像你调整时间);重复无数次后,AI就能精准分清猫和狗了——和你陪孩子中考备考,反复调整时间、提高成绩,逻辑完全一致。

反向传播,就是机器的“备考复盘法”

其实到这里,你已经懂了反向传播的全部核心:
它不是什么高深的技术,就是让机器拥有「复盘调整」的能力——就像你陪孩子中考备考,先凭着经验安排时间(机器凭现有参数预测),再通过摸底成绩看差距(算误差),倒着找每个变量的问题(分配误差),然后针对性调整(更新参数),反复迭代,直到达到目标。
没有反向传播,神经网络就是一个只会瞎猜的“笨蛋”(就像你瞎调整时间,越调越差);有了反向传播,它才能像你陪孩子备考一样,不断复盘、不断调整,慢慢学会精准预测、高效完成任务——不管是识别图片、听懂语音,还是写出文案,本质都是这样“反复调整、越做越好”的过程。
下次再听到「反向传播」,就想想“陪孩子中考备考”的场景——从成绩倒推问题,精准调整变量,反复迭代提升,就是这么简单~
回归Excel看看计算过程

那么回到Excel大模型系类,如何修正参数,就是靠右边几个蓝色矩阵,不过很可惜,Tom老师没接着。需要你自己动手添加两个表格。看下边截图,对照文字应该能看懂。

从右下角,损失对输出层线性变换结果的梯度开始定义,记dL3 = ∂L/∂Z₃,该值即为损失函数对 Z₃的梯度。这里需要说明的是,若输出层激活函数为 Softmax,推导中直接将 dL3 简化为预测值与真实值的差值,这一简化并非随意处理,而是由 Softmax 函数结合交叉熵损失的数学特性所决定 —— 二者联合求导后会消去复杂的指数项,最终梯度形式可直接简化为差值,大幅降低计算复杂度。

得到 dL3 后,继续向上游推导权重参数的梯度:将 dL3 做转置变换(仅调整矩阵维度以匹配运算要求,不改变数据本身),再与前一层的输出 A₂做矩阵乘法,即可得到损失对输出层权重 W3 的梯度,即dW3 = ∂L/∂W₃,该值直观反映了权重 W3 的微小变化对整体损失的影响程度,是参数更新的核心依据。

接下来是关键的参数修正步骤:以 W3 的更新为例,先将梯度矩阵 dW3 做转置(与原始 W3 矩阵形状保持一致,对应推导中绿色 ,蓝色矩阵的维度匹配要求),再将其乘以学习率 η(本次示例中 η=0.1),最后用权重原始值减去该乘积(注:梯度下降法为原值 - 学习率 × 梯度,而非相加,核心是沿着损失降低的方向更新),即可得到修正后的新权重 W3',公式为:W3' = W3 - η × dW3ᵀ

按此规则对示例中参数逐一更新:首个参数保持 0 不变,第二个参数从 1 更新为 - 0.9,0.5 更新为 2.06,0.2 更新为 5.02。从更新结果能明显看出,参数数值变化幅度过大,这意味着学习率 0.1 的设置偏高—— 学习率过大易导致参数在最优解附近震荡,甚至无法收敛,因此实际训练中需将学习率适当降低(如调整为 0.01、0.001 等),让参数以更平缓的节奏向最优值逼近。

将更新后的新参数重新代入网络进行前向传播,模型输出会随之改变,该结果可能尚未达到预期,但神经网络的训练本就是多轮迭代循环的过程:每一轮都按 “计算梯度→更新参数→验证输出” 的逻辑反复优化,通过数十、数百甚至数千轮迭代,参数会逐步收敛到最优值,最终让模型输出贴合真实目标。

参考书籍推荐(清华大学出版社,适配深度学习梯度推导 / 参数优化知识补充)

结合你提供的清华社链接(https://www.tup.tsinghua.edu.cn/upload/books/yz/088732-01.pdf),该文档为《深度学习与交通大数据实战》核心章节,其中3.1 反向传播算法部分(124-132 页)详细讲解了梯度计算、权值更新的数学推导与 NumPy 实现,与本次的损失梯度、参数更新知识点高度契合,可作为核心参考;

若需更系统的深度学习基础补充,推荐清华社同系列 / 同领域经典教材:

  1. 《深度学习入门:基于 Python 的理论与实现》(斋藤康毅 著,清华社引进):零基础讲解反向传播、梯度下降的数学原理,配套极简代码实现,适合理解参数更新的底层逻辑;
  2. 《深度学习框架 PyTorch:入门与实践》(陈云 著,清华社):第 3-4 章详细讲解神经网络参数优化、学习率调优策略,包含大量实战案例,适配工程化落地;
  3. 《神经网络与深度学习》(邱锡鹏 著,清华社):第 2-3 章对 Softmax + 交叉熵损失的梯度简化、梯度下降变种(SGD/Adam)做了严谨的数学证明,适合深入研究理论细节。

以上书籍均可在清华大学出版社官网(tup.tsinghua.edu.cn) 检索电子版 / 纸质版,也可通过知网、超星等平台查阅相关章节。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-26 03:26:15 HTTP/2.0 GET : https://h.sjds.net/a/485292.html
  2. 运行时间 : 0.101333s [ 吞吐率:9.87req/s ] 内存消耗:4,404.27kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=0bb81ba5a16544affaafa4dd08033ee2
  1. /yingpanguazai/ssd/ssd1/www/h.sjds.net/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/h.sjds.net/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/h.sjds.net/runtime/temp/ad153693ed39fba6d1bda2fe72512cde.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000834s ] mysql:host=127.0.0.1;port=3306;dbname=h_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001025s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000375s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000346s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000629s ]
  6. SELECT * FROM `set` [ RunTime:0.000275s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000660s ]
  8. SELECT * FROM `article` WHERE `id` = 485292 LIMIT 1 [ RunTime:0.000539s ]
  9. UPDATE `article` SET `lasttime` = 1777145175 WHERE `id` = 485292 [ RunTime:0.004660s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000309s ]
  11. SELECT * FROM `article` WHERE `id` < 485292 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000496s ]
  12. SELECT * FROM `article` WHERE `id` > 485292 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000519s ]
  13. SELECT * FROM `article` WHERE `id` < 485292 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000867s ]
  14. SELECT * FROM `article` WHERE `id` < 485292 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000978s ]
  15. SELECT * FROM `article` WHERE `id` < 485292 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000930s ]
0.103256s