working pyramid update

This commit is contained in:
2022-09-20 22:56:44 +00:00
parent 456a8b2c37
commit 494ceaa276
5 changed files with 557 additions and 31 deletions
+10 -10
View File
@@ -45,10 +45,10 @@ class Block(Layer):
layer_scale_init_value (float): Init value for Layer Scale. Default: 1e-6.
"""
def __init__(self, dim, drop_path=0., layer_scale_init_value=1e-6, prefix=''):
def __init__(self, dim, kernel_size=7, drop_path=0., layer_scale_init_value=1e-6, prefix=''):
super().__init__()
self.dwconv = DepthwiseConv2D(
kernel_size=7, padding='same') # depthwise conv
kernel_size=kernel_size, padding='same') # depthwise conv
self.norm = LayerNormalization(epsilon=1e-6)
# pointwise/1x1 convs, implemented with linear layers
self.pwconv1 = Dense(4 * dim)
@@ -97,7 +97,7 @@ class ConvNeXt(tf.keras.Model):
head_init_scale (float): Init scaling value for classifier weights and biases. Default: 1.
"""
def __init__(self, num_classes=1000,
def __init__(self, num_classes=1000, kernel_size=7,
depths=[3, 3, 9, 3], dims=[96, 192, 384, 768], include_top=True,
drop_path_rate=0., layer_scale_init_value=1e-6, head_init_scale=1.,
):
@@ -121,7 +121,7 @@ class ConvNeXt(tf.keras.Model):
cur = 0
for i in range(len(depths)):
stage = tf.keras.Sequential(
[Block(dim=dims[i], drop_path=dp_rates[cur + j],
[Block(dim=dims[i], drop_path=dp_rates[cur + j], kernel_size=kernel_size,
layer_scale_init_value=layer_scale_init_value, prefix=f'block{i}') for j in range(depths[i])]
)
self.stages.append(stage)
@@ -167,7 +167,7 @@ class ConvNeXtWithSkip(tf.keras.Model):
"""
def __init__(self,
depths=[3, 3, 9, 3], dims=[96, 192, 384, 768],
depths=[3, 3, 9, 3], dims=[96, 192, 384, 768], kernel_size=7,
drop_path_rate=0., layer_scale_init_value=1e-6,
):
super().__init__()
@@ -189,7 +189,7 @@ class ConvNeXtWithSkip(tf.keras.Model):
cur = 0
for i in range(len(depths)):
stage = tf.keras.Sequential(
[Block(dim=dims[i], drop_path=dp_rates[cur + j],
[Block(dim=dims[i], drop_path=dp_rates[cur + j], kernel_size=kernel_size,
layer_scale_init_value=layer_scale_init_value, prefix=f'block{i}') for j in range(depths[i])]
)
self.stages.append(stage)
@@ -221,7 +221,7 @@ class ConvNeXtReverse(tf.keras.Model):
"""
def __init__(self,
depths=[3, 3, 9, 3], dims=[96, 192, 384, 768],
depths=[3, 3, 9, 3], dims=[96, 192, 384, 768], kernel_size=7,
drop_path_rate=0., layer_scale_init_value=1e-6, head_init_scale=1.,
):
super().__init__()
@@ -249,7 +249,7 @@ class ConvNeXtReverse(tf.keras.Model):
cur = 0
for i in range(len(depths)):
stage = tf.keras.Sequential(
[Block(dim=dims[i], drop_path=dp_rates[cur + j],
[Block(dim=dims[i], drop_path=dp_rates[cur + j], kernel_size=kernel_size,
layer_scale_init_value=layer_scale_init_value, prefix=f'block{i}') for j in range(depths[i])]
)
self.stages.append(stage)
@@ -281,7 +281,7 @@ class ConvNeXtReverseWithSkip(tf.keras.Model):
"""
def __init__(self,
depths=[3, 3, 9, 3], dims=[96, 192, 384, 768],
depths=[3, 3, 9, 3], dims=[96, 192, 384, 768], kernel_size=7,
drop_path_rate=0., layer_scale_init_value=1e-6, head_init_scale=1.,
):
super().__init__()
@@ -304,7 +304,7 @@ class ConvNeXtReverseWithSkip(tf.keras.Model):
cur = 0
for i in range(len(depths)):
stage = tf.keras.Sequential(
[Block(dim=dims[i], drop_path=dp_rates[cur + j],
[Block(dim=dims[i], kernel_size=kernel_size, drop_path=dp_rates[cur + j],
layer_scale_init_value=layer_scale_init_value, prefix=f'block{i}') for j in range(depths[i])]
)
self.stages.append(stage)