Exemplo n.º 1
0
 def __init__(self, efficient_det):
     super(EfficientDet, self).__init__()
     self.heads = Config.heads
     self.head_conv = Config.head_conv[efficient_det]
     self.efficient_net = get_efficient_net(
         width_coefficient=Config.get_width_coefficient(efficient_det),
         depth_coefficient=Config.get_depth_coefficient(efficient_det),
         dropout_rate=Config.get_dropout_rate(efficient_det))
     self.bifpn = BiFPN(output_channels=Config.get_w_bifpn(efficient_det),
                        layers=Config.get_d_bifpn(efficient_det))
     self.transpose = TransposeLayer(
         out_channels=Config.get_w_bifpn(efficient_det))
     for head in self.heads:
         classes = self.heads[head]
         if self.head_conv > 0:
             fc = tf.keras.Sequential([
                 tf.keras.layers.Conv2D(filters=self.head_conv,
                                        kernel_size=(3, 3),
                                        strides=1,
                                        padding="same",
                                        use_bias=True),
                 tf.keras.layers.ReLU(),
                 tf.keras.layers.Conv2D(filters=classes,
                                        kernel_size=(1, 1),
                                        strides=1,
                                        padding="same",
                                        use_bias=True)
             ])
         else:
             fc = tf.keras.layers.Conv2D(filters=classes,
                                         kernel_size=(1, 1),
                                         strides=1,
                                         padding="same",
                                         use_bias=True)
         self.__setattr__(head, fc)
 def __init__(self):
     super(EfficientDet, self).__init__()
     self.backbone = get_efficient_net(
         width_coefficient=Config.get_width_coefficient(),
         depth_coefficient=Config.get_depth_coefficient(),
         dropout_rate=Config.get_dropout_rate())
     self.bifpn = BiFPN(output_channels=Config.get_w_bifpn(),
                        layers=Config.get_d_bifpn())
     self.prediction_net = BoxClassPredict(
         filters=Config.get_w_bifpn(),
         depth=Config.get_d_class(),
         num_classes=Config.num_classes,
         num_anchors=Config.num_anchor_per_pixel)