Browse Source

added the "InceptionV3HD" by reducing strides at 2 stages in the CNN

Dimitri Korsch 3 năm trước cách đây
mục cha
commit
247bb7d446

+ 1 - 0
cvmodelz/models/factory.py

@@ -45,6 +45,7 @@ class ModelFactory(abc.ABC):
 			pretrained.ResNet152,
 
 			pretrained.InceptionV3,
+			pretrained.InceptionV3HD,
 		),
 	)
 

+ 2 - 0
cvmodelz/models/pretrained/__init__.py

@@ -1,5 +1,6 @@
 from cvmodelz.models.pretrained.base import PretrainedModelMixin
 from cvmodelz.models.pretrained.inception import InceptionV3
+from cvmodelz.models.pretrained.inception import InceptionV3HD
 from cvmodelz.models.pretrained.resnet import ResNet101
 from cvmodelz.models.pretrained.resnet import ResNet152
 from cvmodelz.models.pretrained.resnet import ResNet35
@@ -20,4 +21,5 @@ __all__ = [
 	"ResNet152",
 
 	"InceptionV3",
+	"InceptionV3HD",
 ]

+ 2 - 0
cvmodelz/models/pretrained/inception/__init__.py

@@ -1,6 +1,8 @@
 from cvmodelz.models.pretrained.inception.inception_v3 import InceptionV3
+from cvmodelz.models.pretrained.inception.inception_v3_hd import InceptionV3HD
 
 
 __all__ = [
 	"InceptionV3",
+	"InceptionV3HD",
 ]

+ 23 - 0
cvmodelz/models/pretrained/inception/inception_v3_hd.py

@@ -0,0 +1,23 @@
+from cvmodelz.models.pretrained.inception.inception_v3 import InceptionV3
+
+class InceptionV3HD(InceptionV3):
+	def init_model_info(self):
+		super().init_model_info()
+		self.meta.name +=  "HD"
+
+	def init_extra_layers(self, n_classes) -> None:
+		super().init_extra_layers(n_classes)
+
+		self.mixed03.conv3x3.conv.stride = (1, 1)
+		self.mixed03.conv3x3.conv.pad = (1, 1)
+		self.mixed03.conv3x3_3.conv.stride = (1, 1)
+		self.mixed03.conv3x3_3.conv.pad = (1, 1)
+		self.mixed03.pool.keywords["stride"] = 1
+		self.mixed03.pool.keywords["pad"] = 1
+
+		self.mixed08.conv3x3_2.conv.stride = (1, 1)
+		self.mixed08.conv3x3_2.conv.pad = (1, 1)
+		self.mixed08.conv7x7_4.conv.stride = (1, 1)
+		self.mixed08.conv7x7_4.conv.pad = (1, 1)
+		self.mixed08.pool.keywords["stride"] = 1
+		self.mixed08.pool.keywords["pad"] = 1