Python tensorflow.stop_gradient() Examples
The following are 30
code examples of tensorflow.stop_gradient().
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
, or try the search function
.
Example #1
Source File: discretization.py From fine-lm with MIT License | 7 votes |
def isemhash_bottleneck(x, bottleneck_bits, bottleneck_noise, discretize_warmup_steps, mode, isemhash_noise_dev=0.5, isemhash_mix_prob=0.5): """Improved semantic hashing bottleneck.""" with tf.variable_scope("isemhash_bottleneck"): x = tf.layers.dense(x, bottleneck_bits, name="dense") y = common_layers.saturating_sigmoid(x) if isemhash_noise_dev > 0 and mode == tf.estimator.ModeKeys.TRAIN: noise = tf.truncated_normal( common_layers.shape_list(x), mean=0.0, stddev=isemhash_noise_dev) y = common_layers.saturating_sigmoid(x + noise) d = tf.to_float(tf.less(0.5, y)) + y - tf.stop_gradient(y) d = 2.0 * d - 1.0 # Move from [0, 1] to [-1, 1]. if mode == tf.estimator.ModeKeys.TRAIN: # Flip some bits. noise = tf.random_uniform(common_layers.shape_list(x)) noise = 2.0 * tf.to_float(tf.less(bottleneck_noise, noise)) - 1.0 d *= noise d = common_layers.mix(d, 2.0 * y - 1.0, discretize_warmup_steps, mode == tf.estimator.ModeKeys.TRAIN, max_prob=isemhash_mix_prob) return d, 0.0
Example #2
Source File: multivariate.py From zhusuan with MIT License | 6 votes |
def _sample(self, n_samples): mean, u_tril, v_tril = self.mean, self.u_tril, self.v_tril if not self.is_reparameterized: mean = tf.stop_gradient(mean) u_tril = tf.stop_gradient(u_tril) v_tril = tf.stop_gradient(v_tril) def tile(t): new_shape = tf.concat([[n_samples], tf.ones_like(tf.shape(t))], 0) return tf.tile(tf.expand_dims(t, 0), new_shape) batch_u_tril = tile(u_tril) batch_v_tril = tile(v_tril) noise = tf.random_normal( tf.concat([[n_samples], tf.shape(mean)], axis=0), dtype=self.dtype) samples = mean + \ tf.matmul(tf.matmul(batch_u_tril, noise), tf.matrix_transpose(batch_v_tril)) # Update static shape static_n_samples = n_samples if isinstance(n_samples, int) else None samples.set_shape(tf.TensorShape([static_n_samples]) .concatenate(self.get_batch_shape()) .concatenate(self.get_value_shape())) return samples
Example #3
Source File: memory.py From DOTA_models with Apache License 2.0 | 6 votes |
def get_hint_pool_idxs(self, normalized_query): """Get small set of idxs to compute nearest neighbor queries on. This is an expensive look-up on the whole memory that is used to avoid more expensive operations later on. Args: normalized_query: A Tensor of shape [None, key_dim]. Returns: A Tensor of shape [None, choose_k] of indices in memory that are closest to the queries. """ # look up in large memory, no gradients with tf.device(self.nn_device): similarities = tf.matmul(tf.stop_gradient(normalized_query), self.mem_keys, transpose_b=True, name='nn_mmul') _, hint_pool_idxs = tf.nn.top_k( tf.stop_gradient(similarities), k=self.choose_k, name='nn_topk') return hint_pool_idxs
Example #4
Source File: nn.py From cs294-112_hws with MIT License | 6 votes |
def call(self, inputs): mean_and_log_std = self.model(inputs) mean, log_std = tf.split(mean_and_log_std, num_or_size_splits=2, axis=1) log_std = tf.clip_by_value(log_std, -20., 2.) distribution = tfp.distributions.MultivariateNormalDiag( loc=mean, scale_diag=tf.exp(log_std) ) raw_actions = distribution.sample() if not self._reparameterize: ### Problem 1.3.A ### YOUR CODE HERE raw_actions = tf.stop_gradient(raw_actions) log_probs = distribution.log_prob(raw_actions) log_probs -= self._squash_correction(raw_actions) ### Problem 2.A ### YOUR CODE HERE self.actions = tf.tanh(raw_actions) return self.actions, log_probs
Example #5
Source File: transformer_nat.py From fine-lm with MIT License | 6 votes |
def vq_nearest_neighbor(x, hparams): """Find the nearest element in means to elements in x.""" bottleneck_size = 2**hparams.bottleneck_bits means = hparams.means x_norm_sq = tf.reduce_sum(tf.square(x), axis=-1, keepdims=True) means_norm_sq = tf.reduce_sum(tf.square(means), axis=-1, keepdims=True) scalar_prod = tf.matmul(x, means, transpose_b=True) dist = x_norm_sq + tf.transpose(means_norm_sq) - 2 * scalar_prod if hparams.bottleneck_kind == "em": x_means_idx = tf.multinomial(-dist, num_samples=hparams.num_samples) x_means_hot = tf.one_hot( x_means_idx, depth=bottleneck_size) x_means_hot = tf.reduce_mean(x_means_hot, axis=1) else: x_means_idx = tf.argmax(-dist, axis=-1) x_means_hot = tf.one_hot(x_means_idx, depth=bottleneck_size) x_means = tf.matmul(x_means_hot, means) e_loss = tf.reduce_mean(tf.square(x - tf.stop_gradient(x_means))) return x_means_hot, e_loss
Example #6
Source File: shake_shake.py From fine-lm with MIT License | 6 votes |
def shake_shake_branch(x, output_filters, stride, rand_forward, rand_backward, hparams): """Building a 2 branching convnet.""" is_training = hparams.mode == tf.contrib.learn.ModeKeys.TRAIN x = tf.nn.relu(x) x = tf.layers.conv2d( x, output_filters, (3, 3), strides=(stride, stride), padding="SAME", name="conv1") x = tf.layers.batch_normalization(x, training=is_training, name="bn1") x = tf.nn.relu(x) x = tf.layers.conv2d(x, output_filters, (3, 3), padding="SAME", name="conv2") x = tf.layers.batch_normalization(x, training=is_training, name="bn2") if is_training: x = x * rand_backward + tf.stop_gradient(x * rand_forward - x * rand_backward) else: x *= 1.0 / hparams.shake_shake_num_branches return x
Example #7
Source File: discretization.py From fine-lm with MIT License | 6 votes |
def bit_to_int(x_bit, num_bits, base=2): """Turn x_bit representing numbers bitwise (lower-endian) to int tensor. Args: x_bit: Tensor containing numbers in a particular base to be converted to int. num_bits: Number of bits in the representation. base: Base of the representation. Returns: Integer representation of this number. """ x_l = tf.stop_gradient(tf.to_int32(tf.reshape(x_bit, [-1, num_bits]))) x_labels = [] for i in range(num_bits): x_labels.append(x_l[:, i] * tf.to_int32(base)**tf.to_int32(i)) res = sum(x_labels) return tf.to_int32(tf.reshape(res, common_layers.shape_list(x_bit)[:-1]))
Example #8
Source File: value_functions.py From lirpg with MIT License | 6 votes |
def __init__(self, ob_dim, ac_dim): #pylint: disable=W0613 X = tf.placeholder(tf.float32, shape=[None, ob_dim*2+ac_dim*2+2]) # batch of observations vtarg_n = tf.placeholder(tf.float32, shape=[None], name='vtarg') wd_dict = {} h1 = tf.nn.elu(dense(X, 64, "h1", weight_init=U.normc_initializer(1.0), bias_init=0, weight_loss_dict=wd_dict)) h2 = tf.nn.elu(dense(h1, 64, "h2", weight_init=U.normc_initializer(1.0), bias_init=0, weight_loss_dict=wd_dict)) vpred_n = dense(h2, 1, "hfinal", weight_init=U.normc_initializer(1.0), bias_init=0, weight_loss_dict=wd_dict)[:,0] sample_vpred_n = vpred_n + tf.random_normal(tf.shape(vpred_n)) wd_loss = tf.get_collection("vf_losses", None) loss = tf.reduce_mean(tf.square(vpred_n - vtarg_n)) + tf.add_n(wd_loss) loss_sampled = tf.reduce_mean(tf.square(vpred_n - tf.stop_gradient(sample_vpred_n))) self._predict = U.function([X], vpred_n) optim = kfac.KfacOptimizer(learning_rate=0.001, cold_lr=0.001*(1-0.9), momentum=0.9, \ clip_kl=0.3, epsilon=0.1, stats_decay=0.95, \ async=1, kfac_update=2, cold_iter=50, \ weight_decay_dict=wd_dict, max_grad_norm=None) vf_var_list = [] for var in tf.trainable_variables(): if "vf" in var.name: vf_var_list.append(var) update_op, self.q_runner = optim.minimize(loss, loss_sampled, var_list=vf_var_list) self.do_update = U.function([X, vtarg_n], update_op) #pylint: disable=E1101 U.initialize() # Initialize uninitialized TF variables
Example #9
Source File: nn.py From kvae with MIT License | 6 votes |
def gumbel_softmax(logits, temperature, hard=False): """Sample from the Gumbel-Softmax distribution and optionally discretize. Args: logits: [batch_size, n_class] unnormalized log-probs temperature: non-negative scalar hard: if True, take argmax, but differentiate w.r.t. soft sample y Returns: [batch_size, n_class] sample from the Gumbel-Softmax distribution. If hard=True, then the returned sample will be one-hot, otherwise it will be a probabilitiy distribution that sums to 1 across classes """ y = gumbel_softmax_sample(logits, temperature) if hard: # k = tf.shape(logits)[-1] # y_hard = tf.cast(tf.one_hot(tf.argmax(y, 1), k), y.dtype) y_hard = tf.cast(tf.equal(y, tf.reduce_max(y, 1, keep_dims=True)), y.dtype) y = tf.stop_gradient(y_hard - y) + y return y
Example #10
Source File: ops.py From mac-network with Apache License 2.0 | 6 votes |
def gumbelSoftmax(logits, temperature, train): # hard = False # Sample from the Gumbel-Softmax distribution and optionally discretize. # Args: # logits: [batch_size, n_class] unnormalized log-probs # temperature: non-negative scalar # hard: if True, take argmax, but differentiate w.r.t. soft sample y # Returns: # [batch_size, n_class] sample from the Gumbel-Softmax distribution. # If hard=True, then the returned sample will be one-hot, otherwise it will # be a probabilitiy distribution that sums to 1 across classes y = gumbelSoftmaxSample(logits, temperature) # k = tf.shape(logits)[-1] # yHard = tf.cast(tf.one_hot(tf.argmax(y,1),k), y.dtype) yHard = tf.cast(tf.equal(y, tf.reduce_max(y, 1, keep_dims = True)), y.dtype) yNew = tf.stop_gradient(yHard - y) + y if config.gumbelSoftmaxBoth: return y if config.gumbelArgmaxBoth: return yNew ret = tf.cond(train, lambda: y, lambda: yNew) return ret
Example #11
Source File: bmaml.py From bmaml with MIT License | 6 votes |
def kernel(self, particle_tensor, h=-1): euclidean_dists = tf_utils.pdist(particle_tensor) pairwise_dists = tf_utils.squareform(euclidean_dists) ** 2 if h == -1: if FLAGS.kernel == 'org': mean_dist = tf_utils.median(pairwise_dists) # tf.reduce_mean(euclidean_dists) ** 2 h = mean_dist / math.log(self.num_particles) h = tf.stop_gradient(h) elif FLAGS.kernel == 'med': mean_dist = tf_utils.median(euclidean_dists) ** 2 h = mean_dist / math.log(self.num_particles) h = tf.stop_gradient(h) else: mean_dist = tf.reduce_mean(euclidean_dists) ** 2 h = mean_dist / math.log(self.num_particles) kernel_matrix = tf.exp(-pairwise_dists / h) kernel_sum = tf.reduce_sum(kernel_matrix, axis=1, keep_dims=True) grad_kernel = -tf.matmul(kernel_matrix, particle_tensor) grad_kernel += particle_tensor * kernel_sum grad_kernel /= h return kernel_matrix, grad_kernel, h
Example #12
Source File: multivariate.py From zhusuan with MIT License | 6 votes |
def _sample(self, n_samples): mean, cov_tril = self.mean, self.cov_tril if not self.is_reparameterized: mean = tf.stop_gradient(mean) cov_tril = tf.stop_gradient(cov_tril) def tile(t): new_shape = tf.concat([[n_samples], tf.ones_like(tf.shape(t))], 0) return tf.tile(tf.expand_dims(t, 0), new_shape) batch_mean = tile(mean) batch_cov = tile(cov_tril) # n_dim -> n_dim x 1 for matmul batch_mean = tf.expand_dims(batch_mean, -1) noise = tf.random_normal(tf.shape(batch_mean), dtype=self.dtype) samples = tf.matmul(batch_cov, noise) + batch_mean samples = tf.squeeze(samples, -1) # Update static shape static_n_samples = n_samples if isinstance(n_samples, int) else None samples.set_shape(tf.TensorShape([static_n_samples]) .concatenate(self.get_batch_shape()) .concatenate(self.get_value_shape())) return samples
Example #13
Source File: multivariate.py From zhusuan with MIT License | 6 votes |
def _sample(self, n_samples): logits, temperature = self.logits, self.temperature if not self.is_reparameterized: logits = tf.stop_gradient(logits) temperature = tf.stop_gradient(temperature) shape = tf.concat([[n_samples], tf.shape(self.logits)], 0) uniform = open_interval_standard_uniform(shape, self.dtype) # TODO: Add Gumbel distribution gumbel = -tf.log(-tf.log(uniform)) samples = tf.nn.softmax((logits + gumbel) / temperature) static_n_samples = n_samples if isinstance(n_samples, int) else None samples.set_shape( tf.TensorShape([static_n_samples]).concatenate(logits.get_shape())) return samples
Example #14
Source File: value_functions.py From HardRLWithYoutube with MIT License | 6 votes |
def __init__(self, ob_dim, ac_dim): #pylint: disable=W0613 X = tf.placeholder(tf.float32, shape=[None, ob_dim*2+ac_dim*2+2]) # batch of observations vtarg_n = tf.placeholder(tf.float32, shape=[None], name='vtarg') wd_dict = {} h1 = tf.nn.elu(dense(X, 64, "h1", weight_init=U.normc_initializer(1.0), bias_init=0, weight_loss_dict=wd_dict)) h2 = tf.nn.elu(dense(h1, 64, "h2", weight_init=U.normc_initializer(1.0), bias_init=0, weight_loss_dict=wd_dict)) vpred_n = dense(h2, 1, "hfinal", weight_init=U.normc_initializer(1.0), bias_init=0, weight_loss_dict=wd_dict)[:,0] sample_vpred_n = vpred_n + tf.random_normal(tf.shape(vpred_n)) wd_loss = tf.get_collection("vf_losses", None) loss = tf.reduce_mean(tf.square(vpred_n - vtarg_n)) + tf.add_n(wd_loss) loss_sampled = tf.reduce_mean(tf.square(vpred_n - tf.stop_gradient(sample_vpred_n))) self._predict = U.function([X], vpred_n) optim = kfac.KfacOptimizer(learning_rate=0.001, cold_lr=0.001*(1-0.9), momentum=0.9, \ clip_kl=0.3, epsilon=0.1, stats_decay=0.95, \ async=1, kfac_update=2, cold_iter=50, \ weight_decay_dict=wd_dict, max_grad_norm=None) vf_var_list = [] for var in tf.trainable_variables(): if "vf" in var.name: vf_var_list.append(var) update_op, self.q_runner = optim.minimize(loss, loss_sampled, var_list=vf_var_list) self.do_update = U.function([X, vtarg_n], update_op) #pylint: disable=E1101 U.initialize() # Initialize uninitialized TF variables
Example #15
Source File: univariate.py From zhusuan with MIT License | 6 votes |
def _sample(self, n_samples): # samples must be sampled from (-1, 1) rather than [-1, 1) loc, scale = self.loc, self.scale if not self.is_reparameterized: loc = tf.stop_gradient(loc) scale = tf.stop_gradient(scale) shape = tf.concat([[n_samples], self.batch_shape], 0) uniform_samples = tf.random_uniform( shape=shape, minval=np.nextafter(self.dtype.as_numpy_dtype(-1.), self.dtype.as_numpy_dtype(0.)), maxval=1., dtype=self.dtype) samples = loc - scale * tf.sign(uniform_samples) * \ tf.log1p(-tf.abs(uniform_samples)) static_n_samples = n_samples if isinstance(n_samples, int) else None samples.set_shape( tf.TensorShape([static_n_samples]).concatenate( self.get_batch_shape())) return samples
Example #16
Source File: multivariate.py From zhusuan with MIT License | 5 votes |
def _sample(self, n_samples): logits, temperature = self.logits, self.temperature if not self.is_reparameterized: logits = tf.stop_gradient(logits) temperature = tf.stop_gradient(temperature) shape = tf.concat([[n_samples], tf.shape(self.logits)], 0) uniform = open_interval_standard_uniform(shape, self.dtype) gumbel = -tf.log(-tf.log(uniform)) samples = tf.nn.log_softmax((logits + gumbel) / temperature) static_n_samples = n_samples if isinstance(n_samples, int) else None samples.set_shape( tf.TensorShape([static_n_samples]).concatenate(logits.get_shape())) return samples
Example #17
Source File: hmc.py From zhusuan with MIT License | 5 votes |
def _adapt_step_size(self, acceptance_rate, if_initialize_step_size): new_step_size = self.step_size_tuner.tune( tf.reduce_mean(acceptance_rate), tf.cast(if_initialize_step_size, tf.float32)) update_step_size = tf.assign(self.step_size, new_step_size) return tf.stop_gradient(update_step_size)
Example #18
Source File: term.py From tensorflow_constrained_optimization with Apache License 2.0 | 5 votes |
def evaluate(self, structure_memoizer): """Computes and returns the `Tensor` of ratio weights. Args: structure_memoizer: dict, which memoizes portions of the calculation to simplify the resulting TensorFlow graph. It must contain the keys "denominator_lower_bound" and "global_step", with the corresponding values being the minimum allowed value of a rate denominator (a float), and the current iterate (a non-negative integer, starting at zero), respectively. Returns: A `DeferredTensor` containing the weights associated with each example. """ ratios = [] for denominator_key, numerator in six.iteritems(self._ratios): denominator = self._evaluate_denominator(denominator_key, structure_memoizer) def ratio_fn(numerator_value, denominator_value): """Returns the value of the current ratio as a `Tensor`.""" dtype = numerator_value.dtype.base_dtype return numerator_value / tf.cast(denominator_value, dtype=dtype) ratios.append( deferred_tensor.DeferredTensor.apply(ratio_fn, numerator, denominator)) # It's probably paranoid to call stop_gradient on the ratio weights, but # it shouldn't do any harm, and might prevent failure if someone's doing # something weird. value = deferred_tensor.DeferredTensor.apply( lambda *args: tf.stop_gradient(sum(args, (0.0,))), *ratios) return value
Example #19
Source File: discriminator.py From dcnn_textvae with MIT License | 5 votes |
def __init__(self, encoder_rnn_output, temperature, is_training=True, ru=False): with tf.variable_scope("Discriminator_input"): self.encoder_rnn_output = encoder_rnn_output self.temperature = temperature self.is_training = is_training with tf.variable_scope("discriminator_linear1"): discriminator_W1 = tf.get_variable(name="discriminator_W1", shape=(FLAGS.RNN_SIZE, 100), dtype=tf.float32, initializer=tf.random_normal_initializer(stddev=0.1)) discriminator_b1 = tf.get_variable(name="discriminator_b1", shape=(100), dtype=tf.float32) with tf.variable_scope("discriminator_linear2"): discriminator_W2 = tf.get_variable(name="discriminator_W2", shape=(100, FLAGS.LABEL_CLASS), dtype=tf.float32, initializer=tf.random_normal_initializer(stddev=0.1)) discriminator_b2 = tf.get_variable(name="discriminator_b2", shape=(FLAGS.LABEL_CLASS), dtype=tf.float32) with tf.name_scope("hidden"): h = tf.nn.relu(tf.matmul(self.encoder_rnn_output, discriminator_W1) + discriminator_b1) with tf.name_scope("discriminator_output"): self.discriminator_logits = tf.matmul(h, discriminator_W2) + discriminator_b2 self.discriminator_predict = tf.stop_gradient(tf.argmax(self.discriminator_logits, 1)) self.discriminator_prob = tf.nn.softmax(self.discriminator_logits, name="discriminator_softmax") with tf.name_scope("sampling"): # unlabeled self.discriminator_sampling_onehot = self.gumbel_softmax(self.discriminator_logits, self.temperature)
Example #20
Source File: pot.py From adagan with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _recon_loss_using_vgg_moments(self, opts, reconstructed_training, real_points, is_training, keep_prob): """Build an additional loss using a pretrained VGG in X space.""" def _architecture(_inputs, reuse=None): _, end_points = vgg_16(_inputs, is_training=is_training, dropout_keep_prob=keep_prob, reuse=reuse) layer_name = opts['vgg_layer'] output = end_points[layer_name] # output = flatten(output) output /= 255.0 # the vgg_16 method scales everything by 255.0, so we divide back here. variances = compute_moments(output, moments=[2]) if reuse is None: variables_to_restore = slim.get_variables_to_restore(include=['vgg_16']) path = os.path.join(opts['data_dir'], 'vgg_16.ckpt') # '/tmpp/models/vgg_16.ckpt' init_assign_op, init_feed_dict = slim.assign_from_checkpoint(path, variables_to_restore) self._additional_init_ops += [init_assign_op] self._init_feed_dict.update(init_feed_dict) return variances reconstructed_embed_sg = _architecture(tf.stop_gradient(reconstructed_training), reuse=None) reconstructed_embed = _architecture(reconstructed_training, reuse=True) # Below line enforces the forward to be reconstructed_embed and backwards to NOT change the discriminator.... crazy_hack = reconstructed_embed-reconstructed_embed_sg+tf.stop_gradient(reconstructed_embed_sg) real_p_embed = _architecture(real_points, reuse=True) emb_c = tf.reduce_mean(tf.square(crazy_hack - tf.stop_gradient(real_p_embed)), 1) emb_c_loss = tf.reduce_mean(emb_c) # emb_c_loss = tf.Print(emb_c_loss, [emb_c_loss], "emb_c_loss") # # Normalize the loss, so that it does not depend on how good the # # discriminator is. # emb_c_loss = emb_c_loss / tf.stop_gradient(emb_c_loss) return emb_c_loss # TODO: constant.
Example #21
Source File: pot.py From adagan with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _recon_loss_using_moments(self, opts, reconstructed_training, real_points, is_training, keep_prob): """Build an additional loss using moments.""" def _architecture(_inputs): return compute_moments(_inputs, moments=[2]) # TODO reconstructed_embed = _architecture(reconstructed_training) real_p_embed = _architecture(real_points) emb_c = tf.reduce_mean(tf.square(reconstructed_embed - tf.stop_gradient(real_p_embed)), 1) # emb_c = tf.Print(emb_c, [emb_c], "emb_c") emb_c_loss = tf.reduce_mean(emb_c) return emb_c_loss * 100.0 * 100.0 # TODO: constant.
Example #22
Source File: pot.py From adagan with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _recon_loss_using_disc_encoder( self, opts, reconstructed_training, encoded_training, real_points, is_training_ph, keep_prob_ph): """Build an additional loss using the encoder as discriminator.""" reconstructed_reencoded_sg = self.encoder( opts, tf.stop_gradient(reconstructed_training), is_training=is_training_ph, keep_prob=keep_prob_ph, reuse=True) if opts['e_is_random']: reconstructed_reencoded_sg = reconstructed_reencoded_sg[0] reconstructed_reencoded = self.encoder( opts, reconstructed_training, is_training=is_training_ph, keep_prob=keep_prob_ph, reuse=True) if opts['e_is_random']: reconstructed_reencoded = reconstructed_reencoded[0] # Below line enforces the forward to be reconstructed_reencoded and backwards to NOT change the encoder.... crazy_hack = reconstructed_reencoded - reconstructed_reencoded_sg +\ tf.stop_gradient(reconstructed_reencoded_sg) encoded_training_sg = self.encoder( opts, tf.stop_gradient(real_points), is_training=is_training_ph, keep_prob=keep_prob_ph, reuse=True) if opts['e_is_random']: encoded_training_sg = encoded_training_sg[0] adv_fake_layer = ops.linear(opts, reconstructed_reencoded_sg, 1, scope='adv_layer') adv_true_layer = ops.linear(opts, encoded_training_sg, 1, scope='adv_layer', reuse=True) adv_fake = tf.nn.sigmoid_cross_entropy_with_logits( logits=adv_fake_layer, labels=tf.zeros_like(adv_fake_layer)) adv_true = tf.nn.sigmoid_cross_entropy_with_logits( logits=adv_true_layer, labels=tf.ones_like(adv_true_layer)) adv_fake = tf.reduce_mean(adv_fake) adv_true = tf.reduce_mean(adv_true) adv_c_loss = adv_fake + adv_true emb_c = tf.reduce_sum(tf.square(crazy_hack - tf.stop_gradient(encoded_training)), 1) emb_c_loss = tf.reduce_mean(tf.sqrt(emb_c + 1e-5)) # Normalize the loss, so that it does not depend on how good the # discriminator is. emb_c_loss = emb_c_loss / tf.stop_gradient(emb_c_loss) return adv_c_loss, emb_c_loss
Example #23
Source File: attacks.py From neural-fingerprinting with BSD 3-Clause "New" or "Revised" License | 5 votes |
def get_or_guess_labels(self, x, kwargs): """ Get the label to use in generating an adversarial example for x. The kwargs are fed directly from the kwargs of the attack. If 'y' is in kwargs, then assume it's an untargeted attack and use that as the label. If 'y_target' is in kwargs and is not none, then assume it's a targeted attack and use that as the label. Otherwise, use the model's prediction as the label and perform an untargeted attack. """ import tensorflow as tf if 'y' in kwargs and 'y_target' in kwargs: raise ValueError("Can not set both 'y' and 'y_target'.") elif 'y' in kwargs: labels = kwargs['y'] elif 'y_target' in kwargs and kwargs['y_target'] is not None: labels = kwargs['y_target'] else: preds = self.model.get_probs(x) preds_max = reduce_max(preds, 1, keepdims=True) original_predictions = tf.to_float(tf.equal(preds, preds_max)) labels = tf.stop_gradient(original_predictions) if isinstance(labels, np.ndarray): nb_classes = labels.shape[1] else: nb_classes = labels.get_shape().as_list()[1] return labels, nb_classes
Example #24
Source File: experiment.py From streetlearn with Apache License 2.0 | 5 votes |
def compute_policy_gradient_loss(logits, actions, advantages): cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits( labels=actions, logits=logits) advantages = tf.stop_gradient(advantages) policy_gradient_loss_per_timestep = cross_entropy * advantages return tf.reduce_sum(policy_gradient_loss_per_timestep)
Example #25
Source File: nn.py From kvae with MIT License | 5 votes |
def dclip(x, min, max): return x + tf.stop_gradient(tf.clip_by_value(x, min, max) - x)
Example #26
Source File: probclass.py From imgcomp-cvpr with GNU General Public License v3.0 | 5 votes |
def _make_tf_conv3d_mask(mask): assert mask.ndim == 5, 'Expected DHWio' mask = tf.constant(mask) mask = tf.stop_gradient(mask) return mask
Example #27
Source File: autoencoder.py From imgcomp-cvpr with GNU General Public License v3.0 | 5 votes |
def _quantize(self, inputs): if not self.quantize: return _QuantizerOutput(inputs, None, None, None) assert self._centers is not None qsoft, qhard, symbols = quantizer.quantize(inputs, self._centers, sigma=1) with tf.name_scope('qbar'): qbar = qsoft + tf.stop_gradient(qhard - qsoft) return _QuantizerOutput(qbar, qsoft, qhard, symbols)
Example #28
Source File: actor.py From neural-combinatorial-optimization-rl-tensorflow with MIT License | 5 votes |
def build_optim(self): # Update moving_mean and moving_variance for batch normalization layers update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS) with tf.control_dependencies(update_ops): with tf.name_scope('reinforce'): # Actor learning rate self.lr1 = tf.train.exponential_decay(self.lr1_start, self.global_step, self.lr1_decay_step,self.lr1_decay_rate, staircase=False, name="learning_rate1") # Optimizer self.opt1 = tf.train.AdamOptimizer(learning_rate=self.lr1,beta1=0.9,beta2=0.99, epsilon=0.0000001) # Discounted reward self.reward_baseline = tf.stop_gradient(self.reward - self.critic.predictions) # [Batch size, 1] variable_summaries('reward_baseline',self.reward_baseline, with_max_min = True) # Loss self.loss1 = tf.reduce_mean(self.reward_baseline*self.log_softmax,0) tf.summary.scalar('loss1', self.loss1) # Minimize step gvs = self.opt1.compute_gradients(self.loss1) capped_gvs = [(tf.clip_by_norm(grad, 1.), var) for grad, var in gvs if grad is not None] # L2 clip self.train_step1 = self.opt1.apply_gradients(capped_gvs, global_step=self.global_step) with tf.name_scope('state_value'): # Critic learning rate self.lr2 = tf.train.exponential_decay(self.lr2_start, self.global_step2, self.lr2_decay_step,self.lr2_decay_rate, staircase=False, name="learning_rate1") # Optimizer self.opt2 = tf.train.AdamOptimizer(learning_rate=self.lr2,beta1=0.9,beta2=0.99, epsilon=0.0000001) # Loss self.loss2 = tf.losses.mean_squared_error(self.reward, self.critic.predictions, weights = 1.0) tf.summary.scalar('loss2', self.loss1) # Minimize step gvs2 = self.opt2.compute_gradients(self.loss2) capped_gvs2 = [(tf.clip_by_norm(grad, 1.), var) for grad, var in gvs2 if grad is not None] # L2 clip self.train_step2 = self.opt1.apply_gradients(capped_gvs2, global_step=self.global_step2)
Example #29
Source File: cmp.py From DOTA_models with Apache License 2.0 | 5 votes |
def readout_general(multi_scale_belief, num_neurons, strides, layers_per_block, kernel_size, batch_norm_is_training_op, wt_decay): multi_scale_belief = tf.stop_gradient(multi_scale_belief) with tf.variable_scope('readout_maps_deconv'): x, outs = deconv(multi_scale_belief, batch_norm_is_training_op, wt_decay=wt_decay, neurons=num_neurons, strides=strides, layers_per_block=layers_per_block, kernel_size=kernel_size, conv_fn=slim.conv2d_transpose, offset=0, name='readout_maps_deconv') probs = tf.sigmoid(x) return x, probs
Example #30
Source File: actor.py From neural-combinatorial-optimization-rl-tensorflow with MIT License | 5 votes |
def build_optim(self): # Update moving_mean and moving_variance for batch normalization layers update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS) with tf.control_dependencies(update_ops): with tf.name_scope('baseline'): # Update baseline reward_mean, reward_var = tf.nn.moments(self.reward,axes=[0]) self.base_op = tf.assign(self.avg_baseline, self.alpha*self.avg_baseline+(1.0-self.alpha)*reward_mean) tf.summary.scalar('average baseline',self.avg_baseline) with tf.name_scope('reinforce'): # Actor learning rate self.lr1 = tf.train.exponential_decay(self.lr1_start, self.global_step, self.lr1_decay_step,self.lr1_decay_rate, staircase=False, name="learning_rate1") # Optimizer self.opt1 = tf.train.AdamOptimizer(learning_rate=self.lr1,beta1=0.9,beta2=0.99, epsilon=0.0000001) # Discounted reward self.reward_baseline = tf.stop_gradient(self.reward - self.avg_baseline - self.critic.predictions) # [Batch size, 1] variable_summaries('reward_baseline',self.reward_baseline, with_max_min = True) # Loss self.loss1 = tf.reduce_mean(self.reward_baseline*self.log_softmax,0) tf.summary.scalar('loss1', self.loss1) # Minimize step gvs = self.opt1.compute_gradients(self.loss1) capped_gvs = [(tf.clip_by_norm(grad, 1.), var) for grad, var in gvs if grad is not None] # L2 clip self.train_step1 = self.opt1.apply_gradients(capped_gvs, global_step=self.global_step) with tf.name_scope('state_value'): # Critic learning rate self.lr2 = tf.train.exponential_decay(self.lr2_start, self.global_step2, self.lr2_decay_step,self.lr2_decay_rate, staircase=False, name="learning_rate1") # Optimizer self.opt2 = tf.train.AdamOptimizer(learning_rate=self.lr2,beta1=0.9,beta2=0.99, epsilon=0.0000001) # Loss weights_ = 1.0 #weights_ = tf.exp(self.log_softmax-tf.reduce_max(self.log_softmax)) # probs / max_prob self.loss2 = tf.losses.mean_squared_error(self.reward - self.avg_baseline, self.critic.predictions, weights = weights_) tf.summary.scalar('loss2', self.loss1) # Minimize step gvs2 = self.opt2.compute_gradients(self.loss2) capped_gvs2 = [(tf.clip_by_norm(grad, 1.), var) for grad, var in gvs2 if grad is not None] # L2 clip self.train_step2 = self.opt1.apply_gradients(capped_gvs2, global_step=self.global_step2)