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)