Python tensorflow.contrib.slim.max_pool2d() Examples
The following are 30
code examples of tensorflow.contrib.slim.max_pool2d().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
tensorflow.contrib.slim
, or try the search function
.
Example #1
Source File: vgg16.py From tf_ctpn with MIT License | 6 votes |
def _image_to_head(self, is_training, reuse=None): with tf.variable_scope(self._scope, self._scope, reuse=reuse): net = slim.repeat(self._image, 2, slim.conv2d, 64, [3, 3], trainable=True, scope='conv1') net = slim.max_pool2d(net, [2, 2], padding='SAME', scope='pool1') net = slim.repeat(net, 2, slim.conv2d, 128, [3, 3], trainable=True, scope='conv2') net = slim.max_pool2d(net, [2, 2], padding='SAME', scope='pool2') net = slim.repeat(net, 3, slim.conv2d, 256, [3, 3], trainable=True, scope='conv3') net = slim.max_pool2d(net, [2, 2], padding='SAME', scope='pool3') net = slim.repeat(net, 3, slim.conv2d, 512, [3, 3], trainable=True, scope='conv4') net = slim.max_pool2d(net, [2, 2], padding='SAME', scope='pool4') net = slim.repeat(net, 3, slim.conv2d, 512, [3, 3], trainable=True, scope='conv5') self._act_summaries.append(net) self._layers['head'] = net return net
Example #2
Source File: inception_v4_model.py From training_results_v0.5 with Apache License 2.0 | 6 votes |
def block_inception_a(inputs, scope=None, reuse=None): """Builds Inception-A block for Inception v4 network.""" # By default use stride=1 and SAME padding with slim.arg_scope( [slim.conv2d, slim.avg_pool2d, slim.max_pool2d], stride=1, padding='SAME'): with variable_scope.variable_scope( scope, 'BlockInceptionA', [inputs], reuse=reuse): with variable_scope.variable_scope('Branch_0'): branch_0 = slim.conv2d(inputs, 96, [1, 1], scope='Conv2d_0a_1x1') with variable_scope.variable_scope('Branch_1'): branch_1 = slim.conv2d(inputs, 64, [1, 1], scope='Conv2d_0a_1x1') branch_1 = slim.conv2d(branch_1, 96, [3, 3], scope='Conv2d_0b_3x3') with variable_scope.variable_scope('Branch_2'): branch_2 = slim.conv2d(inputs, 64, [1, 1], scope='Conv2d_0a_1x1') branch_2 = slim.conv2d(branch_2, 96, [3, 3], scope='Conv2d_0b_3x3') branch_2 = slim.conv2d(branch_2, 96, [3, 3], scope='Conv2d_0c_3x3') with variable_scope.variable_scope('Branch_3'): branch_3 = slim.avg_pool2d(inputs, [3, 3], scope='AvgPool_0a_3x3') branch_3 = slim.conv2d(branch_3, 96, [1, 1], scope='Conv2d_0b_1x1') return array_ops.concat( axis=3, values=[branch_0, branch_1, branch_2, branch_3])
Example #3
Source File: model.py From minimal-entropy-correlation-alignment with MIT License | 6 votes |
def E(self, images, is_training = False, reuse=False): if images.get_shape()[3] == 3: images = tf.image.rgb_to_grayscale(images) with tf.variable_scope('encoder',reuse=reuse): with slim.arg_scope([slim.fully_connected], activation_fn=tf.nn.relu): with slim.arg_scope([slim.conv2d], activation_fn=tf.nn.relu, padding='VALID'): net = slim.conv2d(images, 64, 5, scope='conv1') net = slim.max_pool2d(net, 2, stride=2, scope='pool1') net = slim.conv2d(net, 128, 5, scope='conv2') net = slim.max_pool2d(net, 2, stride=2, scope='pool2') net = tf.contrib.layers.flatten(net) net = slim.fully_connected(net, 1024, activation_fn=tf.nn.relu, scope='fc3') net = slim.dropout(net, 0.5, is_training=is_training) net = slim.fully_connected(net, self.hidden_repr_size, activation_fn=tf.tanh,scope='fc4') # dropout here or not? #~ net = slim.dropout(net, 0.5, is_training=is_training) return net
Example #4
Source File: vgslspecs.py From DOTA_models with Apache License 2.0 | 6 votes |
def AddMaxPool(self, prev_layer, index): """Add a maxpool layer. Args: prev_layer: Input tensor. index: Position in model_str to start parsing Returns: Output tensor, end index in model_str. """ pattern = re.compile(R'(Mp)({\w+})?(\d+),(\d+)(?:,(\d+),(\d+))?') m = pattern.match(self.model_str, index) if m is None: return None, None name = self._GetLayerName(m.group(0), index, m.group(2)) height = int(m.group(3)) width = int(m.group(4)) y_stride = height if m.group(5) is None else m.group(5) x_stride = width if m.group(6) is None else m.group(6) self.reduction_factors[1] *= y_stride self.reduction_factors[2] *= x_stride return slim.max_pool2d( prev_layer, [height, width], [y_stride, x_stride], padding='SAME', scope=name), m.end()
Example #5
Source File: resnet_gluoncv_r3det.py From R3Det_Tensorflow with MIT License | 6 votes |
def stem_stack_3x3(net, input_channel=32, scope="C1"): with tf.variable_scope(scope): net = tf.pad(net, paddings=[[0, 0], [1, 1], [1, 1], [0, 0]]) net = slim.conv2d(net, num_outputs=input_channel, kernel_size=[3, 3], stride=2, padding="VALID", biases_initializer=None, data_format=DATA_FORMAT, scope='conv0') net = tf.pad(net, paddings=[[0, 0], [1, 1], [1, 1], [0, 0]]) net = slim.conv2d(net, num_outputs=input_channel, kernel_size=[3, 3], stride=1, padding="VALID", biases_initializer=None, data_format=DATA_FORMAT, scope='conv1') net = tf.pad(net, paddings=[[0, 0], [1, 1], [1, 1], [0, 0]]) net = slim.conv2d(net, num_outputs=input_channel*2, kernel_size=[3, 3], stride=1, padding="VALID", biases_initializer=None, data_format=DATA_FORMAT, scope='conv2') net = tf.pad(net, paddings=[[0, 0], [1, 1], [1, 1], [0, 0]]) net = slim.max_pool2d(net, kernel_size=[3, 3], stride=2, padding="VALID", data_format=DATA_FORMAT) return net
Example #6
Source File: vgslspecs.py From yolo_v2 with Apache License 2.0 | 6 votes |
def AddMaxPool(self, prev_layer, index): """Add a maxpool layer. Args: prev_layer: Input tensor. index: Position in model_str to start parsing Returns: Output tensor, end index in model_str. """ pattern = re.compile(R'(Mp)({\w+})?(\d+),(\d+)(?:,(\d+),(\d+))?') m = pattern.match(self.model_str, index) if m is None: return None, None name = self._GetLayerName(m.group(0), index, m.group(2)) height = int(m.group(3)) width = int(m.group(4)) y_stride = height if m.group(5) is None else m.group(5) x_stride = width if m.group(6) is None else m.group(6) self.reduction_factors[1] *= y_stride self.reduction_factors[2] *= x_stride return slim.max_pool2d( prev_layer, [height, width], [y_stride, x_stride], padding='SAME', scope=name), m.end()
Example #7
Source File: model.py From yolo_v2 with Apache License 2.0 | 6 votes |
def max_pool_views(self, nets_list): """Max pool across all nets in spatial dimensions. Args: nets_list: A list of 4D tensors with identical size. Returns: A tensor with the same size as any input tensors. """ batch_size, height, width, num_features = [ d.value for d in nets_list[0].get_shape().dims ] xy_flat_shape = (batch_size, 1, height * width, num_features) nets_for_merge = [] with tf.variable_scope('max_pool_views', values=nets_list): for net in nets_list: nets_for_merge.append(tf.reshape(net, xy_flat_shape)) merged_net = tf.concat(nets_for_merge, 1) net = slim.max_pool2d( merged_net, kernel_size=[len(nets_list), 1], stride=1) net = tf.reshape(net, (batch_size, height, width, num_features)) return net
Example #8
Source File: inception_resnet_v1.py From tindetheus with MIT License | 6 votes |
def reduction_b(net): with tf.variable_scope('Branch_0'): tower_conv = slim.conv2d(net, 256, 1, scope='Conv2d_0a_1x1') tower_conv_1 = slim.conv2d(tower_conv, 384, 3, stride=2, padding='VALID', scope='Conv2d_1a_3x3') with tf.variable_scope('Branch_1'): tower_conv1 = slim.conv2d(net, 256, 1, scope='Conv2d_0a_1x1') tower_conv1_1 = slim.conv2d(tower_conv1, 256, 3, stride=2, padding='VALID', scope='Conv2d_1a_3x3') with tf.variable_scope('Branch_2'): tower_conv2 = slim.conv2d(net, 256, 1, scope='Conv2d_0a_1x1') tower_conv2_1 = slim.conv2d(tower_conv2, 256, 3, scope='Conv2d_0b_3x3') tower_conv2_2 = slim.conv2d(tower_conv2_1, 256, 3, stride=2, padding='VALID', scope='Conv2d_1a_3x3') with tf.variable_scope('Branch_3'): tower_pool = slim.max_pool2d(net, 3, stride=2, padding='VALID', scope='MaxPool_1a_3x3') net = tf.concat([tower_conv_1, tower_conv1_1, tower_conv2_2, tower_pool], 3) return net
Example #9
Source File: inception_resnet_v1.py From tindetheus with MIT License | 6 votes |
def reduction_a(net, k, l, m, n): with tf.variable_scope('Branch_0'): tower_conv = slim.conv2d(net, n, 3, stride=2, padding='VALID', scope='Conv2d_1a_3x3') with tf.variable_scope('Branch_1'): tower_conv1_0 = slim.conv2d(net, k, 1, scope='Conv2d_0a_1x1') tower_conv1_1 = slim.conv2d(tower_conv1_0, l, 3, scope='Conv2d_0b_3x3') tower_conv1_2 = slim.conv2d(tower_conv1_1, m, 3, stride=2, padding='VALID', scope='Conv2d_1a_3x3') with tf.variable_scope('Branch_2'): tower_pool = slim.max_pool2d(net, 3, stride=2, padding='VALID', scope='MaxPool_1a_3x3') net = tf.concat([tower_conv, tower_conv1_2, tower_pool], 3) return net
Example #10
Source File: model.py From DOTA_models with Apache License 2.0 | 6 votes |
def max_pool_views(self, nets_list): """Max pool across all nets in spatial dimensions. Args: nets_list: A list of 4D tensors with identical size. Returns: A tensor with the same size as any input tensors. """ batch_size, height, width, num_features = [ d.value for d in nets_list[0].get_shape().dims ] xy_flat_shape = (batch_size, 1, height * width, num_features) nets_for_merge = [] with tf.variable_scope('max_pool_views', values=nets_list): for net in nets_list: nets_for_merge.append(tf.reshape(net, xy_flat_shape)) merged_net = tf.concat(nets_for_merge, 1) net = slim.max_pool2d( merged_net, kernel_size=[len(nets_list), 1], stride=1) net = tf.reshape(net, (batch_size, height, width, num_features)) return net
Example #11
Source File: resnet_gluoncv.py From R3Det_Tensorflow with MIT License | 6 votes |
def stem_stack_3x3(net, input_channel=32, scope="C1"): with tf.variable_scope(scope): net = tf.pad(net, paddings=[[0, 0], [1, 1], [1, 1], [0, 0]]) net = slim.conv2d(net, num_outputs=input_channel, kernel_size=[3, 3], stride=2, padding="VALID", biases_initializer=None, data_format=DATA_FORMAT, scope='conv0') net = tf.pad(net, paddings=[[0, 0], [1, 1], [1, 1], [0, 0]]) net = slim.conv2d(net, num_outputs=input_channel, kernel_size=[3, 3], stride=1, padding="VALID", biases_initializer=None, data_format=DATA_FORMAT, scope='conv1') net = tf.pad(net, paddings=[[0, 0], [1, 1], [1, 1], [0, 0]]) net = slim.conv2d(net, num_outputs=input_channel*2, kernel_size=[3, 3], stride=1, padding="VALID", biases_initializer=None, data_format=DATA_FORMAT, scope='conv2') net = tf.pad(net, paddings=[[0, 0], [1, 1], [1, 1], [0, 0]]) net = slim.max_pool2d(net, kernel_size=[3, 3], stride=2, padding="VALID", data_format=DATA_FORMAT) return net
Example #12
Source File: network.py From densecap-tensorflow with MIT License | 6 votes |
def _crop_pool_layer(self, bottom, rois, name): with tf.variable_scope(name) as scope: batch_ids = tf.squeeze(tf.slice(rois, [0, 0], [-1, 1], name="batch_id"), [1]) # Get the normalized coordinates of bounding boxes bottom_shape = tf.shape(bottom) height = (tf.to_float(bottom_shape[1]) - 1.) * np.float32(self._feat_stride[0]) width = (tf.to_float(bottom_shape[2]) - 1.) * np.float32(self._feat_stride[0]) x1 = tf.slice(rois, [0, 1], [-1, 1], name="x1") / width y1 = tf.slice(rois, [0, 2], [-1, 1], name="y1") / height x2 = tf.slice(rois, [0, 3], [-1, 1], name="x2") / width y2 = tf.slice(rois, [0, 4], [-1, 1], name="y2") / height # Won't be back-propagated to rois anyway, but to save time bboxes = tf.stop_gradient(tf.concat([y1, x1, y2, x2], axis=1)) pre_pool_size = cfg.POOLING_SIZE * 2 crops = tf.image.crop_and_resize(bottom, bboxes, tf.to_int32(batch_ids), [pre_pool_size, pre_pool_size], name="crops") # slim.max_pool2d has stride 2 in default return slim.max_pool2d(crops, [2, 2], padding='SAME')
Example #13
Source File: resnet_v1.py From RGB-N with MIT License | 6 votes |
def _crop_pool_layer(self, bottom, rois, name): with tf.variable_scope(name) as scope: batch_ids = tf.squeeze(tf.slice(rois, [0, 0], [-1, 1], name="batch_id"), [1]) # Get the normalized coordinates of bboxes bottom_shape = tf.shape(bottom) height = (tf.to_float(bottom_shape[1]) - 1.) * np.float32(self._feat_stride[0]) width = (tf.to_float(bottom_shape[2]) - 1.) * np.float32(self._feat_stride[0]) x1 = tf.slice(rois, [0, 1], [-1, 1], name="x1") / width y1 = tf.slice(rois, [0, 2], [-1, 1], name="y1") / height x2 = tf.slice(rois, [0, 3], [-1, 1], name="x2") / width y2 = tf.slice(rois, [0, 4], [-1, 1], name="y2") / height # Won't be backpropagated to rois anyway, but to save time bboxes = tf.stop_gradient(tf.concat(1,[y1, x1, y2, x2])) if cfg.RESNET.MAX_POOL: pre_pool_size = cfg.POOLING_SIZE * 2 crops = tf.image.crop_and_resize(bottom, bboxes, tf.to_int32(batch_ids), [pre_pool_size, pre_pool_size], name="crops") crops = slim.max_pool2d(crops, [2, 2], padding='SAME') else: crops = tf.image.crop_and_resize(bottom, bboxes, tf.to_int32(batch_ids), [cfg.POOLING_SIZE, cfg.POOLING_SIZE], name="crops") return crops # Do the first few layers manually, because 'SAME' padding can behave inconsistently # for images of different sizes: sometimes 0, sometimes 1
Example #14
Source File: pyramid_network.py From FastMaskRCNN with Apache License 2.0 | 6 votes |
def _extra_conv_arg_scope_with_bn(weight_decay=0.00001, activation_fn=None, batch_norm_decay=0.997, batch_norm_epsilon=1e-5, batch_norm_scale=True): batch_norm_params = { 'decay': batch_norm_decay, 'epsilon': batch_norm_epsilon, 'scale': batch_norm_scale, 'updates_collections': tf.GraphKeys.UPDATE_OPS, } with slim.arg_scope( [slim.conv2d], weights_regularizer=slim.l2_regularizer(weight_decay), weights_initializer=slim.variance_scaling_initializer(), activation_fn=tf.nn.relu, normalizer_fn=slim.batch_norm, 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: return arg_sc
Example #15
Source File: network.py From RGB-N with MIT License | 6 votes |
def _crop_pool_layer(self, bottom, rois, name): with tf.variable_scope(name) as scope: batch_ids = tf.squeeze(tf.slice(rois, [0, 0], [-1, 1], name="batch_id"), [1]) # Get the normalized coordinates of bboxes bottom_shape = tf.shape(bottom) height = (tf.to_float(bottom_shape[1]) - 1.) * np.float32(self._feat_stride[0]) width = (tf.to_float(bottom_shape[2]) - 1.) * np.float32(self._feat_stride[0]) x1 = tf.slice(rois, [0, 1], [-1, 1], name="x1") / width y1 = tf.slice(rois, [0, 2], [-1, 1], name="y1") / height x2 = tf.slice(rois, [0, 3], [-1, 1], name="x2") / width y2 = tf.slice(rois, [0, 4], [-1, 1], name="y2") / height # Won't be backpropagated to rois anyway, but to save time bboxes = tf.stop_gradient(tf.concat(1,[y1, x1, y2, x2])) pre_pool_size = cfg.POOLING_SIZE * 2 crops = tf.image.crop_and_resize(bottom, bboxes, tf.to_int32(batch_ids), [pre_pool_size, pre_pool_size], name="crops") return slim.max_pool2d(crops, [2, 2], padding='SAME')
Example #16
Source File: vgg16.py From densecap-tensorflow with MIT License | 6 votes |
def _image_to_head(self, is_training, reuse=None): with tf.variable_scope(self._vgg_scope, self._vgg_scope, reuse=reuse): net = slim.repeat(self._image, 2, slim.conv2d, 64, [3, 3], trainable=False, scope='conv1') net = slim.max_pool2d(net, [2, 2], padding='SAME', scope='pool1') net = slim.repeat(net, 2, slim.conv2d, 128, [3, 3], trainable=False, scope='conv2') net = slim.max_pool2d(net, [2, 2], padding='SAME', scope='pool2') net = slim.repeat(net, 3, slim.conv2d, 256, [3, 3], trainable=is_training, scope='conv3') net = slim.max_pool2d(net, [2, 2], padding='SAME', scope='pool3') net = slim.repeat(net, 3, slim.conv2d, 512, [3, 3], trainable=is_training, scope='conv4') net = slim.max_pool2d(net, [2, 2], padding='SAME', scope='pool4') net = slim.repeat(net, 3, slim.conv2d, 512, [3, 3], trainable=is_training, scope='conv5') self._act_summaries.append(net) self._layers['head'] = net return net
Example #17
Source File: resnet_fusion.py From RGB-N with MIT License | 6 votes |
def _crop_pool_layer(self, bottom, rois, name): with tf.variable_scope(name) as scope: batch_ids = tf.squeeze(tf.slice(rois, [0, 0], [-1, 1], name="batch_id"), [1]) # Get the normalized coordinates of bboxes bottom_shape = tf.shape(bottom) height = (tf.to_float(bottom_shape[1]) - 1.) * np.float32(self._feat_stride[0]) width = (tf.to_float(bottom_shape[2]) - 1.) * np.float32(self._feat_stride[0]) x1 = tf.slice(rois, [0, 1], [-1, 1], name="x1") / width y1 = tf.slice(rois, [0, 2], [-1, 1], name="y1") / height x2 = tf.slice(rois, [0, 3], [-1, 1], name="x2") / width y2 = tf.slice(rois, [0, 4], [-1, 1], name="y2") / height # Won't be backpropagated to rois anyway, but to save time bboxes = tf.stop_gradient(tf.concat(1,[y1, x1, y2, x2])) if cfg.RESNET.MAX_POOL: pre_pool_size = cfg.POOLING_SIZE * 2 crops = tf.image.crop_and_resize(bottom, bboxes, tf.to_int32(batch_ids), [pre_pool_size, pre_pool_size], name="crops") crops = slim.max_pool2d(crops, [2, 2], padding='SAME') else: crops = tf.image.crop_and_resize(bottom, bboxes, tf.to_int32(batch_ids), [cfg.POOLING_SIZE, cfg.POOLING_SIZE], name="crops") return crops # Do the first few layers manually, because 'SAME' padding can behave inconsistently # for images of different sizes: sometimes 0, sometimes 1
Example #18
Source File: inception_resnet_v1.py From TNT with GNU General Public License v3.0 | 6 votes |
def reduction_a(net, k, l, m, n): with tf.variable_scope('Branch_0'): tower_conv = slim.conv2d(net, n, 3, stride=2, padding='VALID', scope='Conv2d_1a_3x3') with tf.variable_scope('Branch_1'): tower_conv1_0 = slim.conv2d(net, k, 1, scope='Conv2d_0a_1x1') tower_conv1_1 = slim.conv2d(tower_conv1_0, l, 3, scope='Conv2d_0b_3x3') tower_conv1_2 = slim.conv2d(tower_conv1_1, m, 3, stride=2, padding='VALID', scope='Conv2d_1a_3x3') with tf.variable_scope('Branch_2'): tower_pool = slim.max_pool2d(net, 3, stride=2, padding='VALID', scope='MaxPool_1a_3x3') net = tf.concat([tower_conv, tower_conv1_2, tower_pool], 3) return net
Example #19
Source File: inception_resnet_v1.py From TNT with GNU General Public License v3.0 | 6 votes |
def reduction_b(net): with tf.variable_scope('Branch_0'): tower_conv = slim.conv2d(net, 256, 1, scope='Conv2d_0a_1x1') tower_conv_1 = slim.conv2d(tower_conv, 384, 3, stride=2, padding='VALID', scope='Conv2d_1a_3x3') with tf.variable_scope('Branch_1'): tower_conv1 = slim.conv2d(net, 256, 1, scope='Conv2d_0a_1x1') tower_conv1_1 = slim.conv2d(tower_conv1, 256, 3, stride=2, padding='VALID', scope='Conv2d_1a_3x3') with tf.variable_scope('Branch_2'): tower_conv2 = slim.conv2d(net, 256, 1, scope='Conv2d_0a_1x1') tower_conv2_1 = slim.conv2d(tower_conv2, 256, 3, scope='Conv2d_0b_3x3') tower_conv2_2 = slim.conv2d(tower_conv2_1, 256, 3, stride=2, padding='VALID', scope='Conv2d_1a_3x3') with tf.variable_scope('Branch_3'): tower_pool = slim.max_pool2d(net, 3, stride=2, padding='VALID', scope='MaxPool_1a_3x3') net = tf.concat([tower_conv_1, tower_conv1_1, tower_conv2_2, tower_pool], 3) return net
Example #20
Source File: seglink_symbol.py From seglink with GNU General Public License v3.0 | 6 votes |
def _build_network(self): with slim.arg_scope([slim.conv2d], activation_fn=tf.nn.relu, weights_regularizer=slim.l2_regularizer(self.weight_decay), weights_initializer= self.weights_initializer, biases_initializer = self.biases_initializer): with slim.arg_scope([slim.conv2d, slim.max_pool2d], padding='SAME', data_format = self.data_format): with tf.variable_scope(self.basenet_type): basenet, end_points = net_factory.get_basenet(self.basenet_type, self.inputs); with tf.variable_scope('extra_layers'): self.net, self.end_points = self._add_extra_layers(basenet, end_points); with tf.variable_scope('seglink_layers'): self._add_seglink_layers();
Example #21
Source File: resnet_v1_noise.py From RGB-N with MIT License | 6 votes |
def _crop_pool_layer(self, bottom, rois, name): with tf.variable_scope(name) as scope: batch_ids = tf.squeeze(tf.slice(rois, [0, 0], [-1, 1], name="batch_id"), [1]) # Get the normalized coordinates of bboxes bottom_shape = tf.shape(bottom) height = (tf.to_float(bottom_shape[1]) - 1.) * np.float32(self._feat_stride[0]) width = (tf.to_float(bottom_shape[2]) - 1.) * np.float32(self._feat_stride[0]) x1 = tf.slice(rois, [0, 1], [-1, 1], name="x1") / width y1 = tf.slice(rois, [0, 2], [-1, 1], name="y1") / height x2 = tf.slice(rois, [0, 3], [-1, 1], name="x2") / width y2 = tf.slice(rois, [0, 4], [-1, 1], name="y2") / height # Won't be backpropagated to rois anyway, but to save time bboxes = tf.stop_gradient(tf.concat(1,[y1, x1, y2, x2])) if cfg.RESNET.MAX_POOL: pre_pool_size = cfg.POOLING_SIZE * 2 crops = tf.image.crop_and_resize(bottom, bboxes, tf.to_int32(batch_ids), [pre_pool_size, pre_pool_size], name="crops") crops = slim.max_pool2d(crops, [2, 2], padding='SAME') else: crops = tf.image.crop_and_resize(bottom, bboxes, tf.to_int32(batch_ids), [cfg.POOLING_SIZE, cfg.POOLING_SIZE], name="crops") return crops # Do the first few layers manually, because 'SAME' padding can behave inconsistently # for images of different sizes: sometimes 0, sometimes 1
Example #22
Source File: network_noise.py From RGB-N with MIT License | 6 votes |
def _crop_pool_layer(self, bottom, rois, name): with tf.variable_scope(name) as scope: batch_ids = tf.squeeze(tf.slice(rois, [0, 0], [-1, 1], name="batch_id"), [1]) # Get the normalized coordinates of bboxes bottom_shape = tf.shape(bottom) height = (tf.to_float(bottom_shape[1]) - 1.) * np.float32(self._feat_stride[0]) width = (tf.to_float(bottom_shape[2]) - 1.) * np.float32(self._feat_stride[0]) x1 = tf.slice(rois, [0, 1], [-1, 1], name="x1") / width y1 = tf.slice(rois, [0, 2], [-1, 1], name="y1") / height x2 = tf.slice(rois, [0, 3], [-1, 1], name="x2") / width y2 = tf.slice(rois, [0, 4], [-1, 1], name="y2") / height # Won't be backpropagated to rois anyway, but to save time bboxes = tf.stop_gradient(tf.concat(1,[y1, x1, y2, x2])) pre_pool_size = cfg.POOLING_SIZE * 2 crops = tf.image.crop_and_resize(bottom, bboxes, tf.to_int32(batch_ids), [pre_pool_size, pre_pool_size], name="crops") return slim.max_pool2d(crops, [2, 2], padding='SAME')
Example #23
Source File: vgg16.py From SSH-TensorFlow with MIT License | 6 votes |
def _image_to_head(self, is_training, reuse=None): with tf.variable_scope(self._scope, self._scope, reuse=reuse): net = slim.repeat(self._image, 2, slim.conv2d, 64, [3, 3], trainable=False, scope='conv1') net = slim.max_pool2d(net, [2, 2], padding='SAME', scope='pool1') net = slim.repeat(net, 2, slim.conv2d, 128, [3, 3], trainable=False, scope='conv2') net = slim.max_pool2d(net, [2, 2], padding='SAME', scope='pool2') net = slim.repeat(net, 3, slim.conv2d, 256, [3, 3], trainable=is_training, scope='conv3') net = slim.max_pool2d(net, [2, 2], padding='SAME', scope='pool3') net = slim.repeat(net, 3, slim.conv2d, 512, [3, 3], trainable=is_training, scope='conv4') self.end_points['conv4_3'] = net net = slim.max_pool2d(net, [2, 2], padding='SAME', scope='pool4') net = slim.repeat(net, 3, slim.conv2d, 512, [3, 3], trainable=is_training, scope='conv5') self.end_points['conv5_3'] = net self._act_summaries.append(net) self._layers['head'] = net
Example #24
Source File: resnet_fusion_noise.py From RGB-N with MIT License | 6 votes |
def _crop_pool_layer(self, bottom, rois, name): with tf.variable_scope(name) as scope: batch_ids = tf.squeeze(tf.slice(rois, [0, 0], [-1, 1], name="batch_id"), [1]) # Get the normalized coordinates of bboxes bottom_shape = tf.shape(bottom) height = (tf.to_float(bottom_shape[1]) - 1.) * np.float32(self._feat_stride[0]) width = (tf.to_float(bottom_shape[2]) - 1.) * np.float32(self._feat_stride[0]) x1 = tf.slice(rois, [0, 1], [-1, 1], name="x1") / width y1 = tf.slice(rois, [0, 2], [-1, 1], name="y1") / height x2 = tf.slice(rois, [0, 3], [-1, 1], name="x2") / width y2 = tf.slice(rois, [0, 4], [-1, 1], name="y2") / height # Won't be backpropagated to rois anyway, but to save time bboxes = tf.stop_gradient(tf.concat(1,[y1, x1, y2, x2])) if cfg.RESNET.MAX_POOL: pre_pool_size = cfg.POOLING_SIZE * 2 crops = tf.image.crop_and_resize(bottom, bboxes, tf.to_int32(batch_ids), [pre_pool_size, pre_pool_size], name="crops") crops = slim.max_pool2d(crops, [2, 2], padding='SAME') else: crops = tf.image.crop_and_resize(bottom, bboxes, tf.to_int32(batch_ids), [cfg.POOLING_SIZE, cfg.POOLING_SIZE], name="crops") return crops # Do the first few layers manually, because 'SAME' padding can behave inconsistently # for images of different sizes: sometimes 0, sometimes 1
Example #25
Source File: network_fusion.py From RGB-N with MIT License | 6 votes |
def _crop_pool_layer(self, bottom, rois, name): with tf.variable_scope(name) as scope: batch_ids = tf.squeeze(tf.slice(rois, [0, 0], [-1, 1], name="batch_id"), [1]) # Get the normalized coordinates of bboxes bottom_shape = tf.shape(bottom) height = (tf.to_float(bottom_shape[1]) - 1.) * np.float32(self._feat_stride[0]) width = (tf.to_float(bottom_shape[2]) - 1.) * np.float32(self._feat_stride[0]) x1 = tf.slice(rois, [0, 1], [-1, 1], name="x1") / width y1 = tf.slice(rois, [0, 2], [-1, 1], name="y1") / height x2 = tf.slice(rois, [0, 3], [-1, 1], name="x2") / width y2 = tf.slice(rois, [0, 4], [-1, 1], name="y2") / height #revised # Won't be backpropagated to rois anyway, but to save time bboxes = tf.stop_gradient(tf.concat(1,[y1, x1, y2, x2])) pre_pool_size = cfg.POOLING_SIZE * 2 crops = tf.image.crop_and_resize(bottom, bboxes, tf.to_int32(batch_ids), [pre_pool_size, pre_pool_size], name="crops") return slim.max_pool2d(crops, [2, 2], padding='SAME')
Example #26
Source File: squeezenet.py From tf_ctpn with MIT License | 6 votes |
def _image_to_head(self, is_training, reuse=None): with slim.arg_scope(self._arg_scope(is_training, reuse)): net = slim.conv2d(self._image, 96, [3, 3], stride=1, scope='conv1') net = slim.max_pool2d(net, [2, 2], stride=2, scope='maxpool1') net = self.fire_module(net, 16, 64, scope='fire2') net = self.fire_module(net, 16, 64, scope='fire3') net = self.fire_module(net, 32, 128, scope='fire4') net = slim.max_pool2d(net, [2, 2], stride=2, scope='maxpool4') net = self.fire_module(net, 32, 128, scope='fire5') net = self.fire_module(net, 48, 192, scope='fire6') net = self.fire_module(net, 48, 192, scope='fire7') net = self.fire_module(net, 64, 256, scope='fire8') net = slim.max_pool2d(net, [2, 2], stride=2, scope='maxpool8', padding='SAME') net = self.fire_module(net, 64, 256, scope='fire9') net = slim.max_pool2d(net, [2, 2], stride=2, scope='maxpool9', padding='SAME') net = self.fire_module(net, 64, 512, scope='fire10') self._act_summaries.append(net) self._layers['head'] = net return net
Example #27
Source File: resnet_utils.py From FastMaskRCNN with Apache License 2.0 | 6 votes |
def subsample(inputs, factor, scope=None): """Subsamples the input along the spatial dimensions. Args: inputs: A `Tensor` of size [batch, height_in, width_in, channels]. factor: The subsampling factor. scope: Optional variable_scope. Returns: output: A `Tensor` of size [batch, height_out, width_out, channels] with the input, either intact (if factor == 1) or subsampled (if factor > 1). """ if factor == 1: return inputs else: return slim.max_pool2d(inputs, [1, 1], stride=factor, scope=scope)
Example #28
Source File: ckpt_restore_test.py From densecap-tensorflow with MIT License | 5 votes |
def _build_base(self): with tf.variable_scope(self._scope, self._scope): net = resnet_utils.conv2d_same(self._image, 64, 7, stride=2, scope='conv1') net = tf.pad(net, [[0, 0], [1, 1], [1, 1], [0, 0]]) net = slim.max_pool2d(net, [3, 3], stride=2, padding='VALID', scope='pool1') return net
Example #29
Source File: nets.py From DeepMatchVO with MIT License | 5 votes |
def maxpool(x, kernel_size): p = np.floor((kernel_size - 1) / 2).astype(np.int32) p_x = tf.pad(x, [[0, 0], [p, p], [p, p], [0, 0]]) return slim.max_pool2d(p_x, kernel_size)
Example #30
Source File: mtcnn_model.py From Gather-Deployment with MIT License | 5 votes |
def R_Net(inputs,label=None,bbox_target=None,landmark_target=None,training=True): with slim.arg_scope([slim.conv2d], activation_fn = prelu, weights_initializer=slim.xavier_initializer(), biases_initializer=tf.zeros_initializer(), weights_regularizer=slim.l2_regularizer(0.0005), padding='valid'): print( inputs.get_shape()) net = slim.conv2d(inputs, num_outputs=28, kernel_size=[3,3], stride=1, scope="conv1") print( net.get_shape()) net = slim.max_pool2d(net, kernel_size=[3, 3], stride=2, scope="pool1", padding='SAME') print( net.get_shape()) net = slim.conv2d(net,num_outputs=48,kernel_size=[3,3],stride=1,scope="conv2") print( net.get_shape()) net = slim.max_pool2d(net,kernel_size=[3,3],stride=2,scope="pool2") print( net.get_shape()) net = slim.conv2d(net,num_outputs=64,kernel_size=[2,2],stride=1,scope="conv3") print( net.get_shape()) fc_flatten = slim.flatten(net) print( fc_flatten.get_shape()) fc1 = slim.fully_connected(fc_flatten, num_outputs=128,scope="fc1") print( fc1.get_shape()) #batch*2 cls_prob = slim.fully_connected(fc1,num_outputs=2,scope="cls_fc",activation_fn=tf.nn.softmax) print( cls_prob.get_shape()) #batch*4 bbox_pred = slim.fully_connected(fc1,num_outputs=4,scope="bbox_fc",activation_fn=None) print( bbox_pred.get_shape()) #batch*10 landmark_pred = slim.fully_connected(fc1,num_outputs=10,scope="landmark_fc",activation_fn=None) print( landmark_pred.get_shape()) #train if training: cls_loss = cls_ohem(cls_prob,label) bbox_loss = bbox_ohem(bbox_pred,bbox_target,label) accuracy = cal_accuracy(cls_prob,label) landmark_loss = landmark_ohem(landmark_pred,landmark_target,label) L2_loss = tf.add_n(slim.losses.get_regularization_losses()) return cls_loss,bbox_loss,landmark_loss,L2_loss,accuracy else: return cls_prob,bbox_pred,landmark_pred