CTPN backbone

CTPN代码中使用的backbone是VGG16。介绍VGG16的文章实在是太多了,我就不写了。

直接上代码吧。


def vgg_16(inputs, scope='vgg_16'):

    with tf.variable_scope(scope, 'vgg_16', [inputs])as sc:

    with slim.arg_scope([slim.conv2d, slim.fully_connected, slim.max_pool2d]):

    net = slim.repeat(inputs, 2, slim.conv2d, 64, [3, 3], scope='conv1')

    net = slim.max_pool2d(net, [2, 2], scope='pool1')

    net = slim.repeat(net, 2, slim.conv2d, 128, [3, 3], scope='conv2')

    net = slim.max_pool2d(net, [2, 2], scope='pool2')

    net = slim.repeat(net, 3, slim.conv2d, 256, [3, 3], scope='conv3')

    net = slim.max_pool2d(net, [2, 2], scope='pool3')

    net = slim.repeat(net, 3, slim.conv2d, 512, [3, 3], scope='conv4')

    net = slim.max_pool2d(net, [2, 2], scope='pool4')

    net = slim.repeat(net, 3, slim.conv2d, 512, [3, 3], scope='conv5')

return net

这是tensorflow1中slim库的实现。这和一般实现不一样的地方就是,slim中用了slim.repeat(),使得代码更加简洁,可读性也不低。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。