Python tensorflow.compat.v2.one_hot() Examples
The following are 6
code examples of tensorflow.compat.v2.one_hot().
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.compat.v2
, or try the search function
.
Example #1
Source File: custom_loops.py From tf-quant-finance with Apache License 2.0 | 6 votes |
def _batch_jacobian(y, x, tape): """Computes a Jacobian w.r.t. last dimensions of y and x.""" # y and x must have the same batch dimensions. # For input shapes (b, dy), (b, dx) yields shape (b, dy, dx). d = y.shape.as_list()[-1] if d is None: raise ValueError("Last dimension of state Tensors must be known.") grads = [] for i in range(d): w = tf.broadcast_to(tf.one_hot(i, d, dtype=y.dtype), y.shape) # We must use tf.UnconnectedGradients.ZERO here and below, because some # state components may legitimately not depend on each other or some of the # params. grad = tape.gradient(y, x, output_gradients=w, unconnected_gradients=tf.UnconnectedGradients.ZERO) grads.append(grad) return tf.stack(grads, axis=-2)
Example #2
Source File: export.py From hub with Apache License 2.0 | 6 votes |
def train_step(model, loss_fn, optimizer_fn, metric, image, label): """Perform one training step for the model. Args: model: Keras model to train. loss_fn: Loss function to use. optimizer_fn: Optimizer function to use. metric: keras.metric to use. image: Tensor of training images of shape [batch_size, 28, 28, 1]. label: Tensor of class labels of shape [batch_size]. """ with tf.GradientTape() as tape: preds = model(image) label_onehot = tf.one_hot(label, 10) loss_ = loss_fn(label_onehot, preds) grads = tape.gradient(loss_, model.trainable_variables) optimizer_fn.apply_gradients(zip(grads, model.trainable_variables)) metric(loss_)
Example #3
Source File: custom_loops.py From tf-quant-finance with Apache License 2.0 | 5 votes |
def _write_to_accumulators(nested_acc, nested_tensor, index): if isinstance(nested_tensor, tf.Tensor): assert isinstance(nested_acc, tf.Tensor) acc_size = nested_acc.shape.as_list()[0] one_hot = tf.one_hot(index, depth=acc_size) one_hot = tf.reshape(one_hot, [acc_size] + [1] * len(nested_tensor.shape)) return tf.where(one_hot > 0, nested_tensor, nested_acc) return [_write_to_accumulators(acc, t, index) for acc, t in zip(nested_acc, nested_tensor)]
Example #4
Source File: gumbel_softmax.py From agents with Apache License 2.0 | 5 votes |
def convert_to_one_hot(self, samples): return tf.one_hot( tf.argmax(samples, axis=-1), self.distribution.event_size, dtype=self._output_dtype)
Example #5
Source File: pixelcnn.py From alibi-detect with Apache License 2.0 | 4 votes |
def _sample_channels(self, component_logits, locs, scales, coeffs=None, seed=None): """Sample a single pixel-iteration and apply channel conditioning. Args: component_logits: 4D `Tensor` of logits for the Categorical distribution over Quantized Logistic mixture components. Dimensions are `[batch_size, height, width, num_logistic_mix]`. locs: 4D `Tensor` of location parameters for the Quantized Logistic mixture components. Dimensions are `[batch_size, height, width, num_logistic_mix, num_channels]`. scales: 4D `Tensor` of location parameters for the Quantized Logistic mixture components. Dimensions are `[batch_size, height, width, num_logistic_mix, num_channels]`. coeffs: 4D `Tensor` of coefficients for the linear dependence among color channels, or `None` if there is only one channel. Dimensions are `[batch_size, height, width, num_logistic_mix, num_coeffs]`, where `num_coeffs = num_channels * (num_channels - 1) // 2`. seed: `int`, random seed. Returns: samples: 4D `Tensor` of sampled image data with autoregression among channels. Dimensions are `[batch_size, height, width, num_channels]`. """ num_channels = self.event_shape[-1] # sample mixture components once for the entire pixel component_dist = categorical.Categorical(logits=component_logits) mask = tf.one_hot(indices=component_dist.sample(seed=seed), depth=self._num_logistic_mix) mask = tf.cast(mask[..., tf.newaxis], self.dtype) # apply mixture component mask and separate out RGB parameters masked_locs = tf.reduce_sum(locs * mask, axis=-2) loc_tensors = tf.split(masked_locs, num_channels, axis=-1) masked_scales = tf.reduce_sum(scales * mask, axis=-2) scale_tensors = tf.split(masked_scales, num_channels, axis=-1) if coeffs is not None: num_coeffs = num_channels * (num_channels - 1) // 2 masked_coeffs = tf.reduce_sum(coeffs * mask, axis=-2) coef_tensors = tf.split(masked_coeffs, num_coeffs, axis=-1) channel_samples = [] coef_count = 0 for i in range(num_channels): loc = loc_tensors[i] for c in channel_samples: loc += c * coef_tensors[coef_count] coef_count += 1 logistic_samp = logistic.Logistic(loc=loc, scale=scale_tensors[i]).sample(seed=seed) logistic_samp = tf.clip_by_value(logistic_samp, -1., 1.) channel_samples.append(logistic_samp) return tf.concat(channel_samples, axis=-1)
Example #6
Source File: ito_process.py From tf-quant-finance with Apache License 2.0 | 4 votes |
def _sample_paths(self, times, grid_step, keep_mask, num_requested_times, num_samples, initial_state, random_type, seed, swap_memory): """Returns a sample of paths from the process.""" dt = times[1:] - times[:-1] sqrt_dt = tf.sqrt(dt) current_state = initial_state + tf.zeros( [num_samples, self.dim()], dtype=initial_state.dtype) steps_num = tf.shape(dt)[-1] wiener_mean = tf.zeros((self.dim(), 1), dtype=self._dtype) cond_fn = lambda i, *args: i < steps_num def step_fn(i, written_count, current_state, result): """Performs one step of Euler scheme.""" current_time = times[i + 1] dw = random_ops.mv_normal_sample((num_samples,), mean=wiener_mean, random_type=random_type, seed=seed) dw = dw * sqrt_dt[i] dt_inc = dt[i] * self.drift_fn()(current_time, current_state) # pylint: disable=not-callable dw_inc = tf.squeeze( tf.matmul(self.volatility_fn()(current_time, current_state), dw), -1) # pylint: disable=not-callable next_state = current_state + dt_inc + dw_inc def write_next_state_to_result(): # Replace result[:, written_count, :] with next_state. one_hot = tf.one_hot(written_count, depth=num_requested_times) mask = tf.expand_dims(one_hot > 0, axis=-1) return tf.where(mask, tf.expand_dims(next_state, axis=1), result) # Keep only states for times requested by user. result = tf.cond(keep_mask[i + 1], write_next_state_to_result, lambda: result) written_count += tf.cast(keep_mask[i + 1], dtype=tf.int32) return i + 1, written_count, next_state, result # Maximum number iterations is passed to the while loop below. It improves # performance of the while loop on a GPU and is needed for XLA-compilation # comptatiblity maximum_iterations = ( tf.cast(1. / grid_step, dtype=tf.int32) + tf.size(times)) result = tf.zeros((num_samples, num_requested_times, self.dim())) _, _, _, result = tf.compat.v1.while_loop( cond_fn, step_fn, (0, 0, current_state, result), maximum_iterations=maximum_iterations, swap_memory=swap_memory) return result