У меня есть две установки - одна занимает ок. 10 минут на прогон, другой все еще идет через час:
10 m:
import pretrainedmodels
def resnext50_32x4d(pretrained=False):
pretrained = 'imagenet' if pretrained else None
model = pretrainedmodels.se_resnext50_32x4d(pretrained=pretrained)
return nn.Sequential(*list(model.children()))
learn = cnn_learner(data, resnext50_32x4d, pretrained=True, cut=-2, split_on=lambda m: (m[0][3], m[1]),metrics=[accuracy, error_rate])
Не заканчивая:
import torchvision.models as models
def get_model(pretrained=True, model_name = 'resnext50_32x4d', **kwargs ):
arch = models.resnext50_32x4d(pretrained, **kwargs )
return arch
learn = Learner(data, get_model(), metrics=[accuracy, error_rate])
Все это скопировано и взломано из кода других людей, поэтому есть части, которые я не понимаю. Но больше всего сбивает с толку то, почему один может быть намного быстрее другого. Я хотел бы использовать второй вариант, потому что мне его легче понять, и я могу просто поменять предварительно обученную модель, чтобы протестировать другие.
learn.fit_one_cycle(4)
- person ashley   schedule 10.07.2019pretrainedmodels
модуль? Я полагаю, что модели отличаются друг от друга. Что произойдет, если вы подключите одну и ту же модель в обоих примерах (скажем, изtorchvision
) - person Szymon Maszke   schedule 10.07.2019