(self,
in_filters,
out_filters,
reps,
strides=1,
padding=0,
start_with_relu=True,
grow_first=True)
| 31 | class Block(layer.Layer): |
| 32 | |
| 33 | def __init__(self, |
| 34 | in_filters, |
| 35 | out_filters, |
| 36 | reps, |
| 37 | strides=1, |
| 38 | padding=0, |
| 39 | start_with_relu=True, |
| 40 | grow_first=True): |
| 41 | super(Block, self).__init__() |
| 42 | |
| 43 | if out_filters != in_filters or strides != 1: |
| 44 | self.skip = layer.Conv2d(in_filters, |
| 45 | out_filters, |
| 46 | 1, |
| 47 | stride=strides, |
| 48 | padding=padding, |
| 49 | bias=False) |
| 50 | self.skipbn = layer.BatchNorm2d(out_filters) |
| 51 | else: |
| 52 | self.skip = None |
| 53 | |
| 54 | self.layers = [] |
| 55 | |
| 56 | filters = in_filters |
| 57 | if grow_first: |
| 58 | self.layers.append(layer.ReLU()) |
| 59 | self.layers.append( |
| 60 | layer.SeparableConv2d(in_filters, |
| 61 | out_filters, |
| 62 | 3, |
| 63 | stride=1, |
| 64 | padding=1, |
| 65 | bias=False)) |
| 66 | self.layers.append(layer.BatchNorm2d(out_filters)) |
| 67 | filters = out_filters |
| 68 | |
| 69 | for i in range(reps - 1): |
| 70 | self.layers.append(layer.ReLU()) |
| 71 | self.layers.append( |
| 72 | layer.SeparableConv2d(filters, |
| 73 | filters, |
| 74 | 3, |
| 75 | stride=1, |
| 76 | padding=1, |
| 77 | bias=False)) |
| 78 | self.layers.append(layer.BatchNorm2d(filters)) |
| 79 | |
| 80 | if not grow_first: |
| 81 | self.layers.append(layer.ReLU()) |
| 82 | self.layers.append( |
| 83 | layer.SeparableConv2d(in_filters, |
| 84 | out_filters, |
| 85 | 3, |
| 86 | stride=1, |
| 87 | padding=1, |
| 88 | bias=False)) |
| 89 | self.layers.append(layer.BatchNorm2d(out_filters)) |
| 90 |
no test coverage detected