Exemple #1
0
def convert_drawer_model(model):
    _input_shape = model.input_shape
    figure = Model(input_shape=_input_shape[1:])
    for config in model.get_config()["layers"]:
        class_name = config.get("class_name", False)
        class_config = config.get("config", False)
        if class_name and class_config:
            class_obj = is_class_object(class_name)
            if class_name == "Conv2D":
                conv_2d = get_conv2d_obj(class_obj, class_config)
                figure.add(conv_2d)
            elif class_name == "MaxPooling2D":
                max_pooling_2d = get_maxpooling2d_obj(class_obj, class_config)
                figure.add(max_pooling_2d)
            elif class_name == "Dense":
                dense = get_dense_obj(class_obj, class_config)
                figure.add(dense)
            else:
                figure.add(class_obj())
        else:
            raise ValueError

    return figure
Exemple #2
0
def main():
    model = Model(input_shape=(224, 224, 3))
    model.add(Conv2D(64, (3, 3), padding="same"))
    model.add(Conv2D(64, (3, 3), padding="same"))
    model.add(MaxPooling2D((2, 2)))
    model.add(Conv2D(128, (3, 3), padding="same"))
    model.add(Conv2D(128, (3, 3), padding="same"))
    model.add(MaxPooling2D((2, 2)))
    model.add(Conv2D(256, (3, 3), padding="same"))
    model.add(Conv2D(256, (3, 3), padding="same"))
    model.add(Conv2D(256, (3, 3), padding="same"))
    model.add(MaxPooling2D((2, 2)))
    model.add(Conv2D(512, (3, 3), padding="same"))
    model.add(Conv2D(512, (3, 3), padding="same"))
    model.add(Conv2D(512, (3, 3), padding="same"))
    model.add(MaxPooling2D((2, 2)))
    model.add(Conv2D(512, (3, 3), padding="same"))
    model.add(Conv2D(512, (3, 3), padding="same"))
    model.add(Conv2D(512, (3, 3), padding="same"))
    model.add(MaxPooling2D((2, 2)))
    model.add(Flatten())
    model.add(Dense(4096))
    model.add(Dense(4096))
    model.add(Dense(1000))
    model.save_fig(os.path.splitext(os.path.basename(__file__))[0] + ".svg")
    save_model_to_pptx(
        model,
        os.path.splitext(os.path.basename(__file__))[0] + ".pptx")
Exemple #3
0
def main():
    config.text_size = 16
    model = Model(input_shape=(227, 227, 3))
    model.add(Conv2D(96, (11, 11), (4, 4)))
    model.add(MaxPooling2D((3, 3), strides=(2, 2)))
    model.add(Conv2D(256, (5, 5), padding="same"))
    model.add(MaxPooling2D((3, 3), strides=(2, 2)))
    model.add(Conv2D(384, (3, 3), padding="same"))
    model.add(Conv2D(384, (3, 3), padding="same"))
    model.add(Conv2D(256, (3, 3), padding="same"))
    model.add(MaxPooling2D((3, 3), strides=(2, 2)))
    model.add(Flatten())
    model.add(Dense(4096))
    model.add(Dense(4096))
    model.add(Dense(1000))
    save_model_to_file(
        model,
        os.path.splitext(os.path.basename(__file__))[0] + ".pdf")
Exemple #4
0
def create_model():
    model = Model(input_shape=(256, 256, 3))

    #16
    model.add(Conv2D(16, (3, 3), (1, 1), padding='same'))
    model.add(Conv2D(16, (3, 3), (1, 1), padding='same'))
    model.add(MaxPooling2D((2, 2), strides=(2, 2)))

    #32
    model.add(Conv2D(32, (3, 3), (1, 1), padding='same'))
    model.add(Conv2D(32, (3, 3), (1, 1), padding='same'))
    model.add(MaxPooling2D((2, 2), strides=(2, 2)))

    #64
    model.add(Conv2D(64, (3, 3), (1, 1), padding='same'))
    model.add(Conv2D(64, (3, 3), (1, 1), padding='same'))
    model.add(MaxPooling2D((2, 2), strides=(2, 2)))

    #96
    model.add(Conv2D(96, (3, 3), (1, 1), padding='same'))
    model.add(Conv2D(96, (3, 3), (1, 1), padding='same'))
    model.add(MaxPooling2D((2, 2), strides=(2, 2)))

    #128
    model.add(Conv2D(128, (3, 3), (1, 1), padding='same'))
    model.add(Conv2D(128, (3, 3), (1, 1), padding='same'))
    model.add(MaxPooling2D((2, 2), strides=(2, 2)))

    model.add(Flatten())
    model.add(Dense(96))
    model.add(Dense(5))

    # save as svg file
    model.save_fig("example5.svg")
def convert_drawer_model(model):
    _input_shape = model.input_shape
#    figure = Model(input_shape=_input_shape[1:])
    # CNN Model
    if len(_input_shape) == 4:
        figure = Model(input_shape=_input_shape[1:])
    # MLP Model
    else:
        dims = int(np.sqrt(_input_shape[1]))
        _input_shape = (1,dims, dims,1)
        figure = Model(input_shape=_input_shape[1:])
        figure.add(Flatten())
    for config in model.get_config()["layers"]:
        class_name = config.get("class_name", False)
        class_config = config.get("config", False)
        print(class_name,class_config)
        if class_name and class_config:
#            class_obj = is_class_object(class_name)
            print(class_name)
            if class_name == "Conv2D":
                class_obj = is_class_object(class_name)
                conv_2d = get_conv2d_obj(class_obj, class_config)
                figure.add(conv_2d)
            elif class_name == "MaxPooling2D":
                class_obj = is_class_object(class_name)
                max_pooling_2d = get_maxpooling2d_obj(class_obj, class_config)
                figure.add(max_pooling_2d)
            elif class_name == "AveragePooling2D":
                class_obj = is_class_object(class_name)
                avg_pooling_2d = get_avgpooling2d_obj(class_obj, class_config)
                figure.add(avg_pooling_2d)
            elif class_name == "Dense":
                class_obj = is_class_object(class_name)
                dense = get_dense_obj(class_obj, class_config)
                figure.add(dense)
            elif class_name == "Activation":
                pass
            elif class_name == "Dropout":
                pass
            elif class_name == "BatchNormalizationV1":
                pass
            elif class_name == "BatchNormalization":
                pass
            elif class_name == "InputLayer":
                pass
            elif class_name == "Sequential":
                pass
            elif class_name == "Add":
                pass
            else:
                class_obj = is_class_object(class_name)
                figure.add(class_obj())
        else:
            raise ValueError

    return figure
Exemple #6
0
def main():
    config.channel_scale = 2 / 3

    model = Model(input_shape=(256, 256, 3))
    model.add(Conv2D(16, (3, 3), (2, 2), padding="same"))
    model.add(Conv2D(32, (3, 3), (2, 2), padding="same"))
    model.add(Conv2D(64, (3, 3), (2, 2), padding="same"))
    model.add(Conv2D(128, (3, 3), (2, 2), padding="same"))
    model.add(Conv2D(256, (3, 3), (2, 2), padding="same"))
    model.add(Deconv2D(128, (3, 3), (2, 2), padding="same"))
    model.add(Deconv2D(64, (3, 3), (2, 2), padding="same"))
    model.add(Deconv2D(32, (3, 3), (2, 2), padding="same"))
    model.add(Deconv2D(16, (3, 3), (2, 2), padding="same"))
    model.add(Deconv2D(3, (3, 3), (2, 2), padding="same"))
    model.save_fig(os.path.splitext(os.path.basename(__file__))[0] + ".svg")
    save_model_to_pptx(
        model,
        os.path.splitext(os.path.basename(__file__))[0] + ".pptx")
Exemple #7
0
def main():
    configure(inter_layer_margin=65, channel_scale=4 / 5)
    model = Model(input_shape=(32, 32, 1))
    model.add(Conv2D(6, (5, 5), (1, 1)))
    model.add(MaxPooling2D((2, 2)))
    model.add(Conv2D(16, (5, 5)))
    model.add(MaxPooling2D((2, 2)))
    model.add(Flatten())
    model.add(Dense(120))
    model.add(Dense(84))
    model.add(Dense(10))
    model.save_fig(os.path.splitext(os.path.basename(__file__))[0] + ".svg")
    save_model_to_pptx(
        model,
        os.path.splitext(os.path.basename(__file__))[0] + ".pptx")
def convert_drawer_model(model):
    _input_shape = model.input_shape
    figure = Model(input_shape=_input_shape[1:])
    prev_class_obj = None
    prev_class_config = None
    for i, config in enumerate(model.get_config()["layers"]):
        class_name = config.get("class_name", False)
        class_config = config.get("config", False)
        if class_name and class_config:
            class_obj = is_class_object(class_name)
            if class_name == "Conv2D":
                conv_2d = get_conv2d_obj(class_obj, class_config)
                if prev_class_obj:
                    dropout = get_dropout_obj(prev_class_obj,
                                              prev_class_config, class_config)
                    figure.add(dropout)
                figure.add(conv_2d)
                prev_class_obj = None  # reset
                prev_class_config = None
            elif class_name == "MaxPooling2D":
                max_pooling_2d = get_maxpooling2d_obj(class_obj, class_config)
                figure.add(max_pooling_2d)
            elif class_name == "Dense":
                next_activation_layer_config = None
                if verbose:
                    next_activation_layer = model.get_config()["layers"][i + 1]
                    if next_activation_layer["class_name"] == "Activation":
                        next_activation_layer_config = next_activation_layer[
                            "config"]
                        dense = get_dense_obj(class_obj,
                                              class_config,
                                              next_activation_layer_config=
                                              next_activation_layer_config)
                else:
                    dense = get_dense_obj(class_obj, class_config)
                figure.add(dense)
            elif class_name == "Dropout":
                prev_class_obj = class_obj
                prev_class_config = class_config
            elif class_name == "Activation":
                pass
            else:
                figure.add(class_obj())
        else:
            raise ValueError

    return figure
from convnet_drawer import Model, Conv2D, MaxPooling2D, Flatten, Dense

model = Model(input_shape=(50, 50, 3))

model.add(Conv2D(32, (3, 3), padding="same"))
model.add(Conv2D(32, (3, 3)))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(64, (3, 3), padding='same'))
model.add(Conv2D(64, (3, 3)))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Flatten())
model.add(Dense(512))
model.add(Dense(4))

model.save_fig("example.svg")
Exemple #10
0
def main():
    model = Model(input_shape=(224, 224, 3))
    model.add(Conv2D(96, (7, 7), strides=(2, 2)))
    model.add(MaxPooling2D((3, 3), strides=(2, 2)))
    model.add(Conv2D(256, (5, 5), strides=(2, 2), padding="same"))
    model.add(MaxPooling2D((3, 3), strides=(2, 2)))
    model.add(Conv2D(384, (3, 3), padding="same"))
    model.add(Conv2D(384, (3, 3), padding="same"))
    model.add(Conv2D(256, (3, 3), padding="same"))
    model.add(MaxPooling2D((3, 3), strides=(2, 2)))
    model.add(Flatten())
    model.add(Dense(4096))
    model.add(Dense(4096))
    model.add(Dense(1000))
    model.save_fig(os.path.splitext(os.path.basename(__file__))[0] + ".svg")