def __init__(self, input_tensor, encoder, data_type, is_training, reuse): self.input_tensor = input_tensor self.input_depth = self.input_tensor.shape[3] with tf.variable_scope('decoder'): with tf.variable_scope('layer-1'): net = mf.relu(self.input_tensor) net = mf.deconv(net, filters=128, kernel_size=(5, 5, self.input_depth), stride=(2, 2)) net = mf.batch_norm(net, is_training=is_training, reuse=reuse) net = mf.dropout(net, .5) with tf.variable_scope('layer-2'): net = mf.relu(mf.concat(net, encoder.l5)) net = mf.deconv(net, filters=64, kernel_size=(5, 5, self.input_depth), stride=(2, 2)) net = mf.batch_norm(net, is_training=is_training, reuse=reuse) net = mf.dropout(net, .5) with tf.variable_scope('layer-3'): net = mf.relu(mf.concat(net, encoder.l4)) net = mf.deconv(net, filters=32, kernel_size=(5, 5, self.input_depth), stride=(2, 2)) net = mf.batch_norm(net, is_training=is_training, reuse=reuse) net = mf.dropout(net, .5) with tf.variable_scope('layer-4'): net = mf.relu(mf.concat(net, encoder.l3)) net = mf.deconv(net, filters=16, kernel_size=(5, 5, self.input_depth), stride=(2, 2)) net = mf.batch_norm(net, is_training=is_training, reuse=reuse) with tf.variable_scope('layer-5'): net = mf.relu(mf.concat(net, encoder.l2)) net = mf.deconv(net, filters=8, kernel_size=(5, 5, self.input_depth), stride=(2, 2)) net = mf.batch_norm(net, is_training=is_training, reuse=reuse) with tf.variable_scope('layer-6'): if data_type == 'mag_phase_real_imag': self.out_depth = 2 else: self.out_depth = encoder.input_tensor.shape[3] net = mf.relu(mf.concat(net, encoder.l1)) net = mf.deconv(net, filters=1, kernel_size=(5, 5, self.out_depth), stride=(2, 2)) self.output = net
def __init__(self, input_tensor, encoder, data_type, is_training, reuse): net = input_tensor with tf.variable_scope('decoder'): with tf.variable_scope('layer-1'): net = mf.relu(net) net = mf.deconv(net, filters=256, kernel_size=5, stride=(2, 2)) net = mf.batch_norm(net, is_training=is_training, reuse=reuse) net = mf.dropout(net, .5) with tf.variable_scope('layer-2'): net = mf.relu(mf.concat(net, encoder.l5)) net = mf.deconv(net, filters=128, kernel_size=5, stride=(2, 2)) net = mf.batch_norm(net, is_training=is_training, reuse=reuse) net = mf.dropout(net, .5) with tf.variable_scope('layer-3'): net = mf.relu(mf.concat(net, encoder.l4)) net = mf.deconv(net, filters=64, kernel_size=5, stride=(2, 2)) net = mf.batch_norm(net, is_training=is_training, reuse=reuse) net = mf.dropout(net, .5) with tf.variable_scope('layer-4'): net = mf.relu(mf.concat(net, encoder.l3)) net = mf.deconv(net, filters=32, kernel_size=5, stride=(2, 2)) net = mf.batch_norm(net, is_training=is_training, reuse=reuse) with tf.variable_scope('layer-5'): net = mf.relu(mf.concat(net, encoder.l2)) net = mf.deconv(net, filters=16, kernel_size=5, stride=(2, 2)) net = mf.batch_norm(net, is_training=is_training, reuse=reuse) with tf.variable_scope('layer-6'): if data_type == 'mag_phase_real_imag': out_shape = 4 else: out_shape = 2 net = mf.relu(mf.concat(net, encoder.l1)) net = mf.deconv(net, filters=out_shape, kernel_size=5, stride=(2, 2)) self.output = net
def __init__(self, input_tensor, encoder, is_training, reuse): net = input_tensor with tf.variable_scope('decoder'): with tf.variable_scope('layer-1'): net = mf.relu(net) net = mf.deconv(net, filters=256, kernel_size=5, stride=(2, 2)) net = mf.batch_norm(net, is_training=is_training, reuse=reuse) net = mf.dropout(net, .5) with tf.variable_scope('layer-2'): net = mf.relu(mf.concat(net, encoder.l5)) net = mf.deconv(net, filters=128, kernel_size=5, stride=(2, 2)) net = mf.batch_norm(net, is_training=is_training, reuse=reuse) net = mf.dropout(net, .5) with tf.variable_scope('layer-3'): net = mf.relu(mf.concat(net, encoder.l4)) net = mf.deconv(net, filters=64, kernel_size=5, stride=(2, 2)) net = mf.batch_norm(net, is_training=is_training, reuse=reuse) net = mf.dropout(net, .5) with tf.variable_scope('layer-4'): net = mf.relu(mf.concat(net, encoder.l3)) net = mf.deconv(net, filters=32, kernel_size=5, stride=(2, 2)) net = mf.batch_norm(net, is_training=is_training, reuse=reuse) with tf.variable_scope('layer-5'): net = mf.relu(mf.concat(net, encoder.l2)) net = mf.deconv(net, filters=16, kernel_size=5, stride=(2, 2)) net = mf.batch_norm(net, is_training=is_training, reuse=reuse) with tf.variable_scope('layer-6'): net = mf.relu(mf.concat(net, encoder.l1)) net = mf.deconv(net, filters=encoder.input_tensor.shape[3], kernel_size=5, stride=(2, 2)) self.output = net