Я передаю модель alexnet из репозитория pretrainedmodels в функцию fastai create_cnn
, используя головку alexnet по умолчанию, а не адаптивный пул.
Кто-нибудь знает, почему сводная информация неверна, хотя информация о модели верна и модель, кажется, работает правильно?(Я использую набор данных породы собак / кошек, который имеет 37 классов).Например:
import pretrainedmodels
data = ImageDataBunch.from_name_re(path_img, fnames, pat, ds_tfms=get_transforms(), size=224, bs=64
).normalize(imagenet_stats)
arch = pretrainedmodels.__dict__['alexnet'](num_classes=1000,pretrained='imagenet')
arch.last_linear.out_features = data.c
model = nn.Sequential(OrderedDict([
('features', arch._features),
('classifier', nn.Sequential(Flatten(), *children(arch)[1:]))
]))
learn = create_cnn(data, lambda *args : model, metrics=error_rate, custom_head=net.classifier)
# model says 37 classes in last linear
print(learn.model)
# summary incorrectly says 1000 classes in last linear
print(learn.summary())