Skip to content

Commit a460ed1

Browse files
committedMay 26, 2021
Use 1x1 convolutions to improve BinaryAlexNet latency on LCE
1 parent 8a1dc7c commit a460ed1

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed
 

‎larq_zoo/literature/binary_alex_net.py

+8-7
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@ def conv_block(
4343
)(x)
4444
if pool:
4545
x = tf.keras.layers.MaxPool2D(pool_size=3, strides=2)(x)
46-
x = tf.keras.layers.BatchNormalization(scale=False, momentum=0.9)(x)
47-
return x
46+
return tf.keras.layers.BatchNormalization(scale=False, momentum=0.9)(x)
4847

4948
def dense_block(self, x: tf.Tensor, units: int) -> tf.Tensor:
50-
x = lq.layers.QuantDense(
49+
x = lq.layers.QuantConv2D(
5150
units,
51+
kernel_size=1,
5252
input_quantizer=self.input_quantizer,
5353
kernel_quantizer=self.kernel_quantizer,
5454
kernel_constraint=self.kernel_constraint,
@@ -75,10 +75,11 @@ def build(self) -> tf.keras.models.Model:
7575

7676
# Classifier
7777
if self.include_top:
78-
out = tf.keras.layers.Flatten()(out)
78+
out = tf.keras.layers.Reshape((1, 1, -1))(out)
7979
out = self.dense_block(out, units=4096)
8080
out = self.dense_block(out, units=4096)
8181
out = self.dense_block(out, self.num_classes)
82+
out = tf.keras.layers.Flatten()(out)
8283
out = tf.keras.layers.Activation("softmax", dtype="float32")(out)
8384

8485
model = tf.keras.models.Model(
@@ -91,9 +92,9 @@ def build(self) -> tf.keras.models.Model:
9192
if self.include_top:
9293
weights_path = utils.download_pretrained_model(
9394
model="binary_alexnet",
94-
version="v0.2.0",
95+
version="v0.3.0",
9596
file="binary_alexnet_weights.h5",
96-
file_hash="0f8d3f6c1073ef993e2e99a38f8e661e5efe385085b2a84b43a7f2af8500a3d3",
97+
file_hash="7fc065c47c5c1d92389e0bb988ce6df6a4fa09d803b866e2ba648069d6652d63",
9798
)
9899
else:
99100
weights_path = utils.download_pretrained_model(
@@ -122,7 +123,7 @@ def BinaryAlexNet(
122123
Optionally loads weights pre-trained on ImageNet.
123124
124125
```netron
125-
binary_alexnet-v0.2.0/binary_alexnet.json
126+
binary_alexnet-v0.3.0/binary_alexnet.json
126127
```
127128
```summary
128129
literature.BinaryAlexNet

0 commit comments

Comments
 (0)