当前位置:首页>python>数据不够?教你用Python进行数据增强

数据不够?教你用Python进行数据增强

  • 2026-06-30 16:59:54
数据不够?教你用Python进行数据增强

01 一个真实的烦恼

小明最近在做一个猫狗分类的项目,信心满满地训练好了模型。结果测试时傻眼了——准确率只有65%。

排查了半天,他发现两个问题:

  • 训练集只有500张图片,模型根本“没看够”

  • 大部分猫咪都是正脸照,遇到侧脸、暗光下的猫就识别不了

这就是典型的“数据饥渴”问题。 深度学习模型像个挑剔的小孩,需要大量、多样化的数据才能学好。

但现实往往是:标注数据成本高、某些场景数据稀缺、隐私限制无法收集更多...

怎么办呢?数据增强就是为此而生的“魔法”。


02 一句话理解数据增强

数据增强,就是对现有数据进行一系列“微小改造”,生成新数据的过程。

核心思想很简单:一张图在现实中可以有无数种样子,但本质不变。

现实场景
图像变化
拍摄角度不同
旋转
距离远近不同
缩放
光照条件不同
亮度调整
相机轻微抖动
平移
镜像自拍
水平翻转

猫还是那只猫,但“换个姿势”让模型认识它。


03 为什么数据增强有效?

这里有个关键概念:不变性

我们希望模型学会:“不管你怎么转、怎么调亮度,这都是同一类东西。”

举个例子:小孩子认识“苹果”,不会因为你把苹果转了个方向、或者放在阴影里就不认识。模型也应该如此。

数据增强通过人为引入这些变化,强制模型学习到这种不变性,泛化能力自然就上去了。

同时,它还是一种正则化手段,能有效抑制过拟合。


04 常见的数据增强方法一览

类别
方法
说明
几何变换
翻转、旋转、缩放、裁剪、平移
改变位置和角度
颜色变换
亮度、对比度、饱和度、色调
模拟不同光照
噪声注入
高斯噪声、椒盐噪声
模拟传感器噪声
模糊
高斯模糊、运动模糊
模拟抖动失焦
遮挡
随机擦除、Cutout
模拟遮挡情况

05 Python实现

import numpy as npimport matplotlib.pyplot as pltfrom PIL import Image, ImageEnhance, ImageFilterimport osplt.rcParams['font.sans-serif'] = ['SimHei''DejaVu Sans''Arial']plt.rcParams['axes.unicode_minus'] = Falseclass DataAugmentor:    def __init__(self, image_path):        """        初始化增强器        参数:            image_path: 图片路径        """        self.original = Image.open(image_path).convert('RGB')        self.results = {'原图'self.original}        print(f"图片尺寸: {self.original.size}")        print(f"图片模式: {self.original.mode}")    def horizontal_flip(self, key_name="水平翻转"):        """水平镜像翻转"""        self.results[key_name] = self.original.transpose(Image.FLIP_LEFT_RIGHT)        return self    def vertical_flip(self, key_name="垂直翻转"):        """垂直镜像翻转"""        self.results[key_name] = self.original.transpose(Image.FLIP_TOP_BOTTOM)        return self    def rotate(self, angle=30, key_name=None):        """        旋转图片        参数:            angle: 旋转角度(逆时针)        """        if key_name is None:            key_name = f"旋转{angle}°"        self.results[key_name] = self.original.rotate(            angle, expand=False, fillcolor='black'        )        return self    def random_crop(self, crop_ratio=0.8, key_name=None):        """        随机裁剪后缩放回原尺寸        参数:            crop_ratio: 裁剪比例(0~1)        """        if key_name is None:            key_name = f"随机裁剪({int(crop_ratio*100)}%)"        w, h = self.original.size        crop_w = int(w * crop_ratio)        crop_h = int(h * crop_ratio)        # 随机选择裁剪起点        left = np.random.randint(0, w - crop_w + 1)        top = np.random.randint(0, h - crop_h + 1)        cropped = self.original.crop((left, top, left + crop_w, top + crop_h))        # 缩放回原尺寸        self.results[key_name] = cropped.resize((w, h), Image.LANCZOS)        return self    def adjust_brightness(self, factor=1.5, key_name=None):        """        调整亮度        参数:            factor: >1变亮, <1变暗        """        if key_name is None:            key_name = f"亮度×{factor}"        enhancer = ImageEnhance.Brightness(self.original)        self.results[key_name] = enhancer.enhance(factor)        return self    def adjust_contrast(self, factor=1.5, key_name=None):        """        调整对比度        参数:            factor: >1增强对比度, <1降低对比度        """        if key_name is None:            key_name = f"对比度×{factor}"        enhancer = ImageEnhance.Contrast(self.original)        self.results[key_name] = enhancer.enhance(factor)        return self    def adjust_saturation(self, factor=1.8, key_name=None):        """        调整饱和度        参数:            factor: >1更鲜艳, <1更灰暗, 0为灰度图        """        if key_name is None:            key_name = f"饱和度×{factor}"        enhancer = ImageEnhance.Color(self.original)        self.results[key_name] = enhancer.enhance(factor)        return self    def add_gaussian_noise(self, mean=0, std=25, key_name=None):        """        添加高斯噪声        参数:            mean: 噪声均值            std: 噪声标准差(越大噪声越强)        """        if key_name is None:            key_name = f"高斯噪声(σ={std})"        img_array = np.array(self.original, dtype=np.float32)        noise = np.random.normal(mean, std, img_array.shape)        noisy = img_array + noise        noisy = np.clip(noisy, 0255).astype(np.uint8)        self.results[key_name] = Image.fromarray(noisy)        return self    def gaussian_blur(self, radius=3, key_name=None):        """        高斯模糊,模拟失焦或运动模糊        参数:            radius: 模糊半径,越大越模糊        """        if key_name is None:            key_name = f"高斯模糊(r={radius})"        self.results[key_name] = self.original.filter(            ImageFilter.GaussianBlur(radius=radius)        )        return self    def color_jitter(self, brightness=1.3, contrast=1.3                     saturation=1.5, key_name="颜色抖动"):        """        组合颜色变换,模拟不同光照环境        """        img = self.original.copy()        # 依次调整亮度、对比度、饱和度        img = ImageEnhance.Brightness(img).enhance(brightness)        img = ImageEnhance.Contrast(img).enhance(contrast)        img = ImageEnhance.Color(img).enhance(saturation)        self.results[key_name] = img        return self    def translate(self, dx=30, dy=20, key_name=None):        """        平移变换        参数:            dx: 水平位移(像素)            dy: 垂直位移(像素)        """        if key_name is None:            key_name = f"平移({dx},{dy})"        img_array = np.array(self.original)        h, w = img_array.shape[:2]        # 创建平移矩阵并应用        M = np.float32([[10, dx], [01, dy]])        # 使用PIL的transform实现        self.results[key_name] = self.original.transform(            (w, h), Image.AFFINE, (10, dx, 01, dy),             fillcolor='black'        )        return self    def show_all(self, cols=4, figsize=(1612), save_path=None):        """        可视化所有增强结果        参数:            cols: 每行显示的图片数            figsize: 画布大小            save_path: 保存路径        """        n = len(self.results)        rows = (n + cols - 1) // cols        fig, axes = plt.subplots(rows, cols, figsize=figsize)        axes = axes.flatten() if n > 1 else [axes]        for idx, (name, img) in enumerate(self.results.items()):            axes[idx].imshow(img)            axes[idx].set_title(name, fontsize=14, fontweight='bold')            axes[idx].axis('off')        # 隐藏多余的子图        for idx in range(n, len(axes)):            axes[idx].axis('off')        fig.suptitle('数据增强效果总览', fontsize=20, fontweight='bold', y=0.98)        plt.tight_layout()        if save_path:            plt.savefig(save_path, dpi=150, bbox_inches='tight'                       facecolor='white')            print(f"图片已保存至: {save_path}")        plt.show()        return figdef demo_with_custom_image(image_path="demo.jpg"):    """    对指定图片进行完整的数据增强演示    如果没有demo.jpg,程序会自动创建一个彩色几何图形作为演示    """    # 检查图片是否存在,不存在则生成一个演示图    if not os.path.exists(image_path):        print(f"未找到 '{image_path}',正在生成演示图片...")        _create_demo_image(image_path)    print("=" * 50)    print("数据增强演示开始")    print("=" * 50)    # 创建增强器并链式调用所有方法    augmentor = DataAugmentor(image_path)    # 几何变换    augmentor.horizontal_flip()         # 水平翻转    augmentor.vertical_flip()           # 垂直翻转    augmentor.rotate(angle=25)          # 旋转25°    augmentor.rotate(angle=-15)         # 旋转-15°    augmentor.random_crop(0.75)         # 75%区域随机裁剪    augmentor.translate(40, -20)        # 平移    # 颜色变换    augmentor.adjust_brightness(0.5)    # 变暗    augmentor.adjust_brightness(1.8)    # 变亮    augmentor.adjust_contrast(0.4)      # 低对比度    augmentor.adjust_contrast(2.0)      # 高对比度    augmentor.adjust_saturation(0.3)    # 低饱和度    augmentor.adjust_saturation(2.5)    # 高饱和度    augmentor.color_jitter(1.41.31.6)  # 组合颜色变换    # 噪声与模糊    augmentor.add_gaussian_noise(std=20)     # 轻微噪声    augmentor.add_gaussian_noise(std=45)     # 较强噪声    augmentor.gaussian_blur(radius=2)        # 轻微模糊    augmentor.gaussian_blur(radius=5)        # 较强模糊    print(f"\n✅ 共生成 {len(augmentor.results)} 种变体")    print("正在绘制可视化结果...\n")    # 展示所有效果    augmentor.show_all(cols=4, figsize=(1812),                        save_path="data_augmentation_demo.png")    print("\n统计信息:")    print(f"   - 原始图片: 1张")    print(f"   - 增强变体: {len(augmentor.results) - 1}张")    print(f"   - 总数据量提升: {len(augmentor.results)}倍")    return augmentordef _create_demo_image(save_path):    """创建一个彩色的演示图片"""    from PIL import ImageDraw, ImageFont    w, h = 400400    img = Image.new('RGB', (w, h), color='white')    draw = ImageDraw.Draw(img)    # 画一个彩色圆形    draw.ellipse([8080320320], fill='coral', outline='darkred', width=5)    # 画一个矩形    draw.rectangle([120120280200], fill='skyblue', outline='navy', width=3)    # 画几个彩色圆点    for i in range(5):        x = 100 + i * 50        y = 300        draw.ellipse([x-15, y-15, x+15, y+15],                      fill=['gold''limegreen''purple''orange''pink'][i])    # 写文字    draw.text((120350), "Data Augmentation", fill='darkblue')    img.save(save_path)    print(f"演示图片已保存为: {save_path}")if __name__ == "__main__":    # 运行演示,将你的图片路径替换 'demo.jpg'    # 例:demo_with_custom_image("my_cat.jpg")    result = demo_with_custom_image("demo.jpg")

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-04 05:33:14 HTTP/2.0 GET : https://f.mffb.com.cn/a/491161.html
  2. 运行时间 : 0.132310s [ 吞吐率:7.56req/s ] 内存消耗:4,923.17kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=0e1e52906911ea3ebb2be66247a6d28e
  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.000470s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000731s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000291s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.001805s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000677s ]
  6. SELECT * FROM `set` [ RunTime:0.005871s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000763s ]
  8. SELECT * FROM `article` WHERE `id` = 491161 LIMIT 1 [ RunTime:0.001215s ]
  9. UPDATE `article` SET `lasttime` = 1783114394 WHERE `id` = 491161 [ RunTime:0.003688s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.003335s ]
  11. SELECT * FROM `article` WHERE `id` < 491161 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.002008s ]
  12. SELECT * FROM `article` WHERE `id` > 491161 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.007556s ]
  13. SELECT * FROM `article` WHERE `id` < 491161 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.003782s ]
  14. SELECT * FROM `article` WHERE `id` < 491161 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.011915s ]
  15. SELECT * FROM `article` WHERE `id` < 491161 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.018729s ]
0.134958s