Ejemplo n.º 1
0
def reductionA(name, x):

    with tf.variable_scope(name) as scope:
        layer_ = max_pool('max_pool_0', x, k=3, s=2, padding='VALID')

        layer__ = convolution2d('cnn__0', x, 192, k=3, s=2, padding='VALID')

        layer___ = convolution2d('cnn___0', x, 224, k=1, s=1, padding='SAME')
        layer___ = convolution2d('cnn___1',
                                 layer___,
                                 256,
                                 k=3,
                                 s=1,
                                 padding='SAME')
        layer___ = convolution2d('cnn___2',
                                 layer___,
                                 385,
                                 k=3,
                                 s=2,
                                 padding='VALID')

        layer_join = tf.concat([layer_, layer__, layer___],
                               axis=3,
                               name='join')
        print 'layer_name :', 'join'
        print 'layer_shape :', layer_join.get_shape()
    return layer_join
Ejemplo n.º 2
0
def stem(name , x):
    with tf.variable_scope(name) as scope:
        layer=convolution2d('cnn_0',x,32,k=3,s=2 , padding='VALID')
        layer = convolution2d('cnn_1',layer, 32, k = 3, s = 1, padding = 'VALID')
        layer = convolution2d('cnn_2', layer, 64, k=3, s=1, padding='SAME')
        layer_1 = max_pool('max_3', layer, k=3, s=2, padding='VALID')
        layer_2 = convolution2d('cnn_3_1', layer, 96, k=3, s=2, padding='VALID')
        layer_join=tf.concat([layer_1,layer_2] , axis=3 , name='join')
        print 'layer_name :','join'
        print 'layer_shape :',layer_join.get_shape()
    return layer_join
Ejemplo n.º 3
0
def blockC(name, x):
    with tf.variable_scope(name) as scope:
        layer = avg_pool('avg_pool', x, k=2, s=1)
        layer = convolution2d('cnn', layer, 256, k=1, s=1)

        layer_ = convolution2d('cnn_0', x, 256, k=1, s=1)

        layer__ = convolution2d('cnn__0', x, 384, k=1, s=1)
        layer__0 = convolution2d_manual('cnn__1_0',
                                        layer__,
                                        256,
                                        k_h=1,
                                        k_w=3,
                                        s=1)
        layer__1 = convolution2d_manual('cnn__1_1',
                                        layer__,
                                        256,
                                        k_h=3,
                                        k_w=1,
                                        s=1)

        layer___ = convolution2d('cnn___0', x, 384, k=1, s=1)
        layer___ = convolution2d_manual('cnn___1',
                                        layer___,
                                        448,
                                        k_h=1,
                                        k_w=3,
                                        s=1)
        layer___ = convolution2d_manual('cnn___2',
                                        layer___,
                                        512,
                                        k_h=3,
                                        k_w=1,
                                        s=1)
        layer___0 = convolution2d_manual('cnn___3_0',
                                         layer___,
                                         256,
                                         k_h=3,
                                         k_w=1,
                                         s=1)
        layer___1 = convolution2d_manual('cnn___3_1',
                                         layer___,
                                         256,
                                         k_h=1,
                                         k_w=3,
                                         s=1)
        layer_join = tf.concat(
            [layer, layer_, layer__0, layer__1, layer___0, layer___1],
            axis=3,
            name='join')
        print 'layer_name :', 'join'
        print 'layer_shape :', layer_join.get_shape()
        return layer_join
Ejemplo n.º 4
0
def blockB(name, x):
    with tf.variable_scope(name) as scope:
        layer = avg_pool('avg_pool', x, k=2, s=1)
        layer = convolution2d('cnn', layer, 128, k=1, s=1)

        layer_ = convolution2d('cnn_0', x, 384, k=1, s=1)

        layer__ = convolution2d('cnn__0', x, 192, k=1, s=1)
        layer__ = convolution2d_manual('cnn__1',
                                       layer__,
                                       224,
                                       k_h=1,
                                       k_w=7,
                                       s=1)
        layer__ = convolution2d_manual('cnn__2',
                                       layer__,
                                       256,
                                       k_h=1,
                                       k_w=7,
                                       s=1)

        layer___ = convolution2d('cnn___0', x, 192, k=1, s=1)
        layer___ = convolution2d_manual('cnn___1',
                                        layer___,
                                        192,
                                        k_h=1,
                                        k_w=7,
                                        s=1)
        layer___ = convolution2d_manual('cnn___2',
                                        layer___,
                                        224,
                                        k_h=7,
                                        k_w=1,
                                        s=1)
        layer___ = convolution2d_manual('cnn___3',
                                        layer___,
                                        224,
                                        k_h=1,
                                        k_w=7,
                                        s=1)
        layer___ = convolution2d_manual('cnn___4',
                                        layer___,
                                        256,
                                        k_h=7,
                                        k_w=1,
                                        s=1)

        layer_join = tf.concat([layer, layer_, layer__, layer___],
                               axis=3,
                               name='join')
        print 'layer_name :', 'join'
        print 'layer_shape :', layer_join.get_shape()
    return layer_join
Ejemplo n.º 5
0
def stem_1(name , x ):
    with tf.variable_scope(name) as scope:
        layer = convolution2d('cnn_0', x, 64, k=1, s=1)
        layer = convolution2d('cnn_1', layer, 96, k=3, s=1, padding='VALID')
        layer_ = convolution2d('cnn__0', x, 64, k=1, s=1)
        layer_ = convolution2d_manual('cnn__1', layer_, 64, k_h=7,k_w=1, s=1)
        layer_ = convolution2d_manual('cnn__2', layer_, 64, k_h=1,k_w=7,s=1 )
        layer_ = convolution2d('cnn__3', layer_, 96, k=3, s=1, padding='VALID')

        layer_join = tf.concat([layer, layer_], axis=3, name='join')
        print 'layer_name :','join'
        print 'layer_shape :',layer_join.get_shape()
    return layer_join
Ejemplo n.º 6
0
def resnet_blockC(name, x):
    with tf.variable_scope(name) as scope:
        layer = convolution2d('cnn0', x, 192, 1, 1)
        layer_ = convolution2d('cnn_0', x, 192, 1, 1)
        layer_ = convolution2d_manual('cnn_1', layer_, 192, k_h=1, k_w=3, s=1)
        layer_ = convolution2d_manual('cnn_2', layer_, 192, k_h=3, k_w=1, s=1)
        layer_join = tf.concat([layer, layer_], axis=3, name='join')
        layer_join = convolution2d('layer_join_cnn', layer_join, 1792, 1, 1)
        if x.get_shape()[-1] != layer_join.get_shape()[-1]:
            x=convolution2d('upscale_dimension',x, layer_join.get_shape()[-1] , k=1,s=1)
        layer_join = tf.add(x, layer_join, 'add')
        print 'layer_name :', 'join'
        print 'layer_shape :', layer_join.get_shape()
        return layer_join
Ejemplo n.º 7
0
def stem_2(name ,x ):
    with tf.variable_scope(name) as scope:
        layer= convolution2d('cnn_0' , x, 192,k=3,s=2,padding='VALID')
        layer_=max_pool('max__0' , x, k=3 , s=2 , padding = 'VALID')
        layer_join = tf.concat([layer , layer_] , axis = 3 ,name='join')
        print 'layer_name :','join'
        print 'layer_shape :',layer_join.get_shape()
    return layer_join
Ejemplo n.º 8
0
def rpn_bbox_layer(layer, n_anchors=9):
    with tf.variable_scope('bbox'):
        layer = convolution2d('rpn_bbox_conv',
                              layer,
                              out_ch=n_anchors * 4,
                              k=1,
                              act=None,
                              s=1)
        layer = tf.identity(layer, name='cls_output')
        print '** cls layer shape : {}'.format(np.shape(layer))  #(1, ?, ?, 18)
    return layer
Ejemplo n.º 9
0
def simple_convnet(x_):
    print '###### Convolution Network building.... '
    print
    kernels=[5, 3, 3, 3, 3]
    out_channels=[16, 16, 32, 64, 128]
    strides = [2, 2, 1, 2 ,1 ]
    layer=x_
    for i in range(5):
        layer = convolution2d(name='conv_{}'.format(i), x=layer, out_ch=out_channels[i], k=kernels[i], s=strides[i],
                              padding='SAME')
    top_conv = tf.identity(layer , 'top_conv')
    _feat_stride = np.prod(strides)
    return top_conv , _feat_stride
Ejemplo n.º 10
0
    def simple_convnet(self, out_chs, kernels, strides, n_classes):
        layer = apply_aug_lv0(self.x_,
                              aug_lv0,
                              self.phase_train,
                              crop_h=self.img_h,
                              crop_w=self.img_w)
        layer = layer

        assert len(out_chs) == len(kernels) == len(strides)
        for i in range(len(out_chs)):
            layer = convolution2d('conv{}'.format(i), layer, out_chs[i],
                                  kernels[i], strides[i])
        top_conv = tf.identity(layer, 'top_conv')
        self.logits = gap('gap', top_conv, n_classes)
Ejemplo n.º 11
0
def resnet_blockB(name , x):
    with tf.variable_scope(name) as scope:

        layer = convolution2d('cnn0', x, 32, 1, 1)
        layer_ = convolution2d('cnn_0', x, 32, 1, 1)
        layer_ = convolution2d('cnn_1', layer_, 32, 3, 1)
        layer__ = convolution2d('cnn__0', x, 32, 1, 1)
        layer__ = convolution2d('cnn__1', layer__, 32, 3, 1)
        layer__ = convolution2d('cnn__2', layer__, 32, 3, 1)

        layer_join=tf.concat([layer , layer_ , layer__] , axis=3 , name='join')
        layer_join=convolution2d('layer_join_cnn' , layer_join ,256, 1,1 )

        if x.get_shape()[-1] != layer_join.get_shape()[-1]:
            x=convolution2d('upscale_dimension',x, layer_join.get_shape()[-1] , k=1,s=1)
        layer_join=tf.add(x,layer_join )
        return layer_join
Ejemplo n.º 12
0
def reductionC(name ,x ):
    with tf.variable_scope(name) as scope:
        layer=max_pool('max_pool0' , x ,3,2 , padding='VALID')

        layer_=convolution2d('cnn_0',x , 256,1,1)
        layer_=convolution2d('cnn_1',layer_, 384 , 3,1 , padding='VALID')

        layer__ = convolution2d('cnn_0', x, 256, 1, 1)
        layer__ = convolution2d('cnn_1', layer__, 256, 3, 1 , padding='VALID')

        layer___= convolution2d('cnn__0',x, 256 , 1,1)
        layer___= convolution2d('cnn__1',layer___,256 , 3,1)
        layer___= convolution2d('cnn__2',layer___,256 , 3,1 , padding='VALID')

        layer_join= tf.concat([layer , layer_ , layer__ , layer___], axis=3 , name='join' )
        return layer_join
Ejemplo n.º 13
0
def blockA(name , x):
    with tf.variable_scope(name) as scope:
        layer = avg_pool('avg_pool', x, k=2, s=1)
        layer = convolution2d('cnn', layer, 96, k=1, s=1)

        layer_ = convolution2d('cnn_0', x, 96, k=1, s=1)

        layer__ = convolution2d('cnn__0', x, 64, k=1, s=1)
        layer__ = convolution2d('cnn__1', layer__,96, k=3, s=1)

        layer___ = convolution2d('cnn___0', x,64, k=1, s=1)
        layer___ = convolution2d('cnn___1',layer___,96, k=3, s=1)
        layer___ = convolution2d('cnn___2',layer___,96, k=3, s=1)

        layer_join = tf.concat([layer, layer_, layer__, layer___], axis=3, name='join')
        print 'layer_name :', 'join'
        print 'layer_shape :', layer_join.get_shape()
    return layer_join
Ejemplo n.º 14
0
import numpy as np
import utils
from inception_v4 import stem, stem_1, stem_2, reductionB, reductionA, blockA, blockB, blockC, resnet_blockA, resnet_blockB, resnet_blockC
##########################setting############################

image_height, image_width, image_color_ch, n_classes, train_imgs, train_labs, test_imgs, test_labs = data.mnist_28x28(
)
x_ = tf.placeholder(dtype=tf.float32,
                    shape=[None, image_height, image_width, image_color_ch],
                    name='x_')
y_ = tf.placeholder(dtype=tf.int32, shape=[None, n_classes], name='y_')
phase_train = tf.placeholder(dtype=tf.bool, name='phase_train')
batch_size = 60
##########################structure##########################

layer, conv1_summary_tensor = convolution2d('conv1', x_, 64)
#layer = batch_norm_1(layer, phase_train, 'bn0')
layer = batch_norm_2(layer, phase_train, 'bn0')  # best learning rate ==> 0.1
layer = max_pool('max_pool1', layer)
layer, topconv_summary_tensor = convolution2d('top_conv', layer, 128)
layer = batch_norm_2(layer, phase_train,
                     'bn1')  # best learning rate ==> 0.01 batch norm이 많아지면
layer, fc_summary_tensor = affine('fully_connect',
                                  layer,
                                  1024,
                                  keep_prob=0.5,
                                  phase_train=phase_train)
layer = batch_norm_1(layer, phase_train, 'bn2')
y_conv = logits('end_layer', layer, n_classes)

merged = tf.summary.merge_all()
Ejemplo n.º 15
0
out_chs = [32, 32, 64, 64, 64, 128, 128, 128, 256, 256, 256, 512, 512]
filters = [5, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
strides = [2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

#for Mnist version
pool_indices = [1, 4, 7, 10]
out_chs = [32, 32, 64, 64, 64]
filters = [5, 3, 5, 3, 3]
strides = [2, 1, 2, 1, 1]  #,1,1,1,1,1,1,1,1]

#Building Network
layer = x_
assert len(out_chs) == len(filters)
n_layers = len(out_chs)
for i in range(n_layers):
    layer = convolution2d('conv_{}'.format(i), layer, out_chs[i], s=1)
    if i in pool_indices:
        'max pool'
        layer = max_pool('maxPool_{}'.format(i), layer)

top_conv = tf.identity(layer, 'top_conv')
logits = ram('ram', top_conv)

#logits=ram('ram' ,  top_conv)
# Build Optimizer
pred,pred_cls , cost , train_op,correct_pred ,accuracy = \
    algorithm(y_conv=logits , y_=y_ ,learning_rate=lr , optimizer='sgd' , use_l2_loss=True ,activation='sigmoid' , cost_func='mse')

sess = tf.Session()
init = tf.group(tf.global_variables_initializer(),
                tf.local_variables_initializer())