def from_pretrained(cls, model_name, num_classes, dropout_rate=0.0): model = cls.from_name(model_name, num_classes=num_classes, dropout_rate=dropout_rate) print(model._global_params.dropout_rate) load_pretrained_weights(model, model_name, False) return model
def from_pretrained(cls, model_name, num_classes=1000): model = EfficientNet.from_name( model_name, override_params={'num_classes': num_classes}) load_pretrained_weights(model, model_name, load_fc=(num_classes == 1000)) return model
def from_pretrained(cls, model_name, advprop=False, num_classes=1000, in_channels=3): model = cls.from_name(model_name, override_params={'num_classes': num_classes}) load_pretrained_weights(model, model_name, load_fc=(num_classes == 1000), advprop=advprop) if in_channels != 3: Conv2d = get_same_padding_conv2d(image_size=model._global_params.image_size) out_channels = round_filters(32, model._global_params) model._conv_stem = Conv2d(in_channels, out_channels, kernel_size=3, stride=2, bias=False) return model
def from_pretrained(cls, model_name, advprop=False, num_classes=2, in_channels=3): model = cls.from_name(model_name, override_params={'num_classes': num_classes}) load_pretrained_weights(model, model_name, load_fc=(num_classes == 1000), advprop=advprop) model._change_in_channels(in_channels) return model
import torch
def from_pretrained(cls, model_name, override_params=None, **kways): model = EfficientNet_encoder.from_name(model_name, override_params, **kways) load_pretrained_weights(model, model_name, load_fc=False) return model
def __init__(self, model_name='efficientnet-b0'): blocks_args, global_params = get_model_params(model_name, override_params={}) super().__init__(blocks_args, global_params) load_pretrained_weights(self, model_name=model_name, load_fc=True) self.model_name = model_name