Ejemplo n.º 1
0
 def f(x):
     coloring_group, m = get_m_group(x, coloring_m, axis)
     if coloring_group > 1:
         splits = Split(coloring_group, axis)(x)
         cs = []
         us = []
         for i, split in enumerate(splits):
             split_c = factor_conv_layer(
                 number_of_classes=number_of_classes,
                 name=name + '_c' + str(i),
                 filters=m,
                 filters_emb=filters_emb,
                 use_bias=False)([split, cls])
             split_u = uncoditional_conv_layer(kernel_size=(1, 1),
                                               filters=m,
                                               name=name + '_u' +
                                               str(i))(split)
             cs.append(split_c)
             us.append(split_u)
         c = tf.keras.layers.Concatenate(axis)(cs)
         u = tf.keras.layers.Concatenate(axis)(us)
     else:
         c = factor_conv_layer(number_of_classes=number_of_classes,
                               name=name + '_c',
                               filters=K.int_shape(x)[axis],
                               filters_emb=filters_emb,
                               use_bias=False)([x, cls])
         u = uncoditional_conv_layer(kernel_size=(1, 1),
                                     filters=K.int_shape(x)[axis],
                                     name=name + '_u')(x)
     out = Add(name=name + '_a')([c, u])
     return out
Ejemplo n.º 2
0
 def f(x):
     coloring_group, m = get_m_group(x, coloring_m, axis)
     if coloring_group > 1:
         splits = Split(coloring_group, axis)(x)
         outs = []
         for i, split in enumerate(splits):
             split_out = uncoditional_conv_layer(filters=m,
                                                 kernel_size=(1, 1),
                                                 name=name +
                                                 str(i))(split)
             outs.append(split_out)
         out = tf.keras.layers.Concatenate(axis)(outs)
     else:
         out = uncoditional_conv_layer(filters=K.int_shape(x)[axis],
                                       kernel_size=(1, 1),
                                       name=name)(x)
     return out
Ejemplo n.º 3
0
 def f(x):
     coloring_group, m = get_m_group(x, coloring_m, axis)
     if coloring_group > 1:
         splits = Split(coloring_group, axis)(x)
         outs = []
         for i, split in enumerate(splits):
             split_out = conditional_conv_layer(
                 filters=m,
                 number_of_classes=number_of_classes,
                 name=name + str(i))([split, cls])
             outs.append(split_out)
         out = tf.keras.layers.Concatenate(axis)(outs)
     else:
         out = conditional_conv_layer(
             filters=K.int_shape(x)[axis],
             number_of_classes=number_of_classes,
             name=name)([x, cls])
     return out
Ejemplo n.º 4
0
 def f(x):
     coloring_group, m = get_m_group(x, coloring_m, axis)
     c = ConditionalCenterScale(number_of_classes=number_of_classes,
                                axis=axis,
                                name=name + '_c')([x, cls])
     if coloring_group > 1:
         splits = Split(coloring_group, axis)(x)
         us = []
         for i, split in enumerate(splits):
             split_u = uncoditional_conv_layer(kernel_size=(1, 1),
                                               filters=m,
                                               name=name + '_u' +
                                               str(i))(split)
             us.append(split_u)
         u = tf.keras.layers.Concatenate(axis)(us)
     else:
         u = uncoditional_conv_layer(kernel_size=(1, 1),
                                     filters=K.int_shape(x)[axis],
                                     name=name + '_u')(x)
     out = Add(name=name + '_a')([c, u])
     return out