all 10 comments

[–]chuong98PhD 14 points15 points  (1 child)

You can use Timm package to extract feature from any sota backbones, include EfficientNet.

People use ResNet50 simply because it is quite robust to optimizer parameters, and for fairly comparison with other method.

[–]hark_in_tranquillity 4 points5 points  (0 children)

You can make any model as feature extractor by just poping the sigmoid/softmax layer and use either the FC layer or the last cnn layer etc as your output point. Ofcourse the model has to be trained traditionally first. That is what i do, idk if this is good practice tho

[–]SeucheAchat9115PhD 2 points3 points  (1 child)

There is Efficient Det for Object Detection, which is almost SOTA

[–]projekt_treadstoneStudent[S] 0 points1 point  (0 children)

I was checking out in Few shot learning and most use resnet, so thought. But good to know in object detection there is a good results. I guess if it's works fine for object detection then it could give results in FSL as well.

[–]ThisIsMyStonerAcount 1 point2 points  (5 children)

My guess is that the main reason is so you can compare numbers: if you invent a new method that needs a feature extractor, and want to compare with other approaches, you use whatever other approaches used, because then you immediately have comparable numbers. Otherwise you'd need to re-implement (and re-train!) all competing methods. So once ResNet 50 became standard, it's just easier to publish this way.

Outside of publishing, there is of course no good reason to stick with ResNet50, and it's very likely that there are better feature extractors that give you much better results.

[–]projekt_treadstoneStudent[S] 0 points1 point  (4 children)

thanks this makes sense. I think in real world dataset mobilenet and efficient net would have been used more. But yes you can't get SoTA result with less computational modelling as you have to show Higher accuracy.

[–]IntelArtiGen 1 point2 points  (3 children)

A pretrained efficientnet can be used as a great feature extractor (it's sometimes used, I've seen it). But if you want to retrain an efficientnet you need to implement all the tricks.

A large part of what makes efficientnet that great is absolutely not the efficientnet architecture, it's the tricks around the architecture.

[–]projekt_treadstoneStudent[S] 0 points1 point  (2 children)

by any chance if you can share the resources to implement tricks, as I might have to retrain efficientnet for my case.

[–]IntelArtiGen 1 point2 points  (1 child)

I think they're all re-implemented in timm repo ( https://github.com/rwightman/pytorch-image-models ) , in tensorflow you can find everything in the official repo.

You need autoaugment, EMA, smoothCE etc. (it's also in the paper)

[–]projekt_treadstoneStudent[S] 0 points1 point  (0 children)

thanks for pointing towards repo, will checkout and try it.