快速抽取resnet_v2_152中间的特征层

一、背景

        用resnet提取对象特征时,往往中间层也会包含一些细节信息,所以有时候会将中间层的特征抽取出来,本文将介绍如何抽取中间层的特征。

二、准备代码

import tensorflow as tf

from tensorflow.contrib import slim
from tensorflow.contrib.slim.nets import resnet_v2

def resnet_arg_scope(self, is_training=True,  # 训练标记
                     weight_decay=0.0001,  # 权重衰减速率
                     batch_norm_decay=0.997,  # BN的衰减速率
                     batch_norm_epsilon=1e-5,  # BN的epsilon默认1e-5
                     batch_norm_scale=True):  # BN的scale默认值

    batch_norm_params = {  # 定义batch normalization(标准化)的参数字典
        'is_training': is_training,
        'decay': batch_norm_decay,
        'epsilon': batch_norm_epsilon,
        'scale': batch_norm_scale,
        'updates_collections': tf.GraphKeys.UPDATE_OPS,
    }

    with slim.arg_scope(  # 通过slim.arg_scope将[slim.conv2d]的几个默认参数设置好
            [slim.conv2d],
            weights_regularizer=slim.l2_regularizer(weight_decay),  # 权重正则器设置为L2正则
            weights_initializer=slim.variance_scaling_initializer(),  # 权重初始化器
            activation_fn=tf.nn.relu,  # 激活函数
            normalizer_fn=slim.batch_norm,  # 标准化器设置为BN
            normalizer_params=batch_norm_params):
        with slim.arg_scope([slim.batch_norm], **batch_norm_params):
            with slim.arg_scope([slim.max_pool2d], padding='SAME') as arg_sc:  # ResNet原论文是VALID模式,SAME模式可让特征对齐更简单
                    return arg_sc

def _image_extract_resnet(image):
    with slim.arg_scope(resnet_arg_scope(is_training=True)):
        net, end_points = resnet_v2.resnet_v2_152(image, reuse=tf.AUTO_REUSE)

        以上代码是调用resnet152的过程,抽取特征则只涉及到end_points的信息。

三、resnet-152的所有中间层名称及其大小

        直接对endpoint进行输出,然后整理一下就可以得到所有中间层的信息。整理的结果如下:

('resnet_v2_152/conv1', shape=(1, 112, 112, 64)), 

('resnet_v2_152/block1/unit_1/bottleneck_v2/shortcut', shape=(1, 56, 56, 256)), 
('resnet_v2_152/block1/unit_1/bottleneck_v2/conv1', shape=(1, 56, 56, 64)), 
('resnet_v2_152/block1/unit_1/bottleneck_v2/conv2', shape=(1, 56, 56, 64)), 
('resnet_v2_152/block1/unit_1/bottleneck_v2/conv3', shape=(1, 56, 56, 256)), 
('resnet_v2_152/block1/unit_1/bottleneck_v2', shape=(1, 56, 56, 256)), 
('resnet_v2_152/block1/unit_2/bottleneck_v2/conv1', shape=(1, 56, 56, 64)), 
('resnet_v2_152/block1/unit_2/bottleneck_v2/conv2', shape=(1, 56, 56, 64)), 
('resnet_v2_152/block1/unit_2/bottleneck_v2/conv3', shape=(1, 56, 56, 256)), 
('resnet_v2_152/block1/unit_2/bottleneck_v2', shape=(1, 56, 56, 256)), 
('resnet_v2_152/block1/unit_3/bottleneck_v2/conv1', shape=(1, 56, 56, 64)), 
('resnet_v2_152/block1/unit_3/bottleneck_v2/conv2', shape=(1, 28, 28, 64)), 
('resnet_v2_152/block1/unit_3/bottleneck_v2/conv3', shape=(1, 28, 28, 256)), 
('resnet_v2_152/block1/unit_3/bottleneck_v2', shape=(1, 28, 28, 256)), 
('resnet_v2_152/block1', shape=(1, 28, 28, 256)), 

('resnet_v2_152/block2/unit_1/bottleneck_v2/shortcut', shape=(1, 28, 28, 512)), 
('resnet_v2_152/block2/unit_1/bottleneck_v2/conv1', shape=(1, 28, 28, 128)), 
('resnet_v2_152/block2/unit_1/bottleneck_v2/conv2', shape=(1, 28, 28, 128)), 
('resnet_v2_152/block2/unit_1/bottleneck_v2/conv3', shape=(1, 28, 28, 512)), 
('resnet_v2_152/block2/unit_1/bottleneck_v2', shape=(1, 28, 28, 512)), 
('resnet_v2_152/block2/unit_2/bottleneck_v2/conv1', shape=(1, 28, 28, 128)), 
('resnet_v2_152/block2/unit_2/bottleneck_v2/conv2', shape=(1, 28, 28, 128)), 
('resnet_v2_152/block2/unit_2/bottleneck_v2/conv3', shape=(1, 28, 28, 512)), 
('resnet_v2_152/block2/unit_2/bottleneck_v2', shape=(1, 28, 28, 512)), 
('resnet_v2_152/block2/unit_3/bottleneck_v2/conv1', shape=(1, 28, 28, 128)), 
('resnet_v2_152/block2/unit_3/bottleneck_v2/conv2', shape=(1, 28, 28, 128)), 
('resnet_v2_152/block2/unit_3/bottleneck_v2/conv3', shape=(1, 28, 28, 512)), 
('resnet_v2_152/block2/unit_3/bottleneck_v2', shape=(1, 28, 28, 512)), 
('resnet_v2_152/block2/unit_4/bottleneck_v2/conv1', shape=(1, 28, 28, 128)), 
('resnet_v2_152/block2/unit_4/bottleneck_v2/conv2', shape=(1, 28, 28, 128)), 
('resnet_v2_152/block2/unit_4/bottleneck_v2/conv3', shape=(1, 28, 28, 512)), 
('resnet_v2_152/block2/unit_4/bottleneck_v2', shape=(1, 28, 28, 512)), 
('resnet_v2_152/block2/unit_5/bottleneck_v2/conv1', shape=(1, 28, 28, 128)), 
('resnet_v2_152/block2/unit_5/bottleneck_v2/conv2', shape=(1, 28, 28, 128)), 
('resnet_v2_152/block2/unit_5/bottleneck_v2/conv3', shape=(1, 28, 28, 512)), 
('resnet_v2_152/block2/unit_5/bottleneck_v2', shape=(1, 28, 28, 512)), 
('resnet_v2_152/block2/unit_6/bottleneck_v2/conv1', shape=(1, 28, 28, 128)), 
('resnet_v2_152/block2/unit_6/bottleneck_v2/conv2', shape=(1, 28, 28, 128)), 
('resnet_v2_152/block2/unit_6/bottleneck_v2/conv3', shape=(1, 28, 28, 512)), 
('resnet_v2_152/block2/unit_6/bottleneck_v2', shape=(1, 28, 28, 512)), 
('resnet_v2_152/block2/unit_7/bottleneck_v2/conv1', shape=(1, 28, 28, 128)), 
('resnet_v2_152/block2/unit_7/bottleneck_v2/conv2', shape=(1, 28, 28, 128)), 
('resnet_v2_152/block2/unit_7/bottleneck_v2/conv3', shape=(1, 28, 28, 512)), 
('resnet_v2_152/block2/unit_7/bottleneck_v2', shape=(1, 28, 28, 512)), 
('resnet_v2_152/block2/unit_8/bottleneck_v2/conv1', shape=(1, 28, 28, 128)), 
('resnet_v2_152/block2/unit_8/bottleneck_v2/conv2', shape=(1, 14, 14, 128)), 
('resnet_v2_152/block2/unit_8/bottleneck_v2/conv3', shape=(1, 14, 14, 512)), 
('resnet_v2_152/block2/unit_8/bottleneck_v2', shape=(1, 14, 14, 512)), 
('resnet_v2_152/block2', shape=(1, 14, 14, 512)), 

('resnet_v2_152/block3/unit_1/bottleneck_v2/shortcut', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_1/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_1/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_1/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_1/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_2/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_2/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_2/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_2/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_3/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_3/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_3/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_3/bottleneck_v2', shape=(1, 14, 14, 1024)),
('resnet_v2_152/block3/unit_4/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_4/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_4/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_4/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_5/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_5/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_5/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_5/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_6/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_6/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_6/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_6/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_7/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_7/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_7/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_7/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_8/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_8/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_8/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_8/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_9/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_9/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_9/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_9/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_10/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_10/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_10/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_10/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_11/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_11/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_11/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_11/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_12/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_12/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_12/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_12/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_13/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_13/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_13/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_13/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_14/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_14/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_14/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_14/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_15/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_15/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_15/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_15/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_16/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_16/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_16/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_16/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_17/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_17/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_17/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_17/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_18/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_18/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_18/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_18/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_19/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_19/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_19/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_19/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_20/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_20/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_20/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_20/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_21/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_21/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_21/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_21/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_22/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_22/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_22/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_22/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_23/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_23/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_23/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_23/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_24/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_24/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_24/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_24/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_25/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_25/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_25/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_25/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_26/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_26/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_26/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_26/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_27/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_27/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_27/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_27/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_28/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_28/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_28/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_28/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_29/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_29/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_29/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_29/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_30/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_30/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_30/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_30/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_31/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_31/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_31/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_31/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_32/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_32/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_32/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_32/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_33/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_33/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_33/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_33/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_34/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_34/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_34/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_34/bottleneck_v2', shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_35/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_35/bottleneck_v2/conv2', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_35/bottleneck_v2/conv3', shape=(1, 14, 14, 1024)),
('resnet_v2_152/block3/unit_35/bottleneck_v2',  shape=(1, 14, 14, 1024)), 
('resnet_v2_152/block3/unit_36/bottleneck_v2/conv1', shape=(1, 14, 14, 256)), 
('resnet_v2_152/block3/unit_36/bottleneck_v2/conv2', shape=(1, 7, 7, 256)), 
('resnet_v2_152/block3/unit_36/bottleneck_v2/conv3', shape=(1, 7, 7, 1024)), 
('resnet_v2_152/block3/unit_36/bottleneck_v2', shape=(1, 7, 7, 1024)), 
('resnet_v2_152/block3', shape=(1, 7, 7, 1024)), 

('resnet_v2_152/block4/unit_1/bottleneck_v2/shortcut', shape=(1, 7, 7, 2048)), 
('resnet_v2_152/block4/unit_1/bottleneck_v2/conv1', shape=(1, 7, 7, 512)), 
('resnet_v2_152/block4/unit_1/bottleneck_v2/conv2', shape=(1, 7, 7, 512)), 
('resnet_v2_152/block4/unit_1/bottleneck_v2/conv3', shape=(1, 7, 7, 2048)), 
('resnet_v2_152/block4/unit_1/bottleneck_v2', shape=(1, 7, 7, 2048)), 
('resnet_v2_152/block4/unit_2/bottleneck_v2/conv1', shape=(1, 7, 7, 512)), 
('resnet_v2_152/block4/unit_2/bottleneck_v2/conv2', shape=(1, 7, 7, 512)), 
('resnet_v2_152/block4/unit_2/bottleneck_v2/conv3', shape=(1, 7, 7, 2048)), 
('resnet_v2_152/block4/unit_2/bottleneck_v2', shape=(1, 7, 7, 2048)), 
('resnet_v2_152/block4/unit_3/bottleneck_v2/conv1', shape=(1, 7, 7, 512)), 
('resnet_v2_152/block4/unit_3/bottleneck_v2/conv2', shape=(1, 7, 7, 512)), 
('resnet_v2_152/block4/unit_3/bottleneck_v2/conv3', shape=(1, 7, 7, 2048)), 
('resnet_v2_152/block4/unit_3/bottleneck_v2', shape=(1, 7, 7, 2048)), 
('resnet_v2_152/block4', shape=(1, 7, 7, 2048))])

如果想要调用中间的某一层可以如下设置:

def _image_extract_resnet(self, image, label, driven=False):
    # 图像特征处理模块
    with slim.arg_scope(self.resnet_arg_scope(is_training=True)):
        net, end_points = resnet_v2.resnet_v2_152(image, reuse=tf.AUTO_REUSE)

        # 想要别的层的话替换[]中的内容就可以了
        feature = end_points['resnet_v2_152/conv1']

    return net, feature 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全部梭哈迟早暴富

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值