Skip to content

Commit a8c42a1

Browse files
asuleckinv-kkudrynski
authored andcommitted
[ConvNets/PyT] TorchHub improvements
1 parent 6194324 commit a8c42a1

File tree

6 files changed

+33
-30
lines changed

6 files changed

+33
-30
lines changed

PyTorch/Classification/ConvNets/image_classification/models/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
from .entrypoints import nvidia_efficientnet, nvidia_resneXt, nvidia_resnet50, nvidia_convnets_processing_utils
15+
from .entrypoints import nvidia_convnets_processing_utils, nvidia_efficientnet
1616
from .resnet import resnet50, resnext101_32x4d, se_resnext101_32x4d
1717
from .efficientnet import (
1818
efficientnet_b0,

PyTorch/Classification/ConvNets/image_classification/models/efficientnet.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -573,7 +573,7 @@ def _m(*args, **kwargs):
573573

574574
# }}}
575575

576-
_ce = lambda n: EntryPoint(n, architectures[n])
576+
_ce = lambda n: EntryPoint.create(n, architectures[n])
577577
efficientnet_b0 = _ce("efficientnet-b0")
578578
efficientnet_b4 = _ce("efficientnet-b4")
579579

PyTorch/Classification/ConvNets/image_classification/models/entrypoints.py

+1-24
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,6 @@
2727
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2828
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2929

30-
def nvidia_resnet50(pretrained=True, **kwargs):
31-
"""Constructs a ResNet50 model.
32-
For detailed information on model input and output, training recipies, inference and performance
33-
visit: github.com/NVIDIA/DeepLearningExamples and/or ngc.nvidia.com
34-
Args:
35-
pretrained (bool, True): If True, returns a model pretrained on IMAGENET dataset.
36-
"""
37-
38-
from . import resnet50
39-
40-
return resnet50(pretrained=pretrained)
41-
4230
def nvidia_efficientnet(type='efficient-b0', pretrained=True, **kwargs):
4331
"""Constructs a EfficientNet model.
4432
For detailed information on model input and output, training recipies, inference and performance
@@ -51,17 +39,6 @@ def nvidia_efficientnet(type='efficient-b0', pretrained=True, **kwargs):
5139

5240
return _ce(type)(pretrained=pretrained, **kwargs)
5341

54-
def nvidia_resneXt(pretrained=True, **kwargs):
55-
"""Constructs a ResNeXt model.
56-
For detailed information on model input and output, training recipies, inference and performance
57-
visit: github.com/NVIDIA/DeepLearningExamples and/or ngc.nvidia.com
58-
Args:
59-
pretrained (bool, True): If True, returns a model pretrained on IMAGENET dataset.
60-
"""
61-
62-
from . import resnext101_32x4d
63-
64-
return resnext101_32x4d(pretrained=pretrained)
6542

6643
def nvidia_convnets_processing_utils():
6744
import numpy as np
@@ -135,4 +112,4 @@ def get_imgnet_classes():
135112

136113
return imgnet_classes
137114

138-
return Processing()
115+
return Processing()

PyTorch/Classification/ConvNets/image_classification/models/model.py

+18-2
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,28 @@ class Model:
3939
checkpoint_url: Optional[str] = None
4040

4141

42+
def torchhub_docstring(name: str):
43+
return f"""Constructs a {name} model.
44+
For detailed information on model input and output, training recipies, inference and performance
45+
visit: github.com/NVIDIA/DeepLearningExamples and/or ngc.nvidia.com
46+
Args:
47+
pretrained (bool, True): If True, returns a model pretrained on IMAGENET dataset.
48+
"""
49+
4250
class EntryPoint:
51+
@staticmethod
52+
def create(name: str, model: Model):
53+
ep = EntryPoint(name, model)
54+
ep.__doc__ = torchhub_docstring(name)
55+
return ep
56+
4357
def __init__(self, name: str, model: Model):
4458
self.name = name
4559
self.model = model
4660

4761
def __call__(
4862
self,
49-
pretrained=False,
63+
pretrained=True,
5064
pretrained_from_file=None,
5165
state_dict_key_map_fn=None,
5266
**kwargs,
@@ -60,7 +74,9 @@ def __call__(
6074
if pretrained:
6175
assert self.model.checkpoint_url is not None
6276
state_dict = torch.hub.load_state_dict_from_url(
63-
self.model.checkpoint_url, map_location=torch.device("cpu"), progress=True
77+
self.model.checkpoint_url,
78+
map_location=torch.device("cpu"),
79+
progress=True,
6480
)
6581

6682
if pretrained_from_file is not None:

PyTorch/Classification/ConvNets/image_classification/models/resnet.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,7 @@ def no_remap(s):
450450
),
451451
}
452452

453-
_ce = lambda n: EntryPoint(n, __models[n])
453+
_ce = lambda n: EntryPoint.create(n, __models[n])
454454
resnet50 = _ce("resnet50")
455455
resnext101_32x4d = _ce("resnext101-32x4d")
456456
se_resnext101_32x4d = _ce("se-resnext101-32x4d")

hubconf.py

+11-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,17 @@
44
from PyTorch.Detection.SSD.ssd import nvidia_ssd, nvidia_ssd_processing_utils
55
sys.path.append(os.path.join(sys.path[0], 'PyTorch/Detection/SSD'))
66

7-
from PyTorch.Classification.ConvNets.image_classification.models import nvidia_efficientnet, nvidia_resneXt, nvidia_resnet50, nvidia_convnets_processing_utils
7+
from PyTorch.Classification.ConvNets.image_classification.models import resnet50 as nvidia_resnet50
8+
from PyTorch.Classification.ConvNets.image_classification.models import resnext101_32x4d as nvidia_resnext101_32x4d
9+
from PyTorch.Classification.ConvNets.image_classification.models import se_resnext101_32x4d as nvidia_se_resnext101_32x4d
10+
from PyTorch.Classification.ConvNets.image_classification.models import efficientnet_b0 as nvidia_efficientnet_b0
11+
from PyTorch.Classification.ConvNets.image_classification.models import efficientnet_b4 as nvidia_efficientnet_b4
12+
from PyTorch.Classification.ConvNets.image_classification.models import efficientnet_widese_b0 as nvidia_efficientnet_widese_b0
13+
from PyTorch.Classification.ConvNets.image_classification.models import efficientnet_widese_b4 as nvidia_efficientnet_widese_b4
14+
from PyTorch.Classification.ConvNets.image_classification.models import nvidia_convnets_processing_utils
15+
16+
from PyTorch.Classification.ConvNets.image_classification.models import resnext101_32x4d as nvidia_resneXt
17+
from PyTorch.Classification.ConvNets.image_classification.models import nvidia_efficientnet
818
sys.path.append(os.path.join(sys.path[0], 'PyTorch/Classification/ConvNets/image_classification'))
919

1020
from PyTorch.SpeechSynthesis.Tacotron2.tacotron2 import nvidia_tacotron2

0 commit comments

Comments
 (0)