You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

fastai v0.7.0中tfms_from_model()的作用是什么?如何手动实现?

fastai v0.7.0 tfms_from_model 功能说明

1. 函数输出内容

tfms_from_model() 会返回两个可调用的变换流水线对象:

  • train_tfms:训练集专用变换,包含数据增强逻辑
  • val_tfms:验证/测试集专用变换,无随机增强逻辑

2. val_tfms的具体执行操作

不是仅做归一化处理,完整执行流程如下:

  1. 尺寸调整:将输入图像等比例缩放后,做中心裁剪得到 sz × sz 尺寸的正方形图像
  2. 维度转换:将输入的HWC格式(numpy数组默认的通道在后格式)调整为PyTorch要求的CHW格式(通道在前)
  3. 模型匹配归一化:针对传入的骨干模型(此处为VGG16)执行标准化,VGG16对应的归一化规则为:输入已缩放到0~1区间的图像,逐通道减去ImageNet均值 [0.485, 0.456, 0.406],再除以标准差 [0.229, 0.224, 0.225]

你给出的示例中,变换后需要执行transpose(1,2,0)把CHW转回HWC才能正常显示,也对应了维度转换的操作逻辑。

3. sz设置为56的输出结果

变换的整体逻辑不会变化,唯一区别是尺寸调整环节的目标尺寸改为56×56:

  • val_tfms处理后输出的数组/张量尺寸为 3×56×56
  • train_tfms包含的随机裁剪、缩放等增强逻辑的目标尺寸也会同步改为56×56
  • 归一化、维度调整的规则保持不变

4. 和自定义normalize逻辑的对比

两者不等价,你的自定义逻辑缺少两个必要步骤:

  • 缺少sz对应的尺寸调整、中心裁剪操作
  • 缺少HWC到CHW的维度重排操作
    如果你补充了上述两个步骤,且normalize内的均值、标准差和VGG16要求的参数完全一致,那么补全后的逻辑和val_tfms的输出是等价的。

内容的提问来源于stack exchange,提问作者Madara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:18:02