b = utils.bias_variable([ch[3]]) conv = utils.conv2d(s4_conv3, W, b, 1) tanh = tf.nn.tanh(conv) s4_conv4 = tf.nn.dropout(tanh, keep_prob) ############################## # Section 5 # Upsampling convolution (with skip connection from section 2) layer_name = "s5_conv1" with tf.name_scope(layer_name): W = utils.weight_variable([k_size, k_size, ch[4], ch[3]]) b = utils.bias_variable([ch[4]]) conv = utils.conv2d_transpose(s4_conv4, W, b, tf.shape(s2_conv1), 2) tanh = tf.nn.tanh(conv) s5_conv1 = tf.nn.dropout(tanh, keep_prob) # Asymmetric convolution layer_name = "s5_conv2" with tf.name_scope(layer_name): W = utils.weight_variable([k_size, 1, ch[4], ch[4]]) b = utils.bias_variable([ch[4]]) conv = utils.conv2d(s5_conv1, W, b, 1) tanh = tf.nn.tanh(conv) s5_conv2 = tf.nn.dropout(tanh, keep_prob) # Asymmetric convolution layer_name = "s5_conv3"
b = utils.bias_variable([ch[2]]) conv = utils.conv2d(s3_conv1, W, b, 1) tanh = tf.nn.tanh(conv) s3_conv2 = tf.nn.dropout(tanh, keep_prob) ############################## # Section 4 # Upsampling convolution (with skip connection from section 2) layer_name = "s4_conv1" with tf.name_scope(layer_name): W = utils.weight_variable([k_size, k_size, ch[3], ch[2]]) b = utils.bias_variable([ch[3]]) conv = utils.conv2d_transpose(s3_conv2, W, b, tf.shape(s1_conv1), 2) tanh = tf.nn.tanh(conv) s4_conv1 = tf.nn.dropout(tanh, keep_prob) # Convolution layer_name = "s4_conv2" with tf.name_scope(layer_name): W = utils.weight_variable([k_size, k_size, ch[3], ch[3]]) b = utils.bias_variable([ch[3]]) conv = utils.conv2d(s4_conv1, W, b, 1) tanh = tf.nn.tanh(conv) s4_conv2 = tf.nn.dropout(tanh, keep_prob) ############################## # Section 5