1、ImageDataBunch 对数据封装的很好,包括预处理都在这里面完成了

2、models 现有模型及权重

2-1  create_body 可以用来获取现有模型的主体结构

2-2 create_head 可以用来创建 分类器的全连接层,加了 flat, norm归一化在里面,效果比较好

3、learner, 数据,模型,loss函数与 学习方法的合体

3-1 create_cnn 用来创建 fastai内置好的 lerner, 效果比较好。 之前没完全弄得,弄个模型就想网 create_cnn里面塞,导致报错,应该是 切分分层没配置。

learner任意模型放到 learner里面就能用,但是效果没有 create_cnn的好。应该还是 分层没对的结果。这个还要调试。

4、迁移学习时的冻结和解冻  learn.freeze()learn.unfreeze()都有对分层做这里,这就是还需要研究的地方。把learner的效果做成和 create_cnn的效果一样。

cut 可以是数字或者是返回骨架的一个函数——待会尝试下

split_on 是一个函数,急需验证下——太神奇了,应用了该技术后,收敛明细加快。

def _resnet_split(m:nn.Module): return (m[0][6],m[1])

是分成了3个group, 前面0-5,6到最后,然后是头部

cut  -1,-2好些有点不对

05-28 15:56