当前位置:首页>python>纯Python打造深度学习引擎 —— 探秘Caspian-AI库

纯Python打造深度学习引擎 —— 探秘Caspian-AI库

  • 2026-06-29 06:26:31
纯Python打造深度学习引擎 —— 探秘Caspian-AI库

1. 认识 Caspian

Caspian 是一个纯 Python 实现的轻量级深度学习研究库,其最大特色是完全基于 NumPy 构建,零外部框架依赖。这意味着你无需安装 TensorFlow、PyTorch 等庞然大物,仅凭熟悉的 NumPy 就能轻松搭建、训练并理解神经网络的每一个底层细节。

请在微信客户端打开

Caspian 的设计哲学深受 PyTorch 和 TensorFlow 的启发,它把神经网络中每个核心组件都抽象成独立的基类,你可以像搭积木一样自由继承和组合,构建出完全属于自己的模型。如果你希望深入理解深度学习框架的内部运作,或者需要一个极致轻量的实验环境,Caspian 会是理想的起点。

2. 设计哲学与架构解析

为什么需要 Caspian?

主流框架虽然功能强大,但内部封装复杂,代码庞大。Caspian 反其道而行之,将所有复杂操作回归到 NumPy 数组计算,让你能清晰地看到数据在前向传播、反向传播以及参数更新过程中的每一步变化。

六大核心基类

Caspian 的所有组件都继承自以下六种基类之一,它们共同构成了一个完整的深度学习生态系统:

cspn.Layer:一切模型的基础,负责数据的处理和特征学习。

cspn.Activation:非线性函数(如 ReLU、Sigmoid),赋予模型非线性表达能力。

cspn.PoolFunc:与池化层配合使用,对数据进行降维。

cspn.Loss:量化模型预测与真实标签之间误差的损失函数。

cspn.Optimizer:负责根据梯度更新层权重的优化器。

cspn.Scheduler:动态调整优化器学习率的调度器。

组件协作关系

在 Caspian 中,各组件并非独立存在,而是按一种清晰的结构组织在一起。下面的流程图直观地描绘了这种关系:

可以看出,Layer 是核心节点,可以按需装载 Activation/PoolFunc 或 Optimizer,而 Optimizer 又能进一步包含 Scheduler。这种设计让我们能灵活控制每一层的计算行为。

核心工作流程:训练一环

一个标准的训练迭代由四个步骤串联完成:

前向传播(forward):数据逐层流动,最终输出预测结果。

计算损失(Loss):通过损失函数度量预测值与真实值的差距。

反向传播(backward):将损失的梯度从输出层逐层传回输入层。

参数更新(step):优化器利用梯度信息更新该层权重。

3. 实践指南:用代码构建一切

构建你自己的模型

下面的 NeuralNet 演示了如何将一个完整的网络封装成单一的 Layer。这种做法类似于 PyTorch 的 nn.Sequential,能让代码结构非常清晰。

from caspian.layers import Layer, Densefrom caspian.activations import Activation, Softmaxfrom caspian.optimizers import Optimizerimport numpy as npclass NeuralNet(Layer):    def __init__(self, inputs: int, hiddens: int, outputs: int, activation: Activation, opt: Optimizer):        in_size = (inputs,)        out_size = (outputs,)        super().__init__(in_size, out_size)        # 两个全连接层,使用独立的优化器副本        self.x_1 = Dense(activation, inputs, hiddens, optimizer=opt.deepcopy())        self.x_2 = Dense(activation, hiddens, outputs, optimizer=opt.deepcopy())        self.softmax = Softmax()    def forward(self, data: np.ndarray, training: bool = False) -> np.ndarray:        self.training = training        step_1 = self.x_1(data, training)        step_2 = self.x_2(step_1, training)        return self.softmax(step_2)    def backward(self, dx: np.ndarray) -> np.ndarray:        assert self.training is True        d_sm = self.softmax.backward(dx)        d_2 = self.x_2.backward(d_sm)        d_1 = self.x_1.backward(d_2)        return d_1    def step(self) -> None:        self.x_1.step()        self.x_2.step()

自定义激活函数

继承 cspn.Activation 并实现 forward 和 backward 方法,就能轻松创建专属的激活函数。下面以 ReLU 为例:

from caspian.activations import Activationimport numpy as npclass ReLU(Activation):    def forward(self, data: np.ndarray) -> np.ndarray:        return np.maximum(0data)    def backward(self, data: np.ndarray) -> np.ndarray:        return (data >= 0) * 1

自定义池化函数

池化函数的自定义流程与激活函数类似,但它返回的数组尺寸会相应减小:

from caspian.pooling import PoolFuncimport numpy as npclass Average(PoolFunc):    def forward(self, partition: np.ndarray) -> np.ndarray:        return np.average(partition)    def backward(self, partition: np.ndarray) -> np.ndarray:        return partition * (1.0 / partition.shape[self.axis])

自定义损失函数

损失函数不附属任何层,因此可以直接设计成静态方法:

from caspian.losses import Lossimport numpy as npclass CrossEntropy(Loss):    @staticmethod    def forward(actual: np.ndarray, prediction: np.ndarray) -> float:        clip_pred = np.clip(prediction, 1e-101 - 1e-10)        return -np.sum(actual * np.log(clip_pred))    @staticmethod    def backward(actual: np.ndarray, prediction: np.ndarray) -> np.ndarray:        return prediction - actual

自定义优化器与调度器

优化器负责梯度处理,调度器控制学习率。下面是动量优化器和常量学习率调度器的实现:

# 优化器 examplefrom caspian.optimizers import Optimizerfrom caspian.schedulers import Schedulerimport numpy as npclass Momentum(Optimizer):    def __init__(self, momentum: float = 0.9, learn_rate: float = 0.01, sched: Scheduler) -> None:        super().__init__(learn_rate, sched)        self.momentum = momentum        self.previous = 0.0    def process_grad(self, grad: np.ndarray) -> np.ndarray:        learn_rate = self.scheduler(self.learn_rate)        velocity_grad = self.momentum * self.previous - learn_rate * grad        self.previous = velocity_grad        return velocity_grad    def step(self) -> None:        self.scheduler.step()    def reset_grad(self) -> None:        self.previous = 0.0        self.scheduler.reset()    def deepcopy(self) -> 'Momentum':        return Momentum(self.momentum, self.learn_rate, self.scheduler.deepcopy())# 调度器 exampleclass ConstantLR(Scheduler):    def __init__(self, steps: int, const: float = 0.1) -> None:        self.steps = steps        self.const = const        self.epoch = 0    def __call__(self, init_rate: float) -> float:        return init_rate * self.const if self.epoch < self.steps else init_rate    def step(self) -> None:        self.epoch += 1    def reset(self) -> None:        self.epoch = 0    def deepcopy(self) -> 'ConstantLR':        return ConstantLR(self.steps, self.const)

4. 进阶体验:上手 MNIST 项目

下面这个完整的例子,展示了如何使用 Caspian 的卷积、全连接等工具,在 MNIST 数据集上训练一个数字识别网络:

import numpy as npfrom caspian.layers import Conv2D, Pooling2D, Reshape, Dense, Container, Sequencefrom caspian.activations import Sigmoid, ReLU, Softmaxfrom caspian.pooling import Maximumfrom caspian.losses import BinCrossEntropyfrom caspian.optimizers import StandardGDfrom keras.datasets import mnist# 1. 数据准备(xtrain, ytrain), (xtest, ytest) = mnist.load_data()x_train = np.array(xtrain).reshape(xtrain.shape[0], 784)x_test = np.array(xtest).reshape(xtest.shape[0], 784)y_train = np.zeros((ytrain.shape[0], ytrain.max()+1), dtype=np.float32)for i in range(len(y_train)):    y_train[i][int(ytrain[i])] = 1xt = x_train.reshape(-16012828) / 255.0yt = y_train.reshape(-16010)# 2. 构建模型optim = StandardGD(0.001)d1 = Conv2D(Sigmoid(), 323, (12828))d2 = Pooling2D(Maximum(), 2, (322626), 2)d3 = Conv2D(Sigmoid(), 123, (321313))d4 = Pooling2D(Maximum(), 2, (121111), 2)d5 = Reshape((-11255), (-112*5*5))d6 = Dense(ReLU(), 12*5*5100)d7 = Dense(Sigmoid(), 10010)d8 = Container(Softmax())Seq1 = Sequence([d1, d2, d3, d4, d5, d6, d7])Seq1.set_optimizer(optim)ent = BinCrossEntropy()# 3. 训练循环losses = 0.0for ep in range(50):    for x, y in zip(xt, yt):        x_r = Seq1.forward(x, True)        err_grad = ent.backward(y, x_r)        loss = ent.forward(y, x_r)        Seq1.backward(err_grad)        Seq1.step()        losses += loss    print(f"Epoch {ep+1} - {losses / xt.shape[0]}")    losses = 0.0

5. 总结与展望

Caspian 是一款追求纯粹和透明的深度学习库,非常适合教学、研究和轻量级实验。它通过清晰的基类分层和灵活的组件组合,让开发者能轻松触及神经网络的底层细节。未来它计划添加 Transformer 层、更多激活函数和优化器,潜力值得期待。

如果想要一个既能快速上手,又能深入理解原理的深度学习环境,不妨试试 Caspian,享受“知其然更知其所以然”的探索乐趣。

编辑:余文彬

审校:余洁洁

最新文章

随机文章

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