コード例 #1
0
    def convolve(self, image, training, keep_prob):
        layers = [1, 32, 64]
        width = 28
        conv_window = 3
        feature_layer_size = 128  # maybe 1024
        result = image

        for index in range(len(layers) - 1):
            result = layer.conv_relu(result, layers[index], layers[index + 1],
                                     conv_window)
            result = layer.resnet_block(result,
                                        layers=layers[index + 1],
                                        width=conv_window,
                                        training=training)
            result = layer.resnet_block(result,
                                        layers=layers[index + 1],
                                        width=conv_window,
                                        training=training)
            result = layer.max_pool(result)
            width = int(round(width / 2.0))

        result = layer.conv_relu(result,
                                 layers[-1],
                                 feature_layer_size,
                                 width=width,
                                 padding='VALID')

        h_out = tf.reshape(result, [-1, feature_layer_size])
        h_out_drop = tf.nn.dropout(h_out, keep_prob)
        y = layer.fully_connected(h_out_drop, feature_layer_size, 10)

        return y
コード例 #2
0
 def convolve(self, image, training, keep_prob):
     result = layer.batch_normalization(image, training)
     result = layer.conv_relu(result, 1, 18, width=5, padding="VALID")
     result = layer.max_pool(result)  # 12
     result = layer.conv_relu(result, 18, 24, width=5, padding="VALID")
     result = layer.max_pool(result)  # 4
     result = tf.nn.dropout(result, keep_prob)
     return layer.conv(result, 24, 10, width=4, padding="VALID")
コード例 #3
0
 def convolve(self, image, training, keep_prob):
     result = layer.batch_normalization(image, training)
     result = layer.conv_relu(result, 1, 18, width=5)
     result = layer.max_pool(result)  # 14
     result = layer.conv_relu(result, 18, 24, width=5)
     result = layer.max_pool(result)  # 7
     return layer.drop_conv(keep_prob,
                            result,
                            24,
                            10,
                            width=7,
                            padding="VALID")
コード例 #4
0
 def convolve(self, image, training, keep_prob):
     result = layer.batch_normalization(image, training)
     result = layer.conv_relu(result, 1, 18, width=5)
     result = layer.resnet_block(result, 18, 3, training, momentum=0.99)
     result = layer.max_pool(result)  # 14
     result = layer.resnet_block(result, 18, 3, training, momentum=0.99)
     result = layer.conv_relu(result, 18, 24, width=5)
     result = layer.resnet_block(result, 24, 3, training, momentum=0.99)
     result = layer.max_pool(result)  # 7
     result = layer.resnet_block(result, 24, 3, training, momentum=0.99)
     result = layer.conv_relu(result, 24, 32, width=5, padding="VALID")
     result = layer.resnet_block(result, 32, 3, training, momentum=0.99)
     result = tf.nn.dropout(result, keep_prob)
     return layer.conv(result, 32, 10, width=3, padding="VALID")
コード例 #5
0
 def convolve(self, image, training, keep_prob):
     result = layer.conv_relu(image,
                              1,
                              18,
                              width=5,
                              stride=2,
                              padding="VALID")
     return layer.conv(result, 18, 10, width=12, padding="VALID")
コード例 #6
0
 def convolve(self, image, training, keep_prob):
     result = layer.batch_normalization(image, training)
     result = layer.conv_relu(result, 1, 18, width=5, padding="VALID")
     result = layer.max_pool(result)  # 12
     result = layer.resnet_block(result, 18, 3, training)
     result = layer.resnet_block(result, 18, 3, training)
     result = layer.max_pool(result)  # 6
     result = layer.conv_relu(result, 18, 24, width=1)
     result = layer.resnet_narrow(result, 24, 3, training)
     result = layer.resnet_narrow(result, 24, 3, training)
     result = layer.max_pool(result)  # 3
     result = layer.conv_relu(result, 24, 32, width=1)
     result = layer.resnet_narrow(result, 32, 3, training)
     result = layer.resnet_narrow(result, 32, 3, training)
     return layer.drop_conv(keep_prob,
                            result,
                            32,
                            10,
                            width=3,
                            padding="VALID")
コード例 #7
0
 def convolve(self, image, training, keep_prob):
     result = image
     result = layer.batch_normalization(result, training)
     result = layer.conv(result, 1, 16, width=5, stride=2, padding="VALID")
     result = tf.nn.tanh(result)
     result = layer.conv(result, 16, 16, width=3, stride=2, padding="VALID")
     result = tf.nn.tanh(result)
     result = layer.conv(result, 16, 32, width=3, padding="VALID")
     result = tf.nn.tanh(result)
     result = layer.conv(result, 32, 32, width=3, padding="VALID")
     result = tf.nn.tanh(result)
     result = tf.nn.dropout(result, keep_prob)
     result = layer.conv_relu(result, 32, 10, width=1, padding="VALID")
     return result
コード例 #8
0
 def convolve(self, image, training, keep_prob):
     result = layer.conv_relu(image, 1, 24, width=28, padding="VALID")
     result = tf.nn.dropout(result, keep_prob)
     return layer.conv(result, 24, 10, width=1, padding="VALID")