示例#1
0
 def _residual(self, h, channels, strides):
     h0 = h
     h1 = F.activation(
         F.batch_normalization(
             F.conv(h0, channels, strides, bias_term=False)))
     h2 = F.batch_normalization(F.conv(h1, channels, bias_term=False))
     if F.volume(h0) == F.volume(h2):
         h = h2 + h0
     else:
         h3 = F.avg_pool(h0)
         h4 = tf.pad(h3,
                     [[0, 0], [0, 0], [0, 0], [channels / 4, channels / 4]])
         h = h2 + h4
     return h
示例#2
0
 def _residual(self, h, channels, strides):
     h0 = h
     h1 = F.activation(
         F.batch_normalization(
             F.conv(h0, channels, strides, bias_term=False)))
     h2 = F.batch_normalization(F.conv(h1, channels, bias_term=False))
     # c.f. http://gitxiv.com/comments/7rffyqcPLirEEsmpX
     if F.volume(h0) == F.volume(h2):
         h = h2 + h0
     else:
         h3 = F.avg_pool(h0)
         h4 = tf.pad(h3,
                     [[0, 0], [0, 0], [0, 0], [channels / 4, channels / 4]])
         h = h2 + h4
     return F.activation(h)
def model(image):
    w1_1 = fun.weight_variable([3, 3, 1, 64])
    b1_1 = fun.bias_variable([64])
    conv1_1 = fun.conv2d(image, w1_1, b1_1)
    relu1_1 = fun.relu(conv1_1)
    pool1 = fun.avg_pool(relu1_1)

    w2_1 = fun.weight_variable([3, 3, 64, 128])
    b2_1 = fun.weight_variable([128])
    conv2_1 = fun.conv2d(pool1, w2_1, b2_1)
    relu2_1 = fun.relu(conv2_1)

    w2_2 = fun.weight_variable([3, 3, 128, 128])
    b2_2 = fun.weight_variable([128])
    conv2_2 = fun.conv2d(relu2_1, w2_2, b2_2)
    relu2_2 = fun.relu(conv2_2)
    pool2 = fun.avg_pool(relu2_2)

    w3_1 = fun.weight_variable([3, 3, 128, 64])
    b3_1 = fun.bias_variable([64])
    conv3_1 = fun.conv2d(pool2, w3_1, b3_1)
    relu3_1 = fun.relu(conv3_1)

    w3_2 = fun.weight_variable([3, 3, 64, 64])
    b3_2 = fun.bias_variable([64])
    conv3_2 = fun.conv2d(relu3_1, w3_2, b3_2)
    relu3_2 = fun.relu(conv3_2)

    w3_3 = fun.weight_variable([3, 3, 64, 64])
    b3_3 = fun.bias_variable([64])
    conv3_3 = fun.conv2d(relu3_2, w3_3, b3_3)
    relu3_3 = fun.relu(conv3_3)

    w3_4 = fun.weight_variable([3, 3, 64, 32])
    b3_4 = fun.bias_variable([32])
    conv3_4 = fun.conv2d(relu3_3, w3_4, b3_4)
    relu3_4 = fun.relu(conv3_4)
    pool3 = fun.avg_pool(relu3_4)

    w4_1 = fun.weight_variable([3, 3, 32, 32])
    b4_1 = fun.bias_variable([32])
    conv4_1 = fun.conv2d(pool3, w4_1, b4_1)
    relu4_1 = fun.relu(conv4_1)

    w4_2 = fun.weight_variable([3, 3, 32, 32])
    b4_2 = fun.bias_variable([32])
    conv4_2 = fun.conv2d(relu4_1, w4_2, b4_2)
    relu4_2 = fun.relu(conv4_2)

    w4_3 = fun.weight_variable([3, 3, 32, 32])
    b4_3 = fun.bias_variable([3, 3, 32, 32])
    conv4_3 = fun.conv2d(relu4_2, w4_3, b4_3)
    relu4_3 = fun.relu(conv4_3)

    w4_4 = fun.weight_variable([3, 3, 32, 32])
    b4_4 = fun.bias_variable([3, 3, 32, 32])
    conv4_4 = fun.conv2d(relu4_3, w4_4, b4_4)
    relu4_4 = fun.relu(conv4_4)
    pool4 = fun.avg_pool(relu4_4)

    w5_1 = fun.weight_variable([3, 3, 32, 64])
    b5_1 = fun.bias_variable([64])
    conv5_1 = fun.conv2d(pool4, w5_1, b5_1)
    relu5_1 = fun.relu(conv5_1)

    w5_2 = fun.weight_variable([3, 3, 64, 64])