Python tensorflow.reduce_max() Examples
The following are 30
code examples of tensorflow.reduce_max().
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: common_layers.py From fine-lm with MIT License | 6 votes |
def top_1_tpu(inputs): """find max and argmax over the last dimension. Works well on TPU Args: inputs: A tensor with shape [..., depth] Returns: values: a Tensor with shape [...] indices: a Tensor with shape [...] """ inputs_max = tf.reduce_max(inputs, axis=-1, keepdims=True) mask = tf.to_int32(tf.equal(inputs_max, inputs)) index = tf.range(tf.shape(inputs)[-1]) * mask return tf.squeeze(inputs_max, -1), tf.reduce_max(index, axis=-1)
Example #2
Source File: delf.py From hierarchical_loc with BSD 3-Clause "New" or "Revised" License | 6 votes |
def tower(image, mode, config): image = image_normalization(image) if image.shape[-1] == 1: image = tf.tile(image, [1, 1, 1, 3]) with slim.arg_scope(resnet.resnet_arg_scope()): is_training = config['train_backbone'] and (mode == Mode.TRAIN) with slim.arg_scope([slim.conv2d, slim.batch_norm], trainable=is_training): _, encoder = resnet.resnet_v1_50(image, is_training=is_training, global_pool=False, scope='resnet_v1_50') feature_map = encoder['resnet_v1_50/block3'] if config['use_attention']: descriptor = delf_attention(feature_map, config, mode == Mode.TRAIN, resnet.resnet_arg_scope()) else: descriptor = tf.reduce_max(feature_map, [1, 2]) if config['dimensionality_reduction']: descriptor = dimensionality_reduction(descriptor, config) return descriptor
Example #3
Source File: preprocessor.py From DOTA_models with Apache License 2.0 | 6 votes |
def one_hot_encoding(labels, num_classes=None): """One-hot encodes the multiclass labels. Example usage: labels = tf.constant([1, 4], dtype=tf.int32) one_hot = OneHotEncoding(labels, num_classes=5) one_hot.eval() # evaluates to [0, 1, 0, 0, 1] Args: labels: A tensor of shape [None] corresponding to the labels. num_classes: Number of classes in the dataset. Returns: onehot_labels: a tensor of shape [num_classes] corresponding to the one hot encoding of the labels. Raises: ValueError: if num_classes is not specified. """ with tf.name_scope('OneHotEncoding', values=[labels]): if num_classes is None: raise ValueError('num_classes must be specified') labels = tf.one_hot(labels, num_classes, 1, 0) return tf.reduce_max(labels, 0)
Example #4
Source File: tf_variable_summaries.py From fcn8s_tensorflow with GNU General Public License v3.0 | 6 votes |
def add_variable_summaries(variable, scope): ''' Attach some summaries to a tensor for TensorBoard visualization, namely mean, standard deviation, minimum, maximum, and histogram. Arguments: var (TensorFlow Variable): A TensorFlow Variable of any shape to which to add summary operations. Must be a numerical data type. ''' with tf.name_scope(scope): mean = tf.reduce_mean(variable) tf.summary.scalar('mean', mean) with tf.name_scope('stddev'): stddev = tf.sqrt(tf.reduce_mean(tf.square(variable - mean))) tf.summary.scalar('stddev', stddev) tf.summary.scalar('max', tf.reduce_max(variable)) tf.summary.scalar('min', tf.reduce_min(variable)) tf.summary.histogram('histogram', variable)
Example #5
Source File: tensor.py From spleeter with MIT License | 6 votes |
def from_float32_to_uint8( tensor, tensor_key='tensor', min_key='min', max_key='max'): """ :param tensor: :param tensor_key: :param min_key: :param max_key: :returns: """ tensor_min = tf.reduce_min(tensor) tensor_max = tf.reduce_max(tensor) return { tensor_key: tf.cast( (tensor - tensor_min) / (tensor_max - tensor_min + 1e-16) * 255.9999, dtype=tf.uint8), min_key: tensor_min, max_key: tensor_max }
Example #6
Source File: utils.py From DOTA_models with Apache License 2.0 | 6 votes |
def log_sum_exp(x_k): """Computes log \sum exp in a numerically stable way. log ( sum_i exp(x_i) ) log ( sum_i exp(x_i - m + m) ), with m = max(x_i) log ( sum_i exp(x_i - m)*exp(m) ) log ( sum_i exp(x_i - m) + m Args: x_k - k -dimensional list of arguments to log_sum_exp. Returns: log_sum_exp of the arguments. """ m = tf.reduce_max(x_k) x1_k = x_k - m u_k = tf.exp(x1_k) z = tf.reduce_sum(u_k) return tf.log(z) + m
Example #7
Source File: metrics.py From fine-lm with MIT License | 6 votes |
def set_precision(predictions, labels, weights_fn=common_layers.weights_nonzero): """Precision of set predictions. Args: predictions : A Tensor of scores of shape [batch, nlabels]. labels: A Tensor of int32s giving true set elements, of shape [batch, seq_length]. weights_fn: A function to weight the elements. Returns: hits: A Tensor of shape [batch, nlabels]. weights: A Tensor of shape [batch, nlabels]. """ with tf.variable_scope("set_precision", values=[predictions, labels]): labels = tf.squeeze(labels, [2, 3]) weights = weights_fn(labels) labels = tf.one_hot(labels, predictions.shape[-1]) labels = tf.reduce_max(labels, axis=1) labels = tf.cast(labels, tf.bool) return tf.to_float(tf.equal(labels, predictions)), weights
Example #8
Source File: metrics.py From fine-lm with MIT License | 6 votes |
def set_recall(predictions, labels, weights_fn=common_layers.weights_nonzero): """Recall of set predictions. Args: predictions : A Tensor of scores of shape [batch, nlabels]. labels: A Tensor of int32s giving true set elements, of shape [batch, seq_length]. weights_fn: A function to weight the elements. Returns: hits: A Tensor of shape [batch, nlabels]. weights: A Tensor of shape [batch, nlabels]. """ with tf.variable_scope("set_recall", values=[predictions, labels]): labels = tf.squeeze(labels, [2, 3]) weights = weights_fn(labels) labels = tf.one_hot(labels, predictions.shape[-1]) labels = tf.reduce_max(labels, axis=1) labels = tf.cast(labels, tf.bool) return tf.to_float(tf.equal(labels, predictions)), weights
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: layer.py From 3DGCN with MIT License | 5 votes |
def call(self, inputs, mask=None): # Import graph tensors # scalar_features = (samples, max_atoms, atom_feat) # vector_features = (samples, max_atoms, coor_dims, atom_feat) scalar_features, vector_features = inputs # Get parameters coor_dims = int(vector_features.shape[2]) atom_feat = int(vector_features.shape[-1]) # Integrate over atom axis if self.pooling == "sum": scalar_features = tf.reduce_sum(scalar_features, axis=1) vector_features = tf.reduce_sum(vector_features, axis=1) elif self.pooling == "max": scalar_features = tf.reduce_max(scalar_features, axis=1) vector_features = tf.transpose(vector_features, perm=[0, 2, 3, 1]) size = tf.sqrt(tf.reduce_sum(tf.square(vector_features), axis=1)) idx = tf.reshape(tf.argmax(size, axis=-1, output_type=tf.int32), [-1, 1, atom_feat, 1]) idx = tf.tile(idx, [1, coor_dims, 1, 1]) vector_features = tf.reshape(tf.batch_gather(vector_features, idx), [-1, coor_dims, atom_feat]) # Activation scalar_features = self.activation(scalar_features) vector_features = self.activation(vector_features) if self.system == "spherical": x, y, z = tf.unstack(vector_features, axis=1) r = tf.sqrt(tf.square(x) + tf.square(y) + tf.square(z)) t = tf.acos(tf.divide(z, r + tf.cast(tf.equal(r, 0), dtype=float))) p = tf.atan(tf.divide(y, x + tf.cast(tf.equal(x, 0), dtype=float))) vector_features = tf.stack([r, t, p], axis=1) return [scalar_features, vector_features]
Example #11
Source File: functions.py From tangent with Apache License 2.0 | 5 votes |
def tfe_reduce_max(timage, boolean): return tf.reduce_max(timage, None, boolean)
Example #12
Source File: retrain.py From tensorflow-image-detection with MIT License | 5 votes |
def variable_summaries(var): """Attach a lot of summaries to a Tensor (for TensorBoard visualization).""" with tf.name_scope('summaries'): mean = tf.reduce_mean(var) tf.summary.scalar('mean', mean) with tf.name_scope('stddev'): stddev = tf.sqrt(tf.reduce_mean(tf.square(var - mean))) tf.summary.scalar('stddev', stddev) tf.summary.scalar('max', tf.reduce_max(var)) tf.summary.scalar('min', tf.reduce_min(var)) tf.summary.histogram('histogram', var)
Example #13
Source File: lattice_lib.py From lattice with Apache License 2.0 | 5 votes |
def _trapezoid_violation_update(differences, any_edgeworth, same_edgeworth, prior_update): """Calculates update amount based on violations for trapezoid projection. Note that the shape of the returned tensor is different based on the value of the any_edgeworth boolean feature. A single-valued tensor is returned when it is true, representing the amount by which all relevant weights will be updated. A tensor matching the shape of differences is returned when it is false, representing the individual updates to be applied to each relevant weight. Args: differences: Tensor containing amounts by which constraints are satisfied or violated. any_edgeworth: Boolean for whether any edgeworth trust constraints are set for this lattice layer. same_edgeworth: Boolean for whether there is a matching edgeworth constraint for the trapezoid constraint being updated. prior_update: Tensor containing previous trapezoid constraint update. Returns: Tensor either matching the shape of the input differences tensor or consisting of a single element. """ if any_edgeworth and same_edgeworth: return tf.maximum(tf.maximum(tf.reduce_max(differences), 0), prior_update) elif any_edgeworth: return tf.maximum(tf.reduce_max(differences), 0) else: return tf.maximum(differences, 0)
Example #14
Source File: detect_face.py From insightface with MIT License | 5 votes |
def softmax(self, target, axis, name=None): max_axis = tf.reduce_max(target, axis, keep_dims=True) target_exp = tf.exp(target-max_axis) normalize = tf.reduce_sum(target_exp, axis, keep_dims=True) softmax = tf.div(target_exp, normalize, name) return softmax
Example #15
Source File: distributions.py From HardRLWithYoutube with MIT License | 5 votes |
def kl(self, other): a0 = self.logits - tf.reduce_max(self.logits, axis=-1, keepdims=True) a1 = other.logits - tf.reduce_max(other.logits, axis=-1, keepdims=True) ea0 = tf.exp(a0) ea1 = tf.exp(a1) z0 = tf.reduce_sum(ea0, axis=-1, keepdims=True) z1 = tf.reduce_sum(ea1, axis=-1, keepdims=True) p0 = ea0 / z0 return tf.reduce_sum(p0 * (a0 - tf.log(z0) - a1 + tf.log(z1)), axis=-1)
Example #16
Source File: layer.py From 3DGCN with MIT License | 5 votes |
def call(self, inputs, mask=None): # Import graph tensors # vector_features_1 = (samples, max_atoms, max_atoms, coor_dims, atom_feat) # vector_features_2 = (samples, max_atoms, max_atoms, coor_dims, atom_feat) # adjacency = (samples, max_atoms, max_atoms) vector_features_1, vector_features_2, adjacency = inputs # Get parameters max_atoms = int(vector_features_1.shape[1]) atom_feat_1 = int(vector_features_1.shape[-1]) atom_feat_2 = int(vector_features_2.shape[-1]) coor_dims = int(vector_features_1.shape[-2]) # Concatenate two features vector_features = tf.concat([vector_features_1, vector_features_2], axis=-1) # Linear combination vector_features = tf.reshape(vector_features, [-1, atom_feat_1 + atom_feat_2]) vector_features = tf.matmul(vector_features, self.w_conv_vector) + self.b_conv_vector vector_features = tf.reshape(vector_features, [-1, max_atoms, max_atoms, coor_dims, self.filters]) # Adjacency masking adjacency = tf.reshape(adjacency, [-1, max_atoms, max_atoms, 1, 1]) adjacency = tf.tile(adjacency, [1, 1, 1, coor_dims, self.filters]) vector_features = tf.multiply(vector_features, adjacency) # Integrate over second atom axis if self.pooling == "sum": vector_features = tf.reduce_sum(vector_features, axis=2) elif self.pooling == "max": vector_features = tf.reduce_max(vector_features, axis=2) # Activation vector_features = self.activation(vector_features) return vector_features
Example #17
Source File: layer.py From 3DGCN with MIT License | 5 votes |
def call(self, inputs, mask=None): # Import graph tensors # scalar_features_1 = (samples, max_atoms, max_atoms, atom_feat) # scalar_features_2 = (samples, max_atoms, max_atoms, atom_feat) # adjacency = (samples, max_atoms, max_atoms) scalar_features_1, scalar_features_2, adjacency = inputs # Get parameters max_atoms = int(scalar_features_1.shape[1]) atom_feat_1 = int(scalar_features_1.shape[-1]) atom_feat_2 = int(scalar_features_2.shape[-1]) # Concatenate two features scalar_features = tf.concat([scalar_features_1, scalar_features_2], axis=-1) # Linear combination scalar_features = tf.reshape(scalar_features, [-1, atom_feat_1 + atom_feat_2]) scalar_features = tf.matmul(scalar_features, self.w_conv_scalar) + self.b_conv_scalar scalar_features = tf.reshape(scalar_features, [-1, max_atoms, max_atoms, self.filters]) # Adjacency masking adjacency = tf.reshape(adjacency, [-1, max_atoms, max_atoms, 1]) adjacency = tf.tile(adjacency, [1, 1, 1, self.filters]) scalar_features = tf.multiply(scalar_features, adjacency) # Integrate over second atom axis if self.pooling == "sum": scalar_features = tf.reduce_sum(scalar_features, axis=2) elif self.pooling == "max": scalar_features = tf.reduce_max(scalar_features, axis=2) # Activation scalar_features = self.activation(scalar_features) return scalar_features
Example #18
Source File: functions.py From tangent with Apache License 2.0 | 5 votes |
def tfe_reduce_max_axis(timage, boolean): return tf.reduce_max(timage, [0, 1, 2], boolean)
Example #19
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 #20
Source File: box_list_ops.py From object_detector_app with MIT License | 5 votes |
def prune_non_overlapping_boxes( boxlist1, boxlist2, min_overlap=0.0, scope=None): """Prunes the boxes in boxlist1 that overlap less than thresh with boxlist2. For each box in boxlist1, we want its IOA to be more than minoverlap with at least one of the boxes in boxlist2. If it does not, we remove it. Args: boxlist1: BoxList holding N boxes. boxlist2: BoxList holding M boxes. min_overlap: Minimum required overlap between boxes, to count them as overlapping. scope: name scope. Returns: new_boxlist1: A pruned boxlist with size [N', 4]. keep_inds: A tensor with shape [N'] indexing kept bounding boxes in the first input BoxList `boxlist1`. """ with tf.name_scope(scope, 'PruneNonOverlappingBoxes'): ioa_ = ioa(boxlist2, boxlist1) # [M, N] tensor ioa_ = tf.reduce_max(ioa_, reduction_indices=[0]) # [N] tensor keep_bool = tf.greater_equal(ioa_, tf.constant(min_overlap)) keep_inds = tf.squeeze(tf.where(keep_bool), squeeze_dims=[1]) new_boxlist1 = gather(boxlist1, keep_inds) return new_boxlist1, keep_inds
Example #21
Source File: models.py From nlp-tensorflow with MIT License | 5 votes |
def _build_net(self): with tf.variable_scope("placeholder"): self.input_x = tf.placeholder(tf.float32, shape=(None, self.vocab_size)) self.input_y = tf.placeholder(tf.int32, shape=(None,)) Y_one_hot = tf.one_hot(self.input_y, self.n_class) with tf.variable_scope("output", reuse=tf.AUTO_REUSE): W = tf.get_variable('W', dtype=tf.float32, initializer=tf.truncated_normal((self.vocab_size, self.n_class))) b = tf.get_variable('b', dtype=tf.float32, initializer=tf.constant(0.1, shape=(self.n_class,))) logits = tf.nn.xw_plus_b(self.input_x, W, b) self.prob = tf.reduce_max(tf.nn.softmax(logits), axis=1) self.prediction = tf.cast(tf.argmax(logits, axis=1), tf.int32) with tf.variable_scope("loss"): self.loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=Y_one_hot)) with tf.variable_scope("train", reuse=tf.AUTO_REUSE): optimizer = tf.train.AdamOptimizer(self.lr) self.train_op = optimizer.minimize(self.loss) with tf.variable_scope("accuracy"): correct = tf.equal(self.prediction, self.input_y) self.accuracy = tf.reduce_mean(tf.cast(correct, tf.float32)) self.sess.run(tf.global_variables_initializer())
Example #22
Source File: distributions.py From HardRLWithYoutube with MIT License | 5 votes |
def entropy(self): a0 = self.logits - tf.reduce_max(self.logits, axis=-1, keepdims=True) ea0 = tf.exp(a0) z0 = tf.reduce_sum(ea0, axis=-1, keepdims=True) p0 = ea0 / z0 return tf.reduce_sum(p0 * (tf.log(z0) - a0), axis=-1)
Example #23
Source File: keypoint_ops.py From object_detector_app with MIT License | 5 votes |
def to_absolute_coordinates(keypoints, height, width, check_range=True, scope=None): """Converts normalized keypoint coordinates to absolute pixel coordinates. This function raises an assertion failed error when the maximum keypoint coordinate value is larger than 1.01 (in which case coordinates are already absolute). Args: keypoints: A tensor of shape [num_instances, num_keypoints, 2] height: Maximum value for y coordinate of absolute keypoint coordinates. width: Maximum value for x coordinate of absolute keypoint coordinates. check_range: If True, checks if the coordinates are normalized or not. scope: name scope. Returns: tensor of shape [num_instances, num_keypoints, 2] with absolute coordinates in terms of the image size. """ with tf.name_scope(scope, 'ToAbsoluteCoordinates'): height = tf.cast(height, tf.float32) width = tf.cast(width, tf.float32) # Ensure range of input keypoints is correct. if check_range: max_val = tf.reduce_max(keypoints) max_assert = tf.Assert(tf.greater_equal(1.01, max_val), ['maximum keypoint coordinate value is larger ' 'than 1.01: ', max_val]) with tf.control_dependencies([max_assert]): width = tf.identity(width) return scale(keypoints, height, width)
Example #24
Source File: kfac_utils.py From HardRLWithYoutube with MIT License | 5 votes |
def detectMinVal(input_mat, var, threshold=1e-6, name='', debug=False): eigen_min = tf.reduce_min(input_mat) eigen_max = tf.reduce_max(input_mat) eigen_ratio = eigen_max / eigen_min input_mat_clipped = clipoutNeg(input_mat, threshold) if debug: input_mat_clipped = tf.cond(tf.logical_or(tf.greater(eigen_ratio, 0.), tf.less(eigen_ratio, -500)), lambda: input_mat_clipped, lambda: tf.Print( input_mat_clipped, [tf.convert_to_tensor('screwed ratio ' + name + ' eigen values!!!'), tf.convert_to_tensor(var.name), eigen_min, eigen_max, eigen_ratio])) return input_mat_clipped
Example #25
Source File: utils.py From HardRLWithYoutube with MIT License | 5 votes |
def cat_entropy(logits): a0 = logits - tf.reduce_max(logits, 1, keepdims=True) ea0 = tf.exp(a0) z0 = tf.reduce_sum(ea0, 1, keepdims=True) p0 = ea0 / z0 return tf.reduce_sum(p0 * (tf.log(z0) - a0), 1)
Example #26
Source File: generator.py From UROP-Adversarial-Feature-Matching-for-Text-Generation with GNU Affero General Public License v3.0 | 5 votes |
def lstm(self, prev_y, prev_h, prev_c, z): hs = self.hidden_size preact = tf.einsum('ijk,ka->ija', prev_h, self.h2h_W) + \ tf.einsum('ijk,ka->ija', prev_y, self.i2h_W) + \ tf.matmul(z, self.z2h_W) + \ self.b # preactivation # [1, batch_size, hidden_size * 4] i = tf.sigmoid(preact[:, :, 0*hs: 1*hs]) f = tf.sigmoid(preact[:, :, 1*hs: 2*hs]) o = tf.sigmoid(preact[:, :, 2*hs: 3*hs]) c = tf.tanh(preact[:, :, 3*hs: 4*hs]) c = f * prev_c + i * c # [1, batch_size, hidden_size] (element-wise multiply) h = o * tf.tanh(c) # [1, batch_size, hidden_size] y = tf.einsum('ijk,ka->ija', h, self.Vhid) + self.bhid # [1, batch_size, vocab_size] # Author doesn't mention this part in his paper, but it appers in his code # So I assume this is part of his soft-max approx. strategy ---| max_y = tf.reduce_max(y, axis=1, keep_dims=True) # [1, 1, vocab_size] e = tf.exp((y - max_y) * self.L) # [1, batch_size, vocab_size] w = e / tf.reduce_sum(e, axis=1, keep_dims=True) # [1, batch_size, vocab_size] # Assumption ends here ----------------------------------------| y = tf.einsum('ijk,ka->ija', w, self.Wemb) # [1, batch_size, input_dim] return y, h, c
Example #27
Source File: distributions.py From lirpg with MIT License | 5 votes |
def entropy(self): a0 = self.logits - tf.reduce_max(self.logits, axis=-1, keepdims=True) ea0 = tf.exp(a0) z0 = tf.reduce_sum(ea0, axis=-1, keepdims=True) p0 = ea0 / z0 return tf.reduce_sum(p0 * (tf.log(z0) - a0), axis=-1)
Example #28
Source File: distributions.py From lirpg with MIT License | 5 votes |
def kl(self, other): a0 = self.logits - tf.reduce_max(self.logits, axis=-1, keepdims=True) a1 = other.logits - tf.reduce_max(other.logits, axis=-1, keepdims=True) ea0 = tf.exp(a0) ea1 = tf.exp(a1) z0 = tf.reduce_sum(ea0, axis=-1, keepdims=True) z1 = tf.reduce_sum(ea1, axis=-1, keepdims=True) p0 = ea0 / z0 return tf.reduce_sum(p0 * (a0 - tf.log(z0) - a1 + tf.log(z1)), axis=-1)
Example #29
Source File: kfac_utils.py From lirpg with MIT License | 5 votes |
def detectMinVal(input_mat, var, threshold=1e-6, name='', debug=False): eigen_min = tf.reduce_min(input_mat) eigen_max = tf.reduce_max(input_mat) eigen_ratio = eigen_max / eigen_min input_mat_clipped = clipoutNeg(input_mat, threshold) if debug: input_mat_clipped = tf.cond(tf.logical_or(tf.greater(eigen_ratio, 0.), tf.less(eigen_ratio, -500)), lambda: input_mat_clipped, lambda: tf.Print( input_mat_clipped, [tf.convert_to_tensor('screwed ratio ' + name + ' eigen values!!!'), tf.convert_to_tensor(var.name), eigen_min, eigen_max, eigen_ratio])) return input_mat_clipped
Example #30
Source File: utils.py From lirpg with MIT License | 5 votes |
def cat_entropy(logits): a0 = logits - tf.reduce_max(logits, 1, keepdims=True) ea0 = tf.exp(a0) z0 = tf.reduce_sum(ea0, 1, keepdims=True) p0 = ea0 / z0 return tf.reduce_sum(p0 * (tf.log(z0) - a0), 1)