ludwig 用于迁移学习的图像预训练模型

r3i60tvu  于 2个月前  发布在  其他
关注(0)|答案(5)|浏览(31)

你好,

我有一个相对较小的图像数据集,并希望利用迁移学习来获得更好的结果。我在网上找不到很多关于迁移学习的详细信息,唯一提到它的是在这里的更新帖子中与BERT相关的内容:https://eng.uber.com/ludwig-v0-2/

我仍然不确定如何进行图像迁移学习,就像在ImageNet等上使用预训练模型一样可能吗?
这是可能的吗?如果是的话,这个模型的定义会是什么样子?因为模型的起始权重将与我的输出减少的类别不同吗?
谢谢。

ckx4rj1h

ckx4rj1h1#

目前在Ludwig中没有可导入的预训练图像模型,从0.3版本开始,我们将开始添加它们。我把这当作一个功能请求。
如果你有兴趣合作添加这个功能,请告诉我,这会非常容易。

cgfeq70w

cgfeq70w2#

我很高兴能为这个项目工作。
我能帮上什么忙?

zz2j4svz

zz2j4svz3#

我会很高兴地为此工作。
我能怎么帮忙?
太好了!谢谢你愿意帮忙。
我们现在正在大量进行TF2的移植工作,所以任何贡献都应该从tf2_porting分支开始。
Ludwig有一个用于输入特征编码器的概念,这使得添加新的预训练图像编码器变得容易。
如果你查看features/image_feature.py,你会发现一个与输入特征关联的编码器字典。
理想情况下,你可能希望在那里添加一个预训练模型,给它一个名字并实现类。图像编码器的类在model/modules/image_encoders.py中。
基本上,你需要实现一个具有__init__函数的对象,该函数包含参数(在这个例子中可能是预训练模型的路径)和一个call函数,该函数接受大小为[batch, h, w, c]的Tensor作为输入,并返回[batch, h', w', c']或仅返回一个[batch, hidden]Tensor,具体取决于你是在原始预处理模型的哪里切割(之前还是之后),如果在扁平化之前或之后。
如果你觉得这些说明对你来说很清楚,或者你有其他问题,请告诉我。

b5buobof

b5buobof4#

你好!
还有人在使用这个吗?我很乐意帮忙。

aydmsdu9

aydmsdu95#

@rajatsahay 感谢你的帮助!我之前的消息中的说明,加上开发者指南中的说明,应该是一个很好的起点。如果你在阅读它们后仍然有疑问,请告诉我:)

相关问题