Пример #1
0
    def __init__(self, input_dim, output_dim, training=True):
        self.training = training
        nb = NetworkBuilder()
        with tf.name_scope("Input"):
            self.input = tf.placeholder(tf.float32,
                                        shape=[None, input_dim, input_dim, 1],
                                        name="input")

        with tf.name_scope("Output"):
            self.output = tf.placeholder(tf.float32,
                                         shape=[None, output_dim],
                                         name="output")

        with tf.name_scope("ImageModel"):
            model = self.input
            model = nb.add_batch_normalization(model, self.training)
            model = nb.add_conv_layer(model,
                                      output_size=64,
                                      feature_size=(4, 4),
                                      padding='SAME',
                                      activation=tf.nn.relu)
            model = nb.add_max_pooling_layer(model)
            model = nb.add_dropout(model, 0.1, self.training)
            model = nb.add_conv_layer(model,
                                      64,
                                      feature_size=(4, 4),
                                      activation=tf.nn.relu,
                                      padding='VALID')
            model = nb.add_max_pooling_layer(model)
            model = nb.add_dropout(model, 0.3, self.training)
            model = nb.flatten(model)
            model = nb.add_dense_layer(model, 256, tf.nn.relu)
            model = nb.add_dropout(model, 0.5, self.training)
            model = nb.add_dense_layer(model, 64, tf.nn.relu)
            model = nb.add_batch_normalization(model, self.training)
            self.logits = nb.add_dense_layer(model,
                                             output_dim,
                                             activation=tf.nn.softmax)