resnet pyramid
This commit is contained in:
+42
-27
@@ -131,9 +131,10 @@ class ResNetTypeI(tf.keras.Model):
|
||||
super(ResNetTypeI, self).__init__()
|
||||
self.reversed = reversed
|
||||
self.labels = labels
|
||||
self.layer_params = layer_params
|
||||
|
||||
if not reversed:
|
||||
self.conv1 = tf.keras.layers.Conv2D(filters=32,
|
||||
self.conv1 = tf.keras.layers.Conv2D(filters=32 if len(layer_params) > 1 else features,
|
||||
kernel_size=(7, 7),
|
||||
strides=2,
|
||||
padding="same")
|
||||
@@ -144,31 +145,36 @@ class ResNetTypeI(tf.keras.Model):
|
||||
else:
|
||||
self.conv1 = tf.keras.layers.Conv2DTranspose(filters=3 if labels is None else labels,
|
||||
kernel_size=(7, 7),
|
||||
strides=2,
|
||||
strides=2 if len(layer_params) > 1 else 1,
|
||||
padding="same")
|
||||
self.bn1 = tf.keras.layers.BatchNormalization()
|
||||
self.pool1 = tf.keras.layers.UpSampling2D()
|
||||
|
||||
self.layer1 = make_basic_block_layer(filter_num=32,
|
||||
self.layer1 = make_basic_block_layer(filter_num=32 if len(layer_params) > 1 else (features if not is_cvae else features*2),
|
||||
blocks=layer_params[0],
|
||||
stride=1 if not reversed else 2,
|
||||
upsample=reversed)
|
||||
self.layer2 = make_basic_block_layer(filter_num=32,
|
||||
blocks=layer_params[1],
|
||||
stride=2,
|
||||
upsample=reversed)
|
||||
self.layer3 = make_basic_block_layer(filter_num=32,
|
||||
blocks=layer_params[2],
|
||||
stride=2,
|
||||
upsample=reversed)
|
||||
self.layer4 = make_basic_block_layer(filter_num=64,
|
||||
blocks=layer_params[3],
|
||||
stride=2,
|
||||
upsample=reversed)
|
||||
self.layer5 = make_basic_block_layer(filter_num=features if not is_cvae else features*2,
|
||||
blocks=layer_params[4],
|
||||
stride=2 if not reversed else 1,
|
||||
upsample=reversed)
|
||||
if len(layer_params) >= 2:
|
||||
self.layer2 = make_basic_block_layer(filter_num=32,
|
||||
blocks=layer_params[1],
|
||||
stride=2,
|
||||
upsample=reversed)
|
||||
if len(layer_params) >= 3:
|
||||
self.layer3 = make_basic_block_layer(filter_num=32,
|
||||
blocks=layer_params[2],
|
||||
stride=2,
|
||||
upsample=reversed)
|
||||
if len(layer_params) >= 4:
|
||||
self.layer4 = make_basic_block_layer(filter_num=64,
|
||||
blocks=layer_params[3],
|
||||
stride=2,
|
||||
upsample=reversed)
|
||||
|
||||
if len(layer_params) >= 5:
|
||||
self.layer5 = make_basic_block_layer(filter_num=features if not is_cvae else features*2,
|
||||
blocks=layer_params[4],
|
||||
stride=2 if not reversed else 1,
|
||||
upsample=reversed)
|
||||
|
||||
def call(self, inputs, training=None, mask=None):
|
||||
if not self.reversed:
|
||||
@@ -177,15 +183,24 @@ class ResNetTypeI(tf.keras.Model):
|
||||
x = tf.nn.relu(x)
|
||||
x = self.pool1(x)
|
||||
x = self.layer1(x, training=training)
|
||||
x = self.layer2(x, training=training)
|
||||
x = self.layer3(x, training=training)
|
||||
x = self.layer4(x, training=training)
|
||||
x = self.layer5(x, training=training)
|
||||
if len(self.layer_params) >= 2:
|
||||
x = self.layer2(x, training=training)
|
||||
if len(self.layer_params) >= 3:
|
||||
x = self.layer3(x, training=training)
|
||||
if len(self.layer_params) >= 4:
|
||||
x = self.layer4(x, training=training)
|
||||
if len(self.layer_params) >= 5:
|
||||
x = self.layer5(x, training=training)
|
||||
else:
|
||||
x = self.layer5(inputs, training=training)
|
||||
x = self.layer4(x, training=training)
|
||||
x = self.layer3(x, training=training)
|
||||
x = self.layer2(x, training=training)
|
||||
x = inputs
|
||||
if len(self.layer_params) >= 5:
|
||||
x = self.layer5(x, training=training)
|
||||
if len(self.layer_params) >= 4:
|
||||
x = self.layer4(x, training=training)
|
||||
if len(self.layer_params) >= 2:
|
||||
x = self.layer3(x, training=training)
|
||||
if len(self.layer_params) >= 3:
|
||||
x = self.layer2(x, training=training)
|
||||
x = self.layer1(x, training=training)
|
||||
|
||||
x = self.pool1(x)
|
||||
|
||||
Reference in New Issue
Block a user