本文整理汇总了Python中tensorflow.compat.v2.gather方法的典型用法代码示例。如果您正苦于以下问题:Python v2.gather方法的具体用法?Python v2.gather怎么用?Python v2.gather使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tensorflow.compat.v2
的用法示例。
在下文中一共展示了v2.gather方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: take
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import gather [as 别名]
def take(a, indices, axis=None, out=None, mode='clip'):
"""out argument is not supported, and default mode is clip."""
if out is not None:
raise ValueError('out argument is not supported in take.')
if mode not in {'raise', 'clip', 'wrap'}:
raise ValueError("Invalid mode '{}' for take".format(mode))
a = asarray(a).data
indices = asarray(indices).data
if axis is None:
a = tf.reshape(a, [-1])
axis = 0
axis_size = tf.shape(a, indices.dtype)[axis]
if mode == 'clip':
indices = tf.clip_by_value(indices, 0, axis_size-1)
elif mode == 'wrap':
indices = tf.math.floormod(indices, axis_size)
else:
raise ValueError("The 'raise' mode to take is not supported.")
return utils.tensor_to_ndarray(tf.gather(a, indices, axis=axis))
示例2: _compute_yt
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import gather [as 别名]
def _compute_yt(self, t, mr_t, sigma_t):
"""Computes y(t) as described in [1], section 10.1.6.1."""
t = tf.repeat(tf.expand_dims(t, axis=0), self._dim, axis=0)
time_index = tf.searchsorted(self._jump_locations, t)
y_between_vol_knots = self._y_integral(
self._padded_knots, self._jump_locations, self._jump_values_vol,
self._jump_values_mr)
y_at_vol_knots = tf.concat(
[self._zero_padding,
_cumsum_using_matvec(y_between_vol_knots)], axis=1)
vn = tf.concat(
[self._zero_padding, self._jump_locations], axis=1)
y_t = self._y_integral(
tf.gather(vn, time_index, batch_dims=1), t, sigma_t, mr_t)
y_t = y_t + tf.gather(y_at_vol_knots, time_index, batch_dims=1)
return tf.math.exp(-2 * mr_t * t) * y_t
示例3: _conditional_variance_x
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import gather [as 别名]
def _conditional_variance_x(self, t, mr_t, sigma_t):
"""Computes the variance of x(t), see [1], Eq. 10.41."""
t = tf.repeat(tf.expand_dims(t, axis=0), self._dim, axis=0)
var_x_between_vol_knots = self._variance_int(self._padded_knots,
self._jump_locations,
self._jump_values_vol,
self._jump_values_mr)
varx_at_vol_knots = tf.concat(
[self._zero_padding,
_cumsum_using_matvec(var_x_between_vol_knots)],
axis=1)
time_index = tf.searchsorted(self._jump_locations, t)
vn = tf.concat(
[self._zero_padding,
self._jump_locations], axis=1)
var_x_t = self._variance_int(
tf.gather(vn, time_index, batch_dims=1), t, sigma_t, mr_t)
var_x_t = var_x_t + tf.gather(varx_at_vol_knots, time_index, batch_dims=1)
var_x_t = (var_x_t[:, 1:] - var_x_t[:, :-1]) * tf.math.exp(
-2 * tf.broadcast_to(mr_t, t.shape)[:, 1:] * t[:, 1:])
return var_x_t
示例4: convert_sharded_tensor_to_eager_tensor
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import gather [as 别名]
def convert_sharded_tensor_to_eager_tensor(value, *args, **kwargs):
del args, kwargs
# TODO(nareshmodi): Consider a collective op to gather the tensors from the
# various devices for performance reasons.
return tf.stack(value.tensors)
示例5: _randomize
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import gather [as 别名]
def _randomize(coeffs, radixes, seed, perms=None):
"""Applies the Owen (2017) randomization to the coefficients."""
given_dtype = coeffs.dtype
coeffs = tf.cast(coeffs, dtype=tf.int32)
num_coeffs = _NUM_COEFFS_BY_DTYPE[given_dtype]
radixes = tf.reshape(tf.cast(radixes, dtype=tf.int32), shape=[-1])
if perms is None:
perms = _get_permutations(num_coeffs, radixes, seed)
perms = tf.reshape(perms, shape=[-1])
radix_sum = tf.reduce_sum(input_tensor=radixes)
radix_offsets = tf.reshape(tf.cumsum(radixes, exclusive=True), shape=[-1, 1])
offsets = radix_offsets + tf.range(num_coeffs) * radix_sum
permuted_coeffs = tf.gather(perms, coeffs + offsets)
return tf.cast(permuted_coeffs, dtype=given_dtype), perms
示例6: stateless_random_shuffle
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import gather [as 别名]
def stateless_random_shuffle(input_tensor, seed, name=None):
"""Produces stateless random shuffle of the 1st dimension of an input Tensor.
This is a stateless version of `tf.random_shuffle`. If run twice with the same
seed, produces the same result.
Example
```python
identity_shuffle = tf.range(100)
random_shuffle = stateless_random_shuffle(identity_shuffle, seed=(42, 2))
```
Args:
input_tensor: float32, float64, int32 or int64 1-D Tensor.
seed: int32 or int64 Tensor of shape [2].
name: Python `str` name prefixed to ops created by this function.
Returns:
A Tensor of the same shape and dtype as `input_tensor`.
"""
with tf.compat.v1.name_scope(name,
default_name='stateless_random_shuffle',
values=[input_tensor, seed]):
input_tensor = tf.convert_to_tensor(input_tensor, name='input_tensor')
seed = tf.convert_to_tensor(seed, name='random_seed')
uniforms = tf.random.stateless_uniform(
shape=[tf.shape(input_tensor)[0]], seed=seed, dtype=tf.float64)
return tf.gather(input_tensor, tf.argsort(uniforms, stable=True, axis=0))
示例7: _prepare_grid
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import gather [as 别名]
def _prepare_grid(self, times, grid_step):
"""Prepares grid of times for path generation.
Args:
times: Rank 1 `Tensor` of increasing positive real values. The times at
which the path points are to be evaluated.
grid_step: Rank 0 real `Tensor`. Maximal distance between points in
resulting grid.
Returns:
Tuple `(all_times, mask)`.
`all_times` is 1-D real `Tensor` containing all points from 'times` and
whose intervals are at most `grid_step`.
`mask` is a boolean 1-D tensor of the same shape as 'all_times', showing
which elements of 'all_times' correspond to values from `times`.
Guarantees that times[0]=0 and grid_step[0]=False.
'all_times` is sorted ascending and may contain duplicates.
"""
grid = tf.range(0.0, times[-1], grid_step, dtype=self._dtype)
all_times = tf.concat([grid, times], axis=0)
mask = tf.concat([
tf.zeros_like(grid, dtype=tf.bool),
tf.ones_like(times, dtype=tf.bool)
],
axis=0)
perm = tf.argsort(all_times, stable=True)
all_times = tf.gather(all_times, perm)
mask = tf.gather(mask, perm)
return all_times, mask
示例8: _prepare_grid
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import gather [as 别名]
def _prepare_grid(*, times, time_step, dtype):
"""Prepares grid of times for path generation.
Args:
times: Rank 1 `Tensor` of increasing positive real values. The times at
which the path points are to be evaluated.
time_step: Rank 0 real `Tensor`. Maximal distance between points in
resulting grid.
dtype: `tf.Dtype` of the input and output `Tensor`s.
Returns:
Tuple `(all_times, mask, time_points)`.
`all_times` is a 1-D real `Tensor` containing all points from 'times` and
the uniform grid of points between `[0, times[-1]]` with grid size equal to
`time_step`. The `Tensor` is sorted in ascending order and may contain
duplicates.
`mask` is a boolean 1-D `Tensor` of the same shape as 'all_times', showing
which elements of 'all_times' correspond to THE values from `times`.
Guarantees that times[0]=0 and mask[0]=False.
`time_indices`. An integer `Tensor` of the same shape as `times` indicating
`times` indices in `all_times`.
"""
grid = tf.range(0.0, times[-1], time_step, dtype=dtype)
all_times = tf.concat([grid, times], axis=0)
mask = tf.concat([
tf.zeros_like(grid, dtype=tf.bool),
tf.ones_like(times, dtype=tf.bool)
],
axis=0)
perm = tf.argsort(all_times, stable=True)
all_times = tf.gather(all_times, perm)
# Remove duplicate points
all_times = tf.unique(all_times).y
time_indices = tf.searchsorted(all_times, times)
mask = tf.gather(mask, perm)
return all_times, mask, time_indices
示例9: _prepare_grid
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import gather [as 别名]
def _prepare_grid(times, time_step, dtype, *params):
"""Prepares grid of times for path generation.
Args:
times: Rank 1 `Tensor` of increasing positive real values. The times at
which the path points are to be evaluated.
time_step: Rank 0 real `Tensor`. Maximal distance between points in
resulting grid.
dtype: `tf.Dtype` of the input and output `Tensor`s.
*params: Parameters of the Heston model. Either scalar `Tensor`s of the
same `dtype` or instances of `PiecewiseConstantFunc`.
Returns:
Tuple `(all_times, mask)`.
`all_times` is a 1-D real `Tensor` containing all points from 'times`, the
uniform grid of points between `[0, times[-1]]` with grid size equal to
`time_step`, and jump locations of piecewise constant parameters The
`Tensor` is sorted in ascending order and may contain duplicates.
`mask` is a boolean 1-D `Tensor` of the same shape as 'all_times', showing
which elements of 'all_times' correspond to THE values from `times`.
Guarantees that times[0]=0 and mask[0]=False.
"""
grid = tf.range(0.0, times[-1], time_step, dtype=dtype)
additional_times = []
for param in params:
if isinstance(param, piecewise.PiecewiseConstantFunc):
additional_times.append(param.jump_locations())
all_times = tf.concat([grid, times] + additional_times, axis=0)
additional_times_mask = [
tf.zeros_like(times, dtype=tf.bool) for times in additional_times]
mask = tf.concat([
tf.zeros_like(grid, dtype=tf.bool),
tf.ones_like(times, dtype=tf.bool)
] + additional_times_mask, axis=0)
perm = tf.argsort(all_times, stable=True)
all_times = tf.gather(all_times, perm)
mask = tf.gather(mask, perm)
return all_times, mask
示例10: _conditional_mean_x
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import gather [as 别名]
def _conditional_mean_x(self, t, mr_t, sigma_t):
"""Computes the drift term in [1], Eq. 10.39."""
t = tf.repeat(tf.expand_dims(t, axis=0), self._dim, axis=0)
time_index = tf.searchsorted(self._jump_locations, t)
vn = tf.concat([self._zero_padding, self._jump_locations], axis=1)
y_between_vol_knots = self._y_integral(self._padded_knots,
self._jump_locations,
self._jump_values_vol,
self._jump_values_mr)
y_at_vol_knots = tf.concat(
[self._zero_padding,
_cumsum_using_matvec(y_between_vol_knots)], axis=1)
ex_between_vol_knots = self._ex_integral(self._padded_knots,
self._jump_locations,
self._jump_values_vol,
self._jump_values_mr,
y_at_vol_knots[:, :-1])
ex_at_vol_knots = tf.concat(
[self._zero_padding,
_cumsum_using_matvec(ex_between_vol_knots)], axis=1)
c = tf.gather(y_at_vol_knots, time_index, batch_dims=1)
exp_x_t = self._ex_integral(
tf.gather(vn, time_index, batch_dims=1), t, sigma_t, mr_t, c)
exp_x_t = exp_x_t + tf.gather(ex_at_vol_knots, time_index, batch_dims=1)
exp_x_t = (exp_x_t[:, 1:] - exp_x_t[:, :-1]) * tf.math.exp(
-tf.broadcast_to(mr_t, t.shape)[:, 1:] * t[:, 1:])
return exp_x_t
示例11: _prepare_grid
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import gather [as 别名]
def _prepare_grid(times, *params):
"""Prepares grid of times for path generation.
Args:
times: Rank 1 `Tensor` of increasing positive real values. The times at
which the path points are to be evaluated.
*params: Parameters of the Heston model. Either scalar `Tensor`s of the
same `dtype` or instances of `PiecewiseConstantFunc`.
Returns:
Tuple `(all_times, mask)`.
`all_times` is a 1-D real `Tensor` containing all points from 'times`, the
uniform grid of points between `[0, times[-1]]` with grid size equal to
`time_step`, and jump locations of piecewise constant parameters The
`Tensor` is sorted in ascending order and may contain duplicates.
`mask` is a boolean 1-D `Tensor` of the same shape as 'all_times', showing
which elements of 'all_times' correspond to THE values from `times`.
Guarantees that times[0]=0 and mask[0]=False.
"""
additional_times = []
for param in params:
if hasattr(param, 'is_piecewise_constant'):
if param.is_piecewise_constant:
# Flatten all jump locations
additional_times.append(tf.reshape(param.jump_locations(), [-1]))
zeros = tf.constant([0], dtype=times.dtype)
all_times = tf.concat([zeros] + [times] + additional_times, axis=0)
additional_times_mask = [
tf.zeros_like(times, dtype=tf.bool) for times in additional_times]
mask = tf.concat([
tf.cast(zeros, dtype=tf.bool),
tf.ones_like(times, dtype=tf.bool)
] + additional_times_mask, axis=0)
perm = tf.argsort(all_times, stable=True)
all_times = tf.gather(all_times, perm)
mask = tf.gather(mask, perm)
return all_times, mask
示例12: _compute_is_bus_day_table
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import gather [as 别名]
def _compute_is_bus_day_table(self):
"""Computes and caches "is business day" table."""
if self._table_cache.is_bus_day is not None:
return self._table_cache.is_bus_day
with tf.init_scope():
ordinals = tf.range(self._ordinal_offset,
self._ordinal_offset + self._calendar_size)
# Apply weekend mask
week_days = (ordinals - 1) % 7
is_holiday = tf.gather(self._weekend_mask, week_days)
# Apply holidays
if self._holidays is not None:
indices = self._holidays.ordinal() - self._ordinal_offset
ones_at_indices = tf.scatter_nd(
tf.expand_dims(indices, axis=-1), tf.ones_like(indices),
is_holiday.shape)
is_holiday = tf.bitwise.bitwise_or(is_holiday, ones_at_indices)
# Add a business day at the beginning and at the end, i.e. at 31 Dec of
# start_year-1 and at 1 Jan of end_year+1. This trick is to avoid dealing
# with special cases on boundaries.
# For example, for Following and Preceding conventions we'd need a special
# value that means "unknown" in the tables. More complicated conventions
# then combine the Following and Preceding tables, and would need special
# treatment of the "unknown" values.
# With these "fake" business days, all computations are automatically
# correct, unless we land on those extra days - for this reason we add
# assertions in all API calls before returning.
is_bus_day_table = tf.concat([[1], 1 - is_holiday, [1]], axis=0)
self._table_cache.is_bus_day = is_bus_day_table
return is_bus_day_table
示例13: _gather
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import gather [as 别名]
def _gather(self, table, indices):
table_size = self._calendar_size + 2
assert1 = tf.debugging.assert_greater_equal(
indices, 0, message=_OUT_OF_BOUNDS_MSG)
assert2 = tf.debugging.assert_less(
indices, table_size, message=_OUT_OF_BOUNDS_MSG)
with tf.control_dependencies([assert1, assert2]):
return tf.gather(table, indices)
示例14: day_of_year
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import gather [as 别名]
def day_of_year(self):
"""Calculates the number of days since the beginning of the year.
Returns:
Tensor of int32 type with elements in range [1, 366]. January 1st yields
"1".
#### Example
```python
dt = tff.datetime.dates_from_tuples([(2019, 1, 25), (2020, 3, 2)])
dt.day_of_year() # [25, 62]
```
"""
if self._day_of_year is None:
cumul_days_in_month_nonleap = tf.math.cumsum(
_DAYS_IN_MONTHS_NON_LEAP, exclusive=True)
cumul_days_in_month_leap = tf.math.cumsum(
_DAYS_IN_MONTHS_LEAP, exclusive=True)
days_before_month_non_leap = tf.gather(cumul_days_in_month_nonleap,
self.month() - 1)
days_before_month_leap = tf.gather(cumul_days_in_month_leap,
self.month() - 1)
days_before_month = tf.where(
date_utils.is_leap_year(self.year()), days_before_month_leap,
days_before_month_non_leap)
self._day_of_year = days_before_month + self.day()
return self._day_of_year
示例15: _num_days_in_month
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import gather [as 别名]
def _num_days_in_month(month, year):
"""Returns number of days in a given month of a given year."""
days_in_months = tf.constant(_DAYS_IN_MONTHS_COMBINED, tf.int32)
is_leap = date_utils.is_leap_year(year)
return tf.gather(days_in_months,
month + 12 * tf.dtypes.cast(is_leap, tf.int32))