import tensorflow as tf

    # x.get_shape()[-1].value : 3
    in_channels = x.get_shape()[-1].value
    with tf.variable_scope(layer_name):
        w = tf.get_variable(name='weights',
                            trainable=is_pretrain,
                            shape=[kernel_size[0],kernel_size[1],in_channels,out_channels],
                            initializer=tf.contrib.layers.xavier_initializer())
        b = tf.get_variable(name='bias',
                            trainable=is_pretrain,
                            shape=[out_channels],
                            initializer=tf.constant_initializer(0.0))
        x = tf.nn.conv2d(x,w,strides,padding='SAME',name='conv')
        x = tf.nn.bias_add(x,b,name='bias_add')
        x = tf.nn.relu(x,name='relu')

        return x

def pool(layer_name, x, kernel_size=[1,2,2,1], strides=[1,2,2,1], is_max_pool=True):
    '''
    Pooling op
    Args:

    Returns:

