@@ -31,17 +31,61 @@ def load_pre(pre, f, fn):
3131 if pre : load_model (m , f'{ path } /weights/{ fn } .pth' )
3232 return m
3333
34- def inception_4 (pre ):
35- return children (load_pre (pre , InceptionV4 , 'inceptionv4-97ef9c30' ))[0 ]
34+ def _fastai_model (name , paper_title , paper_href ):
35+ def add_docs_wrapper (f ):
36+ f .__doc__ = f"""{ name } model from
37+ `"{ paper_title } " <{ paper_href } >`_
38+
39+ Args:
40+ pre (bool): If True, returns a model pre-trained on ImageNet
41+ """
42+ return f
43+ return add_docs_wrapper
44+
45+ @_fastai_model ('Inception 4' , 'Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning' ,
46+ 'https://arxiv.org/pdf/1602.07261.pdf' )
47+ def inception_4 (pre ): return children (load_pre (pre , InceptionV4 , 'inceptionv4-97ef9c30' ))[0 ]
48+
49+ @_fastai_model ('Inception 4' , 'Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning' ,
50+ 'https://arxiv.org/pdf/1602.07261.pdf' )
3651def inceptionresnet_2 (pre ): return load_pre (pre , InceptionResnetV2 , 'inceptionresnetv2-d579a627' )
52+
53+ @_fastai_model ('ResNeXt 50' , 'Aggregated Residual Transformations for Deep Neural Networks' ,
54+ 'https://arxiv.org/abs/1611.05431' )
3755def resnext50 (pre ): return load_pre (pre , resnext_50_32x4d , 'resnext_50_32x4d' )
56+
57+ @_fastai_model ('ResNeXt 101_32' , 'Aggregated Residual Transformations for Deep Neural Networks' ,
58+ 'https://arxiv.org/abs/1611.05431' )
3859def resnext101 (pre ): return load_pre (pre , resnext_101_32x4d , 'resnext_101_32x4d' )
60+
61+ @_fastai_model ('ResNeXt 101_64' , 'Aggregated Residual Transformations for Deep Neural Networks' ,
62+ 'https://arxiv.org/abs/1611.05431' )
3963def resnext101_64 (pre ): return load_pre (pre , resnext_101_64x4d , 'resnext_101_64x4d' )
64+
65+ @_fastai_model ('Inception 4' , 'Wide Residual Networks' ,
66+ 'https://arxiv.org/pdf/1605.07146.pdf' )
4067def wrn (pre ): return load_pre (pre , wrn_50_2f , 'wrn_50_2f' )
68+
69+ @_fastai_model ('Densenet-121' , 'Densely Connected Convolutional Networks' ,
70+ 'https://arxiv.org/pdf/1608.06993.pdf' )
4171def dn121 (pre ): return children (densenet121 (pre ))[0 ]
72+
73+ @_fastai_model ('Densenet-169' , 'Densely Connected Convolutional Networks' ,
74+ 'https://arxiv.org/pdf/1608.06993.pdf' )
4275def dn161 (pre ): return children (densenet161 (pre ))[0 ]
76+
77+ @_fastai_model ('Densenet-161' , 'Densely Connected Convolutional Networks' ,
78+ 'https://arxiv.org/pdf/1608.06993.pdf' )
4379def dn169 (pre ): return children (densenet169 (pre ))[0 ]
80+
81+ @_fastai_model ('Densenet-201' , 'Densely Connected Convolutional Networks' ,
82+ 'https://arxiv.org/pdf/1608.06993.pdf' )
4483def dn201 (pre ): return children (densenet201 (pre ))[0 ]
84+
85+ @_fastai_model ('Vgg-16 with batch norm added' , 'Very Deep Convolutional Networks for Large-Scale Image Recognition' ,
86+ 'https://arxiv.org/pdf/1409.1556.pdf' )
4587def vgg16 (pre ): return children (vgg16_bn (pre ))[0 ]
46- def vgg19 (pre ): return children (vgg19_bn (pre ))[0 ]
4788
89+ @_fastai_model ('Vgg-19 with batch norm added' , 'Very Deep Convolutional Networks for Large-Scale Image Recognition' ,
90+ 'https://arxiv.org/pdf/1409.1556.pdf' )
91+ def vgg19 (pre ): return children (vgg19_bn (pre ))[0 ]
0 commit comments