def conv_decoder_32_large(inputs, output_features=False, nonlinearity=None, bn=True, kernel_initializer=None, kernel_regularizer=None, is_training=False, counters={}): name = get_name("conv_decoder_32_large", counters) print("construct", name, "...") with tf.variable_scope(name): with arg_scope([deconv2d, dense], nonlinearity=nonlinearity, bn=bn, kernel_initializer=kernel_initializer, kernel_regularizer=kernel_regularizer, is_training=is_training, counters=counters): outputs = dense(inputs, 512) outputs = tf.reshape(outputs, [-1, 1, 1, 512]) outputs = deconv2d(outputs, 256, 4, 1, "VALID") outputs = deconv2d(outputs, 128, 4, 2, "SAME") outputs = deconv2d(outputs, 64, 4, 2, "SAME") outputs = deconv2d(outputs, 32, 4, 2, "SAME") if output_features: return outputs outputs = deconv2d(outputs, 3, 1, 1, "SAME", nonlinearity=tf.sigmoid, bn=False) outputs = 2. * outputs - 1. return outputs
def conv_decoder_28_binary(inputs, nonlinearity=None, bn=True, kernel_initializer=None, kernel_regularizer=None, is_training=False, counters={}): name = get_name("conv_decoder_28_binary", counters) print("construct", name, "...") with tf.variable_scope(name): with arg_scope([deconv2d, dense], nonlinearity=nonlinearity, bn=bn, kernel_initializer=kernel_initializer, kernel_regularizer=kernel_regularizer, is_training=is_training, counters=counters): outputs = dense(inputs, 128) outputs = tf.reshape(outputs, [-1, 1, 1, 128]) outputs = deconv2d(outputs, 128, 4, 1, "VALID") outputs = deconv2d(outputs, 64, 4, 1, "VALID") outputs = deconv2d(outputs, 64, 4, 2, "SAME") outputs = deconv2d(outputs, 32, 4, 2, "SAME") outputs = deconv2d(outputs, 1, 1, 1, "SAME", nonlinearity=None, bn=False) return outputs