示例#1
0
 def _get_imagenet_weights_path(self):
     if (not self.kernel_quantizer == "ste_sign" and
         (self.input_quantizer in [
             "ste_sign", "ste_unsign", "ste_shift_sign", "ste_shift_unsign"
         ])):
         raise ValueError(
             f"{self.model_name} only has ImageNet weights for the BNN variant"
         )
     if self.include_top:
         weights_path = utils.download_pretrained_model(
             model="r2b",
             version="v0.1.0",
             file="r2b_weights.h5",
             file_hash=
             "e8fd16ca1ab9810ac3835f24f5c62758a57bc32a615f73aaa50d382d2b9617e1",
         )
     else:
         weights_path = utils.download_pretrained_model(
             model="r2b",
             version="v0.1.0",
             file="r2b_weights_notop.h5",
             file_hash=
             "4ec47abf1a4da5c65f4908076257e8d5c812673891089a88c9d9e84e949d1dab",
         )
     return weights_path
示例#2
0
文件: quicknet.py 项目: lgeiger/zoo
 def build(self) -> tf.keras.models.Model:
     model = super().build()
     # Load weights.
     if self.weights == "imagenet":
         # Download appropriate file
         if self.include_top:
             weights_path = utils.download_pretrained_model(
                 model="quicknet_large",
                 version="v0.2.0",
                 file="quicknet_large_weights.h5",
                 file_hash=
                 "2d9ebbf8ba0500552e4dd243c3e52fd8291f965ef6a0e1dbba13cc72bf6eee8b",
             )
         else:
             weights_path = utils.download_pretrained_model(
                 model="quicknet_large",
                 version="v0.2.0",
                 file="quicknet_large_weights_notop.h5",
                 file_hash=
                 "067655ef8a1a1e99ef1c71fa775c09aca44bdfad0b9b71538b4ec500c3beee4f",
             )
         model.load_weights(weights_path)
     elif self.weights is not None:
         model.load_weights(self.weights)
     return model
示例#3
0
文件: quicknet.py 项目: lgeiger/zoo
 def build(self) -> tf.keras.models.Model:
     model = super().build()
     # Load weights.
     if self.weights == "imagenet":
         # Download appropriate file
         if self.include_top:
             weights_path = utils.download_pretrained_model(
                 model="quicknet_xl",
                 version="v0.1.0",
                 file="quicknet_xl_weights.h5",
                 file_hash=
                 "a85eea1204fa9a8401f922f94531858493e3518e3374347978ed7ba615410498",
             )
         else:
             weights_path = utils.download_pretrained_model(
                 model="quicknet_xl",
                 version="v0.1.0",
                 file="quicknet_xl_weights_notop.h5",
                 file_hash=
                 "b97074d6618acde4201d1f8676d32272d27743ddfe27c6c97e4516511ebb5008",
             )
         model.load_weights(weights_path)
     elif self.weights is not None:
         model.load_weights(self.weights)
     return model
示例#4
0
文件: quicknet.py 项目: lgeiger/zoo
    def build(self) -> tf.keras.models.Model:
        model = super().build()

        # Load weights.
        if self.weights == "imagenet":
            # Download appropriate file
            if self.include_top:
                weights_path = utils.download_pretrained_model(
                    model="quicknet",
                    version="v0.2.0",
                    file="quicknet_weights.h5",
                    file_hash=
                    "6a765f120ba7b62a7740e842c4f462eb7ba3dd65eb46b4694c5bc8169618fae7",
                )
            else:
                weights_path = utils.download_pretrained_model(
                    model="quicknet",
                    version="v0.2.0",
                    file="quicknet_weights_notop.h5",
                    file_hash=
                    "5bf2fc450fb8cc322b33a16410bf88fed09d05c221550c2d5805a04985383ac2",
                )
            model.load_weights(weights_path)
        elif self.weights is not None:
            model.load_weights(self.weights)
        return model
示例#5
0
    def build(self) -> tf.keras.models.Model:
        # Layer 1
        out = tf.keras.layers.Conv2D(
            self.filters,
            (7, 7),
            strides=2,
            kernel_initializer=self.kernel_initializer,
            padding="same",
            use_bias=False,
        )(self.image_input)
        out = tf.keras.layers.BatchNormalization(momentum=0.8)(out)
        out = tf.keras.layers.MaxPool2D((3, 3), strides=2, padding="same")(out)

        # Layer 2
        out = self.residual_block(out, filters=self.filters)

        # Layer 3 - 5
        for _ in range(3):
            out = self.residual_block(out)

        # Layer 6 - 17
        for _ in range(3):
            out = self.residual_block(out, double_filters=True)
            for _ in range(3):
                out = self.residual_block(out)

        # Layer 18
        if self.include_top:
            out = utils.global_pool(out)
            out = tf.keras.layers.Dense(self.num_classes)(out)
            out = tf.keras.layers.Activation("softmax", dtype="float32")(out)

        model = tf.keras.Model(inputs=self.image_input,
                               outputs=out,
                               name="birealnet18")

        # Load weights.
        if self.weights == "imagenet":
            # Download appropriate file
            if self.include_top:
                weights_path = utils.download_pretrained_model(
                    model="birealnet",
                    version="v0.3.0",
                    file="birealnet_weights.h5",
                    file_hash=
                    "6e6efac1584fcd60dd024198c87f42eb53b5ec719a5ca1f527e1fe7e8b997117",
                )
            else:
                weights_path = utils.download_pretrained_model(
                    model="birealnet",
                    version="v0.3.0",
                    file="birealnet_weights_notop.h5",
                    file_hash=
                    "5148b61c0c2a1094bdef811f68bf4957d5ba5f83ad26437b7a4a6855441ab46b",
                )
            model.load_weights(weights_path)
        elif self.weights is not None:
            model.load_weights(self.weights)
        return model
示例#6
0
    def build(self) -> tf.keras.models.Model:
        # Feature extractor
        out = self.conv_block(
            self.image_input,
            features=64,
            kernel_size=11,
            strides=4,
            pool=True,
            first_layer=True,
        )
        out = self.conv_block(out, features=192, kernel_size=5, pool=True)
        out = self.conv_block(out, features=384, kernel_size=3)
        out = self.conv_block(out, features=384, kernel_size=3)
        out = self.conv_block(
            out, features=256, kernel_size=3, pool=True, no_inflation=True
        )

        # Classifier
        if self.include_top:
            try:
                channels = out.shape[-1] * out.shape[-2] * out.shape[-3]
            except TypeError:
                channels = -1
            out = tf.keras.layers.Reshape((1, 1, channels))(out)
            out = self.dense_block(out, units=4096)
            out = self.dense_block(out, units=4096)
            out = self.dense_block(out, self.num_classes)
            out = tf.keras.layers.Flatten()(out)
            out = tf.keras.layers.Activation("softmax", dtype="float32")(out)

        model = tf.keras.models.Model(
            inputs=self.image_input, outputs=out, name="binary_alexnet"
        )

        # Load weights.
        if self.weights == "imagenet":
            # Download appropriate file
            if self.include_top:
                weights_path = utils.download_pretrained_model(
                    model="binary_alexnet",
                    version="v0.3.0",
                    file="binary_alexnet_weights.h5",
                    file_hash="7fc065c47c5c1d92389e0bb988ce6df6a4fa09d803b866e2ba648069d6652d63",
                )
            else:
                weights_path = utils.download_pretrained_model(
                    model="binary_alexnet",
                    version="v0.2.1",
                    file="binary_alexnet_weights_notop.h5",
                    file_hash="1d41b33ff39cd28d13679392641bf7711174a96d182417f91df45d0548f5bb47",
                )
            model.load_weights(weights_path)
        elif self.weights is not None:
            model.load_weights(self.weights)

        return model
示例#7
0
    def build(self) -> tf.keras.models.Model:
        # Feature extractor
        out = self.conv_block(
            self.image_input,
            features=64,
            kernel_size=11,
            strides=4,
            pool=True,
            first_layer=True,
        )
        out = self.conv_block(out, features=192, kernel_size=5, pool=True)
        out = self.conv_block(out, features=384, kernel_size=3)
        out = self.conv_block(out, features=384, kernel_size=3)
        out = self.conv_block(
            out, features=256, kernel_size=3, pool=True, no_inflation=True
        )

        # Classifier
        if self.include_top:
            out = tf.keras.layers.Flatten()(out)
            out = self.dense_block(out, units=4096)
            out = self.dense_block(out, units=4096)
            out = self.dense_block(out, self.num_classes)
            out = tf.keras.layers.Activation("softmax", dtype="float32")(out)

        model = tf.keras.models.Model(
            inputs=self.image_input, outputs=out, name="binary_alexnet"
        )

        # Load weights.
        if self.weights == "imagenet":
            # Download appropriate file
            if self.include_top:
                weights_path = utils.download_pretrained_model(
                    model="binary_alexnet",
                    version="v0.2.0",
                    file="binary_alexnet_weights.h5",
                    file_hash="0f8d3f6c1073ef993e2e99a38f8e661e5efe385085b2a84b43a7f2af8500a3d3",
                )
            else:
                weights_path = utils.download_pretrained_model(
                    model="binary_alexnet",
                    version="v0.2.1",
                    file="binary_alexnet_weights_notop.h5",
                    file_hash="1d41b33ff39cd28d13679392641bf7711174a96d182417f91df45d0548f5bb47",
                )
            model.load_weights(weights_path)
        elif self.weights is not None:
            model.load_weights(self.weights)

        return model
示例#8
0
文件: dorefanet.py 项目: lgeiger/zoo
    def build(self) -> tf.keras.models.Model:
        out = tf.keras.layers.Conv2D(96,
                                     kernel_size=12,
                                     strides=4,
                                     padding="valid",
                                     use_bias=True)(self.image_input)
        out = self.conv_block(out, filters=256, kernel_size=5, pool=True)
        out = self.conv_block(out, filters=384, kernel_size=3, pool=True)
        out = self.conv_block(out, filters=384, kernel_size=3)
        out = self.conv_block(out,
                              filters=256,
                              kernel_size=3,
                              pool_padding="valid",
                              pool=True)

        if self.include_top:
            out = tf.keras.layers.Flatten()(out)
            out = self.fully_connected_block(out, units=4096)
            out = self.fully_connected_block(out, units=4096)
            out = tf.keras.layers.Activation("clip_by_value_activation")(out)
            out = tf.keras.layers.Dense(self.num_classes, use_bias=True)(out)
            out = tf.keras.layers.Activation("softmax", dtype="float32")(out)

        model = tf.keras.Model(inputs=self.image_input,
                               outputs=out,
                               name="dorefanet")

        # Load weights.
        if self.weights == "imagenet":
            # Download appropriate file
            if self.include_top:
                weights_path = utils.download_pretrained_model(
                    model="dorefanet",
                    version="v0.1.0",
                    file="dorefanet_weights.h5",
                    file_hash=
                    "645d7839d574faa3eeeca28f3115773d75da3ab67ff6876b4de12d10245ecf6a",
                )
            else:
                weights_path = utils.download_pretrained_model(
                    model="dorefanet",
                    version="v0.1.0",
                    file="dorefanet_weights_notop.h5",
                    file_hash=
                    "679368128e19a2a181bfe06ca3a3dec368b1fd8011d5f42647fbbf5a7f36d45f",
                )
            model.load_weights(weights_path)
        elif self.weights is not None:
            model.load_weights(self.weights)
        return model
示例#9
0
 def imagenet_weights_path(self):
     return utils.download_pretrained_model(
         model="binary_densenet",
         version="v0.1.0",
         file="binary_densenet_37_dilated_weights.h5",
         file_hash="15c1bcd79b8dc22971382fbf79acf364a3f51049d0e584a11533e6fdbb7363d3",
     )
示例#10
0
 def imagenet_no_top_weights_path(self):
     return utils.download_pretrained_model(
         model="binary_densenet",
         version="v0.1.0",
         file="binary_densenet_45_weights_notop.h5",
         file_hash="e72d5cc6b0afe4612f8be7b1f9bb48a53ba2c8468b57bf1266d2900c99fd2adf",
     )
示例#11
0
 def imagenet_weights_path(self):
     return utils.download_pretrained_model(
         model="binary_densenet",
         version="v0.1.0",
         file="binary_densenet_37_weights.h5",
         file_hash="8056a5d52c3ed86a934893987d09a06f59a5166aa9bddcaedb050f111d0a7d76",
     )
示例#12
0
 def imagenet_weights_path(self):
     return utils.download_pretrained_model(
         model="meliusnet22",
         version="v0.1.0",
         file="meliusnet22_weights.h5",
         file_hash="c1ba85e8389ae326009665ec13331e49fc3df4d0f925fa8553e224f7362c18ed",
     )
示例#13
0
 def imagenet_no_top_weights_path(self):
     return utils.download_pretrained_model(
         model="binary_densenet",
         version="v0.1.1",
         file="binary_densenet_37_dilated_weights_notop.h5",
         file_hash="8b31fbfdc8de08a46c6adcda1ced48ace0a2ff0ce45a05c72b2acc27901dd88b",
     )
示例#14
0
 def imagenet_no_top_weights_path(self):
     return utils.download_pretrained_model(
         model="binary_densenet",
         version="v0.1.0",
         file="binary_densenet_28_weights_notop.h5",
         file_hash="a376df1e41772c4427edd1856072b934a89bf293bf911438bf6f751a9b2a28f5",
     )
示例#15
0
 def imagenet_weights_path(self):
     return utils.download_pretrained_model(
         model="binary_densenet",
         version="v0.1.0",
         file="binary_densenet_28_weights.h5",
         file_hash="21fe3ca03eed244df9c41a2219876fcf03e73800932ec96a3e2a76af4747ac53",
     )
示例#16
0
 def imagenet_weights_path(self):
     return utils.download_pretrained_model(
         model="binary_densenet",
         version="v0.1.0",
         file="binary_densenet_45_weights.h5",
         file_hash="d00a0d26fbd2dba1bfba8c0306c770f3aeea5c370e99f963bb239bd916f72c37",
     )
示例#17
0
 def imagenet_no_top_weights_path(self):
     return utils.download_pretrained_model(
         model="binary_densenet",
         version="v0.1.0",
         file="binary_densenet_37_weights_notop.h5",
         file_hash="4e12bca9fd27580a5b833241c4eb35d6cc332878c406048e6ca8dbbc78d59175",
     )
示例#18
0
 def imagenet_no_top_weights_path(self):
     return utils.download_pretrained_model(
         model="meliusnet22",
         version="v0.1.1",
         file="meliusnet22_weights_notop.h5",
         file_hash="abfc5c50049d72a14e44df0c1cb73896ece2a1ab4bf9bb48fede6cc2f5e0b58f",
     )
示例#19
0
 def imagenet_no_top_weights_path(self):
     return utils.download_pretrained_model(
         model="quicknet_xl",
         version="v0.1.1",
         file="quicknet_xl_weights_notop.h5",
         file_hash=
         "ad5cbfa333b0aabde75dc524c9ce4a5ae096061da0e2dcf362ec6e587a83a511",
     )
示例#20
0
 def imagenet_weights_path(self):
     return utils.download_pretrained_model(
         model="quicknet_xl",
         version="v0.1.1",
         file="quicknet_xl_weights.h5",
         file_hash=
         "19a41e753dbd4fbc3cbdaecd3627fb536ef55d64702996aae3875a8de3cf8073",
     )
示例#21
0
 def imagenet_no_top_weights_path(self):
     return utils.download_pretrained_model(
         model="quicknet_large",
         version="v0.2.1",
         file="quicknet_large_weights_notop.h5",
         file_hash=
         "b65d59dd2d5af63d019997b05faff9e003510e2512aa973ee05eb1b82b8792a9",
     )
示例#22
0
 def imagenet_weights_path(self):
     return utils.download_pretrained_model(
         model="quicknet_large",
         version="v0.2.1",
         file="quicknet_large_weights.h5",
         file_hash=
         "6bf778e243466c678d6da0e3a91c77deec4832460046fca9e6ac8ae97a41299c",
     )
示例#23
0
 def imagenet_no_top_weights_path(self):
     return utils.download_pretrained_model(
         model="quicknet",
         version="v0.2.1",
         file="quicknet_weights_notop.h5",
         file_hash=
         "359eed6dae43525eddf520ea87ec9b54750ee0e022647775d115a38856be396f",
     )
示例#24
0
文件: quicknet.py 项目: larq/zoo
 def imagenet_no_top_weights_path(self):
     return utils.download_pretrained_model(
         model="quicknet",
         version="v1.0",
         file="quicknet_weights_notop.h5",
         file_hash=
         "204414e438373f14f6056a1c098249f505a87dd238e18d3a47a9bd8b66227881",
     )
示例#25
0
文件: quicknet.py 项目: larq/zoo
 def imagenet_weights_path(self):
     return utils.download_pretrained_model(
         model="quicknet",
         version="v1.0",
         file="quicknet_weights.h5",
         file_hash=
         "8aba9e4e5f8d342faef04a0b2ae8e562da57dbb7d15162e8b3e091c951ba756c",
     )
示例#26
0
文件: quicknet.py 项目: larq/zoo
 def imagenet_weights_path(self):
     return utils.download_pretrained_model(
         model="quicknet",
         version="v1.0",
         file="quicknet_large_weights.h5",
         file_hash=
         "c5158e8a59147b31370becd937825f4db8a5cdf308314874f678f596629be45c",
     )
示例#27
0
文件: quicknet.py 项目: larq/zoo
 def imagenet_no_top_weights_path(self):
     return utils.download_pretrained_model(
         model="quicknet",
         version="v1.0",
         file="quicknet_small_weights_notop.h5",
         file_hash=
         "be8ba657155846be355c5580d1ea56eaf8282616de065ffc39257202f9f164ea",
     )
示例#28
0
文件: quicknet.py 项目: larq/zoo
 def imagenet_weights_path(self):
     return utils.download_pretrained_model(
         model="quicknet",
         version="v1.0",
         file="quicknet_small_weights.h5",
         file_hash=
         "1ac3b07df7f5a911dd0b49febb2486428ddf1ca130297c403815dfae5a1c71a2",
     )
示例#29
0
文件: quicknet.py 项目: larq/zoo
 def imagenet_no_top_weights_path(self):
     return utils.download_pretrained_model(
         model="quicknet",
         version="v1.0",
         file="quicknet_large_weights_notop.h5",
         file_hash=
         "adcf154a2a8007e81bd6af77c035ffbf54cd6413b89a0ba294e23e76a82a1b78",
     )
示例#30
0
 def imagenet_weights_path(self):
     return utils.download_pretrained_model(
         model="quicknet",
         version="v0.2.1",
         file="quicknet_weights.h5",
         file_hash=
         "7b4fa94f5241c7aad3412ca42b5db6517dbc4847cff710cb82be10c2f83bc0be",
     )