Python tensorflow.contrib.layers.variance_scaling_initializer() Examples
The following are 30
code examples of tensorflow.contrib.layers.variance_scaling_initializer().
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.layers
, or try the search function
.
Example #1
Source File: layers.py From tensornets with MIT License | 6 votes |
def darkconv(*args, **kwargs): scope = kwargs.pop('scope', None) onlyconv = kwargs.pop('onlyconv', False) with tf.variable_scope(scope): conv_kwargs = { 'padding': 'SAME', 'activation_fn': None, 'weights_initializer': variance_scaling_initializer(1.53846), 'weights_regularizer': l2(5e-4), 'biases_initializer': None, 'scope': 'conv'} if onlyconv: conv_kwargs.pop('biases_initializer') with arg_scope([conv2d], **conv_kwargs): x = conv2d(*args, **kwargs) if onlyconv: return x x = batch_norm(x, decay=0.99, center=False, scale=True, epsilon=1e-5, scope='bn') x = bias_add(x, scope='bias') x = leaky_relu(x, alpha=0.1, name='lrelu') return x
Example #2
Source File: gait_nn.py From gait-recognition with BSD 3-Clause "New" or "Revised" License | 6 votes |
def get_arg_scope(is_training): weight_decay_l2 = 0.1 batch_norm_decay = 0.999 batch_norm_epsilon = 0.0001 with slim.arg_scope([slim.conv2d, slim.fully_connected, layers.separable_convolution2d], weights_regularizer = slim.l2_regularizer(weight_decay_l2), biases_regularizer = slim.l2_regularizer(weight_decay_l2), weights_initializer = layers.variance_scaling_initializer(), ): batch_norm_params = { 'decay': batch_norm_decay, 'epsilon': batch_norm_epsilon } with slim.arg_scope([slim.batch_norm, slim.dropout], is_training = is_training): with slim.arg_scope([slim.batch_norm], **batch_norm_params): with slim.arg_scope([slim.conv2d, layers.separable_convolution2d, layers.fully_connected], activation_fn = tf.nn.elu, normalizer_fn = slim.batch_norm, normalizer_params = batch_norm_params) as scope: return scope
Example #3
Source File: build_resnet.py From tensorflow-litterbox with Apache License 2.0 | 6 votes |
def resnet_arg_scope( weight_decay=0.0001, 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, } l2_regularizer = layers.l2_regularizer(weight_decay) arg_scope_layers = arg_scope( [layers.conv2d, my_layers.preact_conv2d, layers.fully_connected], weights_initializer=layers.variance_scaling_initializer(), weights_regularizer=l2_regularizer, activation_fn=tf.nn.relu) arg_scope_conv = arg_scope( [layers.conv2d, my_layers.preact_conv2d], normalizer_fn=layers.batch_norm, normalizer_params=batch_norm_params) with arg_scope_layers, arg_scope_conv as arg_sc: return arg_sc
Example #4
Source File: models.py From DQN-using-PyTorch-and-ML-Agents with GNU General Public License v3.0 | 6 votes |
def create_continuous_observation_encoder(observation_input, h_size, activation, num_layers, scope, reuse): """ Builds a set of hidden state encoders. :param reuse: Whether to re-use the weights within the same scope. :param scope: Graph scope for the encoder ops. :param observation_input: Input vector. :param h_size: Hidden layer size. :param activation: What type of activation function to use for layers. :param num_layers: number of hidden layers to create. :return: List of hidden layer tensors. """ with tf.variable_scope(scope): hidden = observation_input for i in range(num_layers): hidden = tf.layers.dense(hidden, h_size, activation=activation, reuse=reuse, name="hidden_{}".format(i), kernel_initializer=c_layers.variance_scaling_initializer(1.0)) return hidden
Example #5
Source File: densenet_model.py From LQ-Nets with MIT License | 6 votes |
def densenet_backbone(image, qw=1): with argscope(Conv2DQuant, nl=tf.identity, use_bias=False, W_init=variance_scaling_initializer(mode='FAN_IN'), data_format=get_arg_scope()['Conv2D']['data_format'], nbit=qw, is_quant=True if qw > 0 else False): logits = (LinearWrap(image) .Conv2DQuant('conv1', 2 * GROWTH_RATE, 7, stride=2, nl=BNReLU, is_quant=False) .MaxPooling('pool1', shape=3, stride=2, padding='SAME') # 56 .apply(add_dense_block, 'block0', 6) # 28 .apply(add_dense_block, 'block1', 12) # 14 .apply(add_dense_block, 'block2', 24) # 7 .apply(add_dense_block, 'block3', 16, last=True) .BNReLU('bnrelu_last') .GlobalAvgPooling('gap') .FullyConnected('linear', out_dim=1000, nl=tf.identity, W_init=variance_scaling_initializer(mode='FAN_IN'))()) return logits
Example #6
Source File: ops.py From UNIT-Tensorflow with MIT License | 6 votes |
def deconv(x, channels, kernel=3, stride=2, normal_weight_init=False, activation_fn='leaky', scope='deconv_0') : with tf.variable_scope(scope): if normal_weight_init: x = tf.layers.conv2d_transpose(inputs=x, filters=channels, kernel_size=kernel, kernel_initializer=tf.truncated_normal_initializer(stddev=0.02), strides=stride, padding='SAME', kernel_regularizer=tf_contrib.layers.l2_regularizer(scale=0.0001)) else: if activation_fn == 'relu' : x = tf.layers.conv2d_transpose(inputs=x, filters=channels, kernel_size=kernel, kernel_initializer=he_init(), strides=stride, padding='SAME', kernel_regularizer=tf_contrib.layers.l2_regularizer(scale=0.0001)) else : x = tf.layers.conv2d_transpose(inputs=x, filters=channels, kernel_size=kernel, strides=stride, padding='SAME', kernel_regularizer=tf_contrib.layers.l2_regularizer(scale=0.0001)) x = activation(x, activation_fn) return x
Example #7
Source File: ops.py From UNIT-Tensorflow with MIT License | 6 votes |
def conv(x, channels, kernel=3, stride=2, pad=0, normal_weight_init=False, activation_fn='leaky', scope='conv_0') : with tf.variable_scope(scope) : x = tf.pad(x, [[0,0], [pad, pad], [pad, pad], [0,0]]) if normal_weight_init : x = tf.layers.conv2d(inputs=x, filters=channels, kernel_size=kernel, kernel_initializer=tf.truncated_normal_initializer(stddev=0.02), strides=stride, kernel_regularizer=tf_contrib.layers.l2_regularizer(scale=0.0001)) else : if activation_fn == 'relu' : x = tf.layers.conv2d(inputs=x, filters=channels, kernel_size=kernel, kernel_initializer=he_init(), strides=stride, kernel_regularizer=tf_contrib.layers.l2_regularizer(scale=0.0001)) else : x = tf.layers.conv2d(inputs=x, filters=channels, kernel_size=kernel, strides=stride, kernel_regularizer=tf_contrib.layers.l2_regularizer(scale=0.0001)) x = activation(x, activation_fn) return x
Example #8
Source File: nas_network.py From models with Apache License 2.0 | 6 votes |
def nas_arg_scope(weight_decay=4e-5, batch_norm_decay=0.9997, batch_norm_epsilon=0.001, sync_batch_norm_method='None'): """Default arg scope for the NAS models.""" batch_norm_params = { # Decay for the moving averages. 'decay': batch_norm_decay, # epsilon to prevent 0s in variance. 'epsilon': batch_norm_epsilon, 'scale': True, } batch_norm = utils.get_batch_norm_fn(sync_batch_norm_method) weights_regularizer = contrib_layers.l2_regularizer(weight_decay) weights_initializer = contrib_layers.variance_scaling_initializer( factor=1 / 3.0, mode='FAN_IN', uniform=True) with arg_scope([slim.fully_connected, slim.conv2d, slim.separable_conv2d], weights_regularizer=weights_regularizer, weights_initializer=weights_initializer): with arg_scope([slim.fully_connected], activation_fn=None, scope='FC'): with arg_scope([slim.conv2d, slim.separable_conv2d], activation_fn=None, biases_initializer=None): with arg_scope([batch_norm], **batch_norm_params) as sc: return sc
Example #9
Source File: simple.py From tensorbayes with MIT License | 5 votes |
def dense(x, num_outputs, scope=None, activation=None, reuse=None, bn=False, post_bn=False, phase=None): with tf.variable_scope(scope, 'dense', reuse=reuse): # convert x to 2-D tensor dim = np.prod(x._shape_as_list()[1:]) x = tf.reshape(x, [-1, dim]) weights_shape = (x.get_shape().dims[-1], num_outputs) # dense layer weights = tf.get_variable('weights', weights_shape, initializer=variance_scaling_initializer()) biases = tf.get_variable('biases', [num_outputs], initializer=tf.zeros_initializer) output = tf.matmul(x, weights) + biases if bn: output = batch_norm(output, phase, scope='bn') if activation: output = activation(output) if post_bn: output = batch_norm(output, phase, scope='post_bn') return output
Example #10
Source File: flownet.py From UnFlow with MIT License | 5 votes |
def flownet_c(conv3_a, conv3_b, conv2_a, channel_mult=1, full_res=False): """Given two images, returns flow predictions in decreasing resolution. Uses FlowNetCorr. """ m = channel_mult with slim.arg_scope([slim.conv2d, slim.conv2d_transpose], data_format='NCHW', weights_regularizer=slim.l2_regularizer(0.0004), weights_initializer=layers.variance_scaling_initializer(), activation_fn=_leaky_relu): corr = correlation(conv3_a, conv3_b, pad=20, kernel_size=1, max_displacement=20, stride_1=1, stride_2=2) conv_redir = slim.conv2d(conv3_a, int(32 * m), 1, stride=1, scope='conv_redir') conv3_1 = slim.conv2d(tf.concat([conv_redir, corr], 1), int(256 * m), 3, stride=1, scope='conv3_1') conv4 = slim.conv2d(conv3_1, int(512 * m), 3, stride=2, scope='conv4') conv4_1 = slim.conv2d(conv4, int(512 * m), 3, stride=1, scope='conv4_1') conv5 = slim.conv2d(conv4_1, int(512 * m), 3, stride=2, scope='conv5') conv5_1 = slim.conv2d(conv5, int(512 * m), 3, stride=1, scope='conv5_1') conv6 = slim.conv2d(conv5_1, int(1024 * m), 3, stride=2, scope='conv6') conv6_1 = slim.conv2d(conv6, int(1024 * m), 3, stride=1, scope='conv6_1') res = _flownet_upconv(conv6_1, conv5_1, conv4_1, conv3_1, conv2_a, channel_mult=channel_mult, full_res=full_res) return nchw_to_nhwc(res)
Example #11
Source File: layers.py From acdc_segmenter with Apache License 2.0 | 5 votes |
def get_weight_variable(shape, name=None, type='xavier_uniform', regularize=True, **kwargs): initialise_from_constant = False if type == 'xavier_uniform': initial = xavier_initializer(uniform=True, dtype=tf.float32) elif type == 'xavier_normal': initial = xavier_initializer(uniform=False, dtype=tf.float32) elif type == 'he_normal': initial = variance_scaling_initializer(uniform=False, factor=2.0, mode='FAN_IN', dtype=tf.float32) elif type == 'he_uniform': initial = variance_scaling_initializer(uniform=True, factor=2.0, mode='FAN_IN', dtype=tf.float32) elif type == 'caffe_uniform': initial = variance_scaling_initializer(uniform=True, factor=1.0, mode='FAN_IN', dtype=tf.float32) elif type == 'simple': stddev = kwargs.get('stddev', 0.02) initial = tf.truncated_normal(shape, stddev=stddev, dtype=tf.float32) initialise_from_constant = True elif type == 'bilinear': weights = _bilinear_upsample_weights(shape) initial = tf.constant(weights, shape=shape, dtype=tf.float32) initialise_from_constant = True else: raise ValueError('Unknown initialisation requested: %s' % type) if name is None: # This keeps to option open to use unnamed Variables weight = tf.Variable(initial) else: if initialise_from_constant: weight = tf.get_variable(name, initializer=initial) else: weight = tf.get_variable(name, shape=shape, initializer=initial) if regularize: tf.add_to_collection('weight_variables', weight) return weight
Example #12
Source File: init.py From tf-variational-dropout with GNU General Public License v3.0 | 5 votes |
def pytorch_initializer(uniform=True, seed=None, dtype=dtypes.float32): return variance_scaling_initializer(factor=1./3, mode='FAN_IN', uniform=uniform, seed=seed, dtype=dtype)
Example #13
Source File: flownet.py From UnFlow with MIT License | 5 votes |
def flownet_c_features(im, channel_mult=1, reuse=None): m = channel_mult im = nhwc_to_nchw([im])[0] with slim.arg_scope([slim.conv2d], data_format='NCHW', weights_regularizer=slim.l2_regularizer(0.0004), weights_initializer=layers.variance_scaling_initializer(), activation_fn=_leaky_relu): conv1 = slim.conv2d(im, int(64 * m), 7, stride=2, scope='conv1', reuse=reuse) conv2 = slim.conv2d(conv1, int(128 * m), 5, stride=2, scope='conv2', reuse=reuse) conv3 = slim.conv2d(conv2, int(256 * m), 5, stride=2, scope='conv3', reuse=reuse) return conv1, conv2, conv3
Example #14
Source File: models.py From DQN-using-PyTorch-and-ML-Agents with GNU General Public License v3.0 | 5 votes |
def __init__(self, brain, h_size=128, lr=1e-4, n_layers=2, m_size=128, normalize=False, use_recurrent=False): LearningModel.__init__(self, m_size, normalize, use_recurrent, brain) num_streams = 1 hidden_streams = self.create_observation_streams(num_streams, h_size, n_layers) hidden = hidden_streams[0] self.dropout_rate = tf.placeholder(dtype=tf.float32, shape=[], name="dropout_rate") hidden_reg = tf.layers.dropout(hidden, self.dropout_rate) if self.use_recurrent: tf.Variable(self.m_size, name="memory_size", trainable=False, dtype=tf.int32) self.memory_in = tf.placeholder(shape=[None, self.m_size], dtype=tf.float32, name='recurrent_in') hidden_reg, self.memory_out = self.create_recurrent_encoder(hidden_reg, self.memory_in, self.sequence_length) self.memory_out = tf.identity(self.memory_out, name='recurrent_out') self.policy = tf.layers.dense(hidden_reg, self.a_size, activation=None, use_bias=False, name='pre_action', kernel_initializer=c_layers.variance_scaling_initializer(factor=0.01)) if brain.vector_action_space_type == "discrete": self.action_probs = tf.nn.softmax(self.policy) self.sample_action_float = tf.multinomial(self.policy, 1) self.sample_action_float = tf.identity(self.sample_action_float, name="action") self.sample_action = tf.cast(self.sample_action_float, tf.int32) self.true_action = tf.placeholder(shape=[None], dtype=tf.int32, name="teacher_action") self.action_oh = tf.one_hot(self.true_action, self.a_size) self.loss = tf.reduce_sum(-tf.log(self.action_probs + 1e-10) * self.action_oh) self.action_percent = tf.reduce_mean(tf.cast( tf.equal(tf.cast(tf.argmax(self.action_probs, axis=1), tf.int32), self.sample_action), tf.float32)) else: self.clipped_sample_action = tf.clip_by_value(self.policy, -1, 1) self.sample_action = tf.identity(self.clipped_sample_action, name="action") self.true_action = tf.placeholder(shape=[None, self.a_size], dtype=tf.float32, name="teacher_action") self.clipped_true_action = tf.clip_by_value(self.true_action, -1, 1) self.loss = tf.reduce_sum(tf.squared_difference(self.clipped_true_action, self.sample_action)) optimizer = tf.train.AdamOptimizer(learning_rate=lr) self.update = optimizer.minimize(self.loss)
Example #15
Source File: modules.py From squad-transformer with Apache License 2.0 | 5 votes |
def std_conv(inputs, num_filters, kernel_size=1, padding="SAME", activation_fn=None, l2_lambda=3e-7, use_bias=True, scope="Conv", reuse=None): """Standard 1D convolution, using SAME padding. Inputs: inputs: tensor. Input to the 1D conv layer. Shape (batch_size, seq_len, vec_size). num_filters: int. Depth of filter stack to use in 1D conv. kernel_size: int. Spatial extent of 1D kernel (i.e., number of timesteps the kernel covers per application). padding: string. Padding to use for 1D convolution. Defaults to "SAME". activation_fn: function. Activation function to apply to outputs before returning. If None, no activation. l2_lambda: float. L2 regularization factor to apply to the kernel weights. use_bias: bool. If true, apply a bias to the convolution outputs. Else, no bias. Returns: outputs: tensor. Outputs after convolution, bias (if any), and activation (if any) are applied. Shape (batch_size, out_seq_len, num_filters), where out_seq_len depends on the padding. """ with tf.variable_scope(scope, reuse=reuse): vec_size = inputs.get_shape()[-1] # Use Xavier initializer if no activation, otherwise use He. initializer = tf_layers.xavier_initializer if activation_fn is None else tf_layers.variance_scaling_initializer filters = tf.get_variable("filters", shape=(kernel_size, vec_size, num_filters), dtype=tf.float32, regularizer=tf_layers.l2_regularizer(scale=l2_lambda), initializer=initializer()) outputs = tf.nn.conv1d(inputs, filters, stride=1, padding=padding) if use_bias: b = tf.get_variable("b", shape=(num_filters,), dtype=tf.float32, initializer=tf.zeros_initializer()) outputs += b return outputs if activation_fn is None else activation_fn(outputs)
Example #16
Source File: models.py From DQN-using-PyTorch-and-ML-Agents with GNU General Public License v3.0 | 5 votes |
def create_dc_actor_critic(self, h_size, num_layers): """ Creates Discrete control actor-critic model. :param h_size: Size of hidden linear layers. :param num_layers: Number of hidden linear layers. """ hidden_streams = self.create_observation_streams(1, h_size, num_layers) hidden = hidden_streams[0] if self.use_recurrent: tf.Variable(self.m_size, name="memory_size", trainable=False, dtype=tf.int32) self.prev_action = tf.placeholder(shape=[None], dtype=tf.int32, name='prev_action') prev_action_oh = tf.one_hot(self.prev_action, self.a_size) hidden = tf.concat([hidden, prev_action_oh], axis=1) self.memory_in = tf.placeholder(shape=[None, self.m_size], dtype=tf.float32, name='recurrent_in') hidden, memory_out = self.create_recurrent_encoder(hidden, self.memory_in, self.sequence_length) self.memory_out = tf.identity(memory_out, name='recurrent_out') self.policy = tf.layers.dense(hidden, self.a_size, activation=None, use_bias=False, kernel_initializer=c_layers.variance_scaling_initializer(factor=0.01)) self.all_probs = tf.nn.softmax(self.policy, name="action_probs") output = tf.multinomial(self.policy, 1) self.output = tf.identity(output, name="action") value = tf.layers.dense(hidden, 1, activation=None) self.value = tf.identity(value, name="value_estimate") self.entropy = -tf.reduce_sum(self.all_probs * tf.log(self.all_probs + 1e-10), axis=1) self.action_holder = tf.placeholder(shape=[None], dtype=tf.int32) self.selected_actions = tf.one_hot(self.action_holder, self.a_size) self.all_old_probs = tf.placeholder(shape=[None, self.a_size], dtype=tf.float32, name='old_probabilities') # We reshape these tensors to [batch x 1] in order to be of the same rank as continuous control probabilities. self.probs = tf.expand_dims(tf.reduce_sum(self.all_probs * self.selected_actions, axis=1), 1) self.old_probs = tf.expand_dims(tf.reduce_sum(self.all_old_probs * self.selected_actions, axis=1), 1)
Example #17
Source File: flownet.py From DF-Net with MIT License | 5 votes |
def flownet_s(inputs, channel_mult=1, full_res=False): """Given stacked inputs, returns flow predictions in decreasing resolution. Uses FlowNetSimple. """ m = channel_mult inputs = nhwc_to_nchw([inputs])[0] with slim.arg_scope([slim.conv2d, slim.conv2d_transpose], data_format='NCHW', weights_regularizer=slim.l2_regularizer(0.0004), weights_initializer=layers.variance_scaling_initializer(), activation_fn=_leaky_relu): conv1 = slim.conv2d(inputs, int(64 * m), 7, stride=2, scope='conv1') conv2 = slim.conv2d(conv1, int(128 * m), 5, stride=2, scope='conv2') conv3 = slim.conv2d(conv2, int(256 * m), 5, stride=2, scope='conv3') conv3_1 = slim.conv2d(conv3, int(256 * m), 3, stride=1, scope='conv3_1') conv4 = slim.conv2d(conv3_1, int(512 * m), 3, stride=2, scope='conv4') conv4_1 = slim.conv2d(conv4, int(512 * m), 3, stride=1, scope='conv4_1') conv5 = slim.conv2d(conv4_1, int(512 * m), 3, stride=2, scope='conv5') conv5_1 = slim.conv2d(conv5, int(512 * m), 3, stride=1, scope='conv5_1') conv6 = slim.conv2d(conv5_1, int(1024 * m), 3, stride=2, scope='conv6') conv6_1 = slim.conv2d(conv6, int(1024 * m), 3, stride=1, scope='conv6_1') res = _flownet_upconv(conv6_1, conv5_1, conv4_1, conv3_1, conv2, conv1, inputs, channel_mult=channel_mult, full_res=full_res) return nchw_to_nhwc(res)
Example #18
Source File: simple.py From tensorbayes with MIT License | 5 votes |
def conv2d(x, num_outputs, kernel_size, strides, padding='SAME', activation=None, bn=False, post_bn=False, phase=None, scope=None, reuse=None): # Convert int to list kernel_size = [kernel_size] * 2 if isinstance(kernel_size, int) else kernel_size strides = [strides] * 2 if isinstance(strides, int) else strides # Convert list to valid list kernel_size = list(kernel_size) + [x.get_shape().dims[-1], num_outputs] strides = [1] + list(strides) + [1] # Conv operation with tf.variable_scope(scope, 'conv2d', reuse=reuse): kernel = tf.get_variable('weights', kernel_size, initializer=variance_scaling_initializer()) biases = tf.get_variable('biases', [num_outputs], initializer=tf.zeros_initializer) output = tf.nn.conv2d(x, kernel, strides, padding, name='conv2d') output += biases if bn: output = batch_norm(output, phase, scope='bn') if activation: output = activation(output) if post_bn: output = batch_norm(output, phase, scope='post_bn') return output
Example #19
Source File: hyperparams_builder.py From aster with MIT License | 5 votes |
def _build_initializer(initializer): """Build a tf initializer from config. Args: initializer: hyperparams_pb2.Hyperparams.regularizer proto. Returns: tf initializer. Raises: ValueError: On unknown initializer. """ initializer_oneof = initializer.WhichOneof('initializer_oneof') if initializer_oneof == 'truncated_normal_initializer': return tf.truncated_normal_initializer( mean=initializer.truncated_normal_initializer.mean, stddev=initializer.truncated_normal_initializer.stddev) if initializer_oneof == 'variance_scaling_initializer': enum_descriptor = (hyperparams_pb2.VarianceScalingInitializer. DESCRIPTOR.enum_types_by_name['Mode']) mode = enum_descriptor.values_by_number[initializer. variance_scaling_initializer. mode].name return layers.variance_scaling_initializer( factor=initializer.variance_scaling_initializer.factor, mode=mode, uniform=initializer.variance_scaling_initializer.uniform) if initializer_oneof == 'orthogonal_initializer': return tf.orthogonal_initializer( gain=initializer.orthogonal_initializer.gain, seed=initializer.orthogonal_initializer.seed ) if initializer_oneof == 'uniform_initializer': return tf.random_uniform_initializer( minval=initializer.uniform_initializer.minval, maxval=initializer.uniform_initializer.maxval) raise ValueError('Unknown initializer function: {}'.format( initializer_oneof))
Example #20
Source File: modules.py From squad-transformer with Apache License 2.0 | 5 votes |
def _ds_conv(inputs, num_filters, kernel_size, l2_lambda=3e-7, scope="DSConv", reuse=None): """Depthwise-separable 1D convolution. Based on the paper "Xception: Deep Learning with Depthwise Separable Convolutions" by Francois Chollet. (https://arxiv.org/pdf/1610.02357). Inputs: inputs: tensor. Rank 3, will be expanded along dimension 2 then squeezed back. num_filters: int. Number of filters to use in convolution. kernel_size: int. Size of kernel to use in convolution. l2_lambda: float. L2 regularization factor for filters. """ with tf.variable_scope(scope, reuse=reuse): vec_size = inputs.get_shape().as_list()[-1] # Depth-wise filter. Use He initializer because a ReLU activation follows immediately. d_filter = tf.get_variable("d_filter", shape=(kernel_size, 1, vec_size, 1), dtype=tf.float32, regularizer=tf_layers.l2_regularizer(scale=l2_lambda), initializer=tf_layers.variance_scaling_initializer()) # Point-wise filter. Use He initializer because we use ReLU activation. p_filter = tf.get_variable("p_filter", shape=(1, 1, vec_size, num_filters), dtype=tf.float32, regularizer=tf_layers.l2_regularizer(scale=l2_lambda), initializer=tf_layers.variance_scaling_initializer()) # Expand dims so we can use the TensorFlow separable Conv2D implementation. # Note: Standard tf.nn.conv1D does an analogous thing, reshaping its inputs and calling tf.nn.conv2D. inputs = tf.expand_dims(inputs, axis=2) outputs = tf.nn.separable_conv2d(inputs, d_filter, p_filter, strides=(1, 1, 1, 1), padding="SAME") # Bias b = tf.get_variable("b", shape=(outputs.shape[-1],), initializer=tf.zeros_initializer()) # Activation outputs = tf.nn.relu(outputs + b) outputs = tf.squeeze(outputs, axis=2) return outputs
Example #21
Source File: ops.py From CASED-Tensorflow with MIT License | 5 votes |
def conv_layer(x, channels, kernel=3, stride=1, activation='relu', padding='VALID', layer_name='_conv3d') : with tf.name_scope(layer_name) : if activation == None : return tf.layers.conv3d(inputs=x, filters=channels, kernel_size=kernel, kernel_initializer=he_init(), strides=stride, padding=padding) else : return tf.layers.conv3d(inputs=x, filters=channels, kernel_size=kernel, kernel_initializer=he_init(), strides=stride, padding=padding, activation=relu)
Example #22
Source File: flownet.py From DF-Net with MIT License | 5 votes |
def flownet_c(conv3_a, conv3_b, conv2_a, channel_mult=1, full_res=False): """Given two images, returns flow predictions in decreasing resolution. Uses FlowNetCorr. """ m = channel_mult with slim.arg_scope([slim.conv2d, slim.conv2d_transpose], data_format='NCHW', weights_regularizer=slim.l2_regularizer(0.0004), weights_initializer=layers.variance_scaling_initializer(), activation_fn=_leaky_relu): corr = correlation(conv3_a, conv3_b, pad=20, kernel_size=1, max_displacement=20, stride_1=1, stride_2=2) conv_redir = slim.conv2d(conv3_a, int(32 * m), 1, stride=1, scope='conv_redir') conv3_1 = slim.conv2d(tf.concat([conv_redir, corr], 1), int(256 * m), 3, stride=1, scope='conv3_1') conv4 = slim.conv2d(conv3_1, int(512 * m), 3, stride=2, scope='conv4') conv4_1 = slim.conv2d(conv4, int(512 * m), 3, stride=1, scope='conv4_1') conv5 = slim.conv2d(conv4_1, int(512 * m), 3, stride=2, scope='conv5') conv5_1 = slim.conv2d(conv5, int(512 * m), 3, stride=1, scope='conv5_1') conv6 = slim.conv2d(conv5_1, int(1024 * m), 3, stride=2, scope='conv6') conv6_1 = slim.conv2d(conv6, int(1024 * m), 3, stride=1, scope='conv6_1') res = _flownet_upconv(conv6_1, conv5_1, conv4_1, conv3_1, conv2_a, channel_mult=channel_mult, full_res=full_res) return nchw_to_nhwc(res)
Example #23
Source File: flownet.py From DF-Net with MIT License | 5 votes |
def flownet_c_features(im, channel_mult=1, reuse=None): m = channel_mult im = nhwc_to_nchw([im])[0] with slim.arg_scope([slim.conv2d], data_format='NCHW', weights_regularizer=slim.l2_regularizer(0.0004), weights_initializer=layers.variance_scaling_initializer(), activation_fn=_leaky_relu): conv1 = slim.conv2d(im, int(64 * m), 7, stride=2, scope='conv1', reuse=reuse) conv2 = slim.conv2d(conv1, int(128 * m), 5, stride=2, scope='conv2', reuse=reuse) conv3 = slim.conv2d(conv2, int(256 * m), 5, stride=2, scope='conv3', reuse=reuse) return conv1, conv2, conv3
Example #24
Source File: ops.py From CASED-Tensorflow with MIT License | 5 votes |
def deconv_layer(x, channels, kernel=4, stride=2, padding='VALID', layer_name='_deconv3d') : with tf.name_scope(layer_name) : crop = 1 x = tf.layers.conv3d_transpose(inputs=x, filters=channels, kernel_size=kernel, kernel_initializer=he_init(), strides=stride, padding=padding, use_bias=False) x = x[:, crop:-crop, crop:-crop, crop:-crop, :] return x
Example #25
Source File: googlenet_model.py From LQ-Nets with MIT License | 5 votes |
def googlenet_backbone(image, qw=1): with argscope(Conv2DQuant, nl=tf.identity, use_bias=False, W_init=variance_scaling_initializer(mode='FAN_IN'), data_format=get_arg_scope()['Conv2D']['data_format'], nbit=qw, is_quant=True if qw > 0 else False): logits = (LinearWrap(image) .Conv2DQuant('conv1', 64, 7, stride=2, is_quant=False) .MaxPooling('pool1', shape=3, stride=2, padding='SAME') .BNReLUQuant('pool1/out') .Conv2DQuant('conv2/3x3_reduce', 192, 1, nl=getBNReLUQuant) .Conv2DQuant('conv2/3x3', 192, 3) .MaxPooling('pool2', shape=3, stride=2, padding='SAME') .BNReLUQuant('pool2/out') .apply(inception_block, 'incpetion_3a', 96, 128, 32) .apply(inception_block, 'incpetion_3b', 192, 192, 96, is_last_block=True) .apply(inception_block, 'incpetion_4a', 256, 208, 48) .apply(inception_block, 'incpetion_4b', 224, 224, 64) .apply(inception_block, 'incpetion_4c', 192, 256, 64) .apply(inception_block, 'incpetion_4d', 176, 288, 64) .apply(inception_block, 'incpetion_4e', 384, 320, 128, is_last_block=True) .apply(inception_block, 'incpetion_5a', 384, 320, 128) .apply(inception_block, 'incpetion_5b', 512, 384, 128, is_last_block=True, is_last=True) .GlobalAvgPooling('pool5') .FullyConnected('linear', out_dim=1000, nl=tf.identity)()) return logits
Example #26
Source File: models.py From DRL_DeliveryDuel with MIT License | 5 votes |
def __init__(self, brain, h_size=128, lr=1e-4, n_layers=2, m_size=128, normalize=False, use_recurrent=False): LearningModel.__init__(self, m_size, normalize, use_recurrent, brain) num_streams = 1 hidden_streams = self.create_new_obs(num_streams, h_size, n_layers) hidden = hidden_streams[0] self.dropout_rate = tf.placeholder(dtype=tf.float32, shape=[], name="dropout_rate") hidden_reg = tf.layers.dropout(hidden, self.dropout_rate) if self.use_recurrent: self.memory_in = tf.placeholder(shape=[None, self.m_size], dtype=tf.float32, name='recurrent_in') hidden_reg, self.memory_out = self.create_recurrent_encoder(hidden_reg, self.memory_in) self.memory_out = tf.identity(self.memory_out, name='recurrent_out') self.policy = tf.layers.dense(hidden_reg, self.a_size, activation=None, use_bias=False, kernel_initializer=c_layers.variance_scaling_initializer(factor=0.01)) if brain.vector_action_space_type == "discrete": self.action_probs = tf.nn.softmax(self.policy) self.sample_action_float = tf.multinomial(self.policy, 1) self.sample_action_float = tf.identity(self.sample_action_float, name="action") self.sample_action = tf.cast(self.sample_action_float, tf.int32) self.true_action = tf.placeholder(shape=[None], dtype=tf.int32, name="teacher_action") self.action_oh = tf.one_hot(self.true_action, self.a_size) self.loss = tf.reduce_sum(-tf.log(self.action_probs + 1e-10) * self.action_oh) self.action_percent = tf.reduce_mean(tf.cast( tf.equal(tf.cast(tf.argmax(self.action_probs, axis=1), tf.int32), self.sample_action), tf.float32)) else: self.sample_action = tf.identity(self.policy, name="action") self.true_action = tf.placeholder(shape=[None, self.a_size], dtype=tf.float32, name="teacher_action") self.loss = tf.reduce_sum(tf.squared_difference(self.true_action, self.sample_action)) optimizer = tf.train.AdamOptimizer(learning_rate=lr) self.update = optimizer.minimize(self.loss)
Example #27
Source File: models.py From DRL_DeliveryDuel with MIT License | 5 votes |
def create_continuous_state_encoder(self, h_size, activation, num_layers): """ Builds a set of hidden state encoders. :param h_size: Hidden layer size. :param activation: What type of activation function to use for layers. :param num_layers: number of hidden layers to create. :return: List of hidden layer tensors. """ hidden = self.normalized_state for j in range(num_layers): hidden = tf.layers.dense(hidden, h_size, activation=activation, kernel_initializer=c_layers.variance_scaling_initializer(1.0)) return hidden
Example #28
Source File: models.py From DRL_DeliveryDuel with MIT License | 5 votes |
def create_dc_actor_critic(self, h_size, num_layers): num_streams = 1 hidden_streams = self.create_new_obs(num_streams, h_size, num_layers) hidden = hidden_streams[0] if self.use_recurrent: tf.Variable(self.m_size, name="memory_size", trainable=False, dtype=tf.int32) self.prev_action = tf.placeholder(shape=[None], dtype=tf.int32, name='prev_action') self.prev_action_oh = c_layers.one_hot_encoding(self.prev_action, self.a_size) hidden = tf.concat([hidden, self.prev_action_oh], axis=1) self.memory_in = tf.placeholder(shape=[None, self.m_size], dtype=tf.float32, name='recurrent_in') hidden, self.memory_out = self.create_recurrent_encoder(hidden, self.memory_in) self.memory_out = tf.identity(self.memory_out, name='recurrent_out') self.policy = tf.layers.dense(hidden, self.a_size, activation=None, use_bias=False, kernel_initializer=c_layers.variance_scaling_initializer(factor=0.01)) self.all_probs = tf.nn.softmax(self.policy, name="action_probs") self.output = tf.multinomial(self.policy, 1) self.output = tf.identity(self.output, name="action") self.value = tf.layers.dense(hidden, 1, activation=None) self.value = tf.identity(self.value, name="value_estimate") self.entropy = -tf.reduce_sum(self.all_probs * tf.log(self.all_probs + 1e-10), axis=1) self.action_holder = tf.placeholder(shape=[None], dtype=tf.int32) self.selected_actions = c_layers.one_hot_encoding(self.action_holder, self.a_size) self.all_old_probs = tf.placeholder(shape=[None, self.a_size], dtype=tf.float32, name='old_probabilities') # We reshape these tensors to [batch x 1] in order to be of the same rank as continuous control probabilities. self.probs = tf.expand_dims(tf.reduce_sum(self.all_probs * self.selected_actions, axis=1), 1) self.old_probs = tf.expand_dims(tf.reduce_sum(self.all_old_probs * self.selected_actions, axis=1), 1)
Example #29
Source File: models.py From DRL_DeliveryDuel with MIT License | 5 votes |
def create_cc_actor_critic(self, h_size, num_layers): num_streams = 2 hidden_streams = self.create_new_obs(num_streams, h_size, num_layers) if self.use_recurrent: tf.Variable(self.m_size, name="memory_size", trainable=False, dtype=tf.int32) self.memory_in = tf.placeholder(shape=[None, self.m_size], dtype=tf.float32, name='recurrent_in') _half_point = int(self.m_size / 2) hidden_policy, memory_policy_out = self.create_recurrent_encoder( hidden_streams[0], self.memory_in[:, :_half_point], name='lstm_policy') hidden_value, memory_value_out = self.create_recurrent_encoder( hidden_streams[1], self.memory_in[:, _half_point:], name='lstm_value') self.memory_out = tf.concat([memory_policy_out, memory_value_out], axis=1, name='recurrent_out') else: hidden_policy = hidden_streams[0] hidden_value = hidden_streams[1] self.mu = tf.layers.dense(hidden_policy, self.a_size, activation=None, use_bias=False, kernel_initializer=c_layers.variance_scaling_initializer(factor=0.01)) self.log_sigma_sq = tf.get_variable("log_sigma_squared", [self.a_size], dtype=tf.float32, initializer=tf.zeros_initializer()) self.sigma_sq = tf.exp(self.log_sigma_sq) self.epsilon = tf.random_normal(tf.shape(self.mu), dtype=tf.float32) self.output = self.mu + tf.sqrt(self.sigma_sq) * self.epsilon self.output = tf.identity(self.output, name='action') a = tf.exp(-1 * tf.pow(tf.stop_gradient(self.output) - self.mu, 2) / (2 * self.sigma_sq)) b = 1 / tf.sqrt(2 * self.sigma_sq * np.pi) self.all_probs = tf.multiply(a, b, name="action_probs") self.entropy = tf.reduce_mean(0.5 * tf.log(2 * np.pi * np.e * self.sigma_sq)) self.value = tf.layers.dense(hidden_value, 1, activation=None) self.value = tf.identity(self.value, name="value_estimate") self.all_old_probs = tf.placeholder(shape=[None, self.a_size], dtype=tf.float32, name='old_probabilities') # We keep these tensors the same name, but use new nodes to keep code parallelism with discrete control. self.probs = tf.identity(self.all_probs) self.old_probs = tf.identity(self.all_old_probs)
Example #30
Source File: ops.py From UNIT-Tensorflow with MIT License | 5 votes |
def resblock(x_init, channels, kernel=3, stride=1, pad=1, dropout_ratio=0.0, normal_weight_init=False, is_training=True, norm_fn='instance', scope='resblock_0') : assert norm_fn in ['instance', 'batch', 'weight', 'spectral', None] with tf.variable_scope(scope) : with tf.variable_scope('res1') : x = tf.pad(x_init, [[0, 0], [pad, pad], [pad, pad], [0, 0]]) if normal_weight_init : x = tf.layers.conv2d(inputs=x, filters=channels, kernel_size=kernel, kernel_initializer=tf.truncated_normal_initializer(stddev=0.02), strides=stride, kernel_regularizer=tf_contrib.layers.l2_regularizer(scale=0.0001)) else : x = tf.layers.conv2d(inputs=x, filters=channels, kernel_size=kernel, kernel_initializer=he_init(), strides=stride, kernel_regularizer=tf_contrib.layers.l2_regularizer(scale=0.0001)) if norm_fn == 'instance' : x = instance_norm(x, 'res1_instance') if norm_fn == 'batch' : x = batch_norm(x, is_training, 'res1_batch') x = relu(x) with tf.variable_scope('res2') : x = tf.pad(x, [[0, 0], [pad, pad], [pad, pad], [0, 0]]) if normal_weight_init : x = tf.layers.conv2d(inputs=x, filters=channels, kernel_size=kernel, kernel_initializer=tf.truncated_normal_initializer(stddev=0.02), strides=stride, kernel_regularizer=tf_contrib.layers.l2_regularizer(scale=0.0001)) else : x = tf.layers.conv2d(inputs=x, filters=channels, kernel_size=kernel, strides=stride, kernel_regularizer=tf_contrib.layers.l2_regularizer(scale=0.0001)) if norm_fn == 'instance' : x = instance_norm(x, 'res2_instance') if norm_fn == 'batch' : x = batch_norm(x, is_training, 'res2_batch') if dropout_ratio > 0.0 : x = tf.layers.dropout(x, rate=dropout_ratio, training=is_training) return x + x_init