本文整理汇总了Python中tensorflow.compat.v2.cast方法的典型用法代码示例。如果您正苦于以下问题:Python v2.cast方法的具体用法?Python v2.cast怎么用?Python v2.cast使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tensorflow.compat.v2
的用法示例。
在下文中一共展示了v2.cast方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import cast [as 别名]
def __init__(self, hidden_layers, input_size=784, num_classes=10):
"""Initializes the neural network.
Args:
hidden_layers: List of ints specifying the sizes of hidden layers. Could
be empty.
input_size: Length of the input array. The network receives the input
image as a flattened 1-d array. Defaults to 784(28*28), the default
image size for MNIST.
num_classes: The number of output classes. Defaults to 10.
"""
hidden_layers = [input_size] + hidden_layers + [num_classes]
self.weights = []
self.biases = []
for i in range(len(hidden_layers) - 1):
# TODO(srbs): This is manually cast to float32 to avoid the cast in
# np.dot since backprop fails for tf.cast op.
self.weights.append(
np.array(
np.random.randn(hidden_layers[i + 1], hidden_layers[i]),
copy=False,
dtype=float32))
self.biases.append(
np.array(
np.random.randn(hidden_layers[i + 1]), copy=False, dtype=float32))
示例2: _key2seed
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import cast [as 别名]
def _key2seed(a):
"""Converts an RNG key to an RNG seed.
Args:
a: an RNG key, an ndarray of shape [] and dtype `np.int64`.
Returns:
an RNG seed, a tensor of shape [2] and dtype `tf.int32`.
"""
def int64_to_int32s(a):
"""Converts an int64 tensor of shape [] to an int32 tensor of shape [2]."""
a = tf.cast(a, tf.uint64)
fst = tf.cast(a, tf.uint32)
snd = tf.cast(
tf.bitwise.right_shift(a, tf.constant(32, tf.uint64)), tf.uint32)
a = [fst, snd]
a = tf.nest.map_structure(lambda x: tf.cast(x, tf.int32), a)
a = tf.stack(a)
return a
return int64_to_int32s(a.data)
示例3: _seed2key
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import cast [as 别名]
def _seed2key(a):
"""Converts an RNG seed to an RNG key.
Args:
a: an RNG seed, a tensor of shape [2] and dtype `tf.int32`.
Returns:
an RNG key, an ndarray of shape [] and dtype `np.int64`.
"""
def int32s_to_int64(a):
"""Converts an int32 tensor of shape [2] to an int64 tensor of shape []."""
a = tf.bitwise.bitwise_or(
tf.cast(a[0], tf.uint64),
tf.bitwise.left_shift(
tf.cast(a[1], tf.uint64), tf.constant(32, tf.uint64)))
a = tf.cast(a, tf.int64)
return a
return tf_np.asarray(int32s_to_int64(a))
示例4: around
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import cast [as 别名]
def around(a, decimals=0): # pylint: disable=missing-docstring
a = asarray(a)
dtype = a.dtype
factor = math.pow(10, decimals)
if np.issubdtype(dtype, np.inexact):
factor = tf.cast(factor, dtype)
else:
# Use float as the working dtype when a.dtype is exact (e.g. integer),
# because `decimals` can be negative.
float_dtype = dtypes.default_float_type()
a = a.astype(float_dtype).data
factor = tf.cast(factor, float_dtype)
a = tf.multiply(a, factor)
a = tf.round(a)
a = tf.math.divide(a, factor)
return utils.tensor_to_ndarray(a).astype(dtype)
示例5: tri
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import cast [as 别名]
def tri(N, M=None, k=0, dtype=None): # pylint: disable=invalid-name,missing-docstring
M = M if M is not None else N
if dtype is not None:
dtype = utils.result_type(dtype)
else:
dtype = dtypes.default_float_type()
if k < 0:
lower = -k - 1
if lower > N:
r = tf.zeros([N, M], dtype)
else:
# Keep as tf bool, since we create an upper triangular matrix and invert
# it.
o = tf.ones([N, M], dtype=tf.bool)
r = tf.cast(tf.math.logical_not(tf.linalg.band_part(o, lower, -1)), dtype)
else:
o = tf.ones([N, M], dtype)
if k > M:
r = o
else:
r = tf.linalg.band_part(o, -1, k)
return utils.tensor_to_ndarray(r)
示例6: true_divide
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import cast [as 别名]
def true_divide(x1, x2):
def _avoid_float64(x1, x2):
if x1.dtype == x2.dtype and x1.dtype in (tf.int32, tf.int64):
x1 = tf.cast(x1, dtype=tf.float32)
x2 = tf.cast(x2, dtype=tf.float32)
return x1, x2
def f(x1, x2):
if x1.dtype == tf.bool:
assert x2.dtype == tf.bool
float_ = dtypes.default_float_type()
x1 = tf.cast(x1, float_)
x2 = tf.cast(x2, float_)
if not dtypes.is_allow_float64():
# tf.math.truediv in Python3 produces float64 when both inputs are int32
# or int64. We want to avoid that when is_allow_float64() is False.
x1, x2 = _avoid_float64(x1, x2)
return tf.math.truediv(x1, x2)
return _bin_op(f, x1, x2)
示例7: _scalar
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import cast [as 别名]
def _scalar(tf_fn, x, promote_to_float=False):
"""Computes the tf_fn(x) for each element in `x`.
Args:
tf_fn: function that takes a single Tensor argument.
x: array_like. Could be an ndarray, a Tensor or any object that can
be converted to a Tensor using `tf.convert_to_tensor`.
promote_to_float: whether to cast the argument to a float dtype
(`dtypes.default_float_type`) if it is not already.
Returns:
An ndarray with the same shape as `x`. The default output dtype is
determined by `dtypes.default_float_type`, unless x is an ndarray with a
floating point type, in which case the output type is same as x.dtype.
"""
x = array_ops.asarray(x)
if promote_to_float and not np.issubdtype(x.dtype, np.inexact):
x = x.astype(dtypes.default_float_type())
return utils.tensor_to_ndarray(tf_fn(x.data))
示例8: update_state
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import cast [as 别名]
def update_state(self, y_true, y_pred, sample_weight=None):
"""Accumulates metric statistics.
`y_true` and `y_pred` should have the same shape.
Args:
y_true: The ground truth values.
y_pred: The predicted values.
sample_weight: Optional weighting of each example. Defaults to 1. Can be a
`Tensor` whose rank is either 0, or the same rank as `y_true`, and must
be broadcastable to `y_true`.
Returns:
Update op.
"""
y_true = tf.cast(y_true, self._dtype)
y_pred = tf.cast(y_pred, self._dtype)
per_list_metric_val, per_list_metric_weights = self._metric.compute(
y_true, y_pred, sample_weight)
return super(_RankingMetric, self).update_state(
per_list_metric_val, sample_weight=per_list_metric_weights)
示例9: _get_payoff_fn
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import cast [as 别名]
def _get_payoff_fn(strikes, is_call_options):
"""Constructs the payoff functions."""
option_signs = tf.cast(is_call_options, dtype=strikes.dtype) * 2 - 1
def payoff(spots):
"""Computes payff for the specified options given the spot grid.
Args:
spots: Tensor of shape [batch_size, grid_size, 1]. The spot values at some
time.
Returns:
Payoffs for exercise at the specified strikes.
"""
return tf.nn.relu((spots - strikes) * option_signs)
return payoff
示例10: test_multiple_state_vars
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import cast [as 别名]
def test_multiple_state_vars(self):
x = tf.constant([3.0, 4.0])
y = tf.constant([5.0, 6.0])
z = tf.constant([7.0, 8.0])
alpha = tf.constant(2.0)
beta = tf.constant(1.0)
with tf.GradientTape(persistent=True) as tape:
tape.watch([alpha, beta])
def body(i, state):
x, y, z = state
k = tf.cast(i + 1, tf.float32)
return [x * alpha - beta, y * k * alpha * beta, z * beta + x]
out = for_loop(body, [x, y, z], [alpha, beta], 3)
with self.subTest("independent_vars"):
grad = tape.gradient(out[1], alpha)
self.assertAllEqual(792, grad)
with self.subTest("dependent_vars"):
grad = tape.gradient(out[2], beta)
self.assertAllEqual(63, grad)
示例11: test_batching
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import cast [as 别名]
def test_batching(self):
x = tf.constant([[3.0, 4.0], [30.0, 40.0]])
y = tf.constant([[5.0, 6.0], [50.0, 60.0]])
z = tf.constant([[7.0, 8.0], [70.0, 80.0]])
alpha = tf.constant(2.0)
beta = tf.constant(1.0)
with tf.GradientTape(persistent=True) as tape:
tape.watch([alpha, beta])
def body(i, state):
x, y, z = state
k = tf.cast(i + 1, tf.float32)
return [x * alpha - beta, y * k * alpha * beta, z * beta + x]
out = for_loop(body, [x, y, z], [alpha, beta], 3)
with self.subTest("independent_vars"):
grad = tape.gradient(out[1], alpha)
self.assertAllEqual(8712, grad)
with self.subTest("dependent_vars"):
grad = tape.gradient(out[2], beta)
self.assertAllEqual(783, grad)
示例12: _updated_cashflow
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import cast [as 别名]
def _updated_cashflow(num_times, exercise_index, exercise_value,
expected_continuation, cashflow):
"""Revises the cashflow tensor where options will be exercised earlier."""
do_exercise_bool = exercise_value > expected_continuation
do_exercise = tf.cast(do_exercise_bool, exercise_value.dtype)
# Shape [num_samples, payoff_dim]
scaled_do_exercise = tf.where(do_exercise_bool, exercise_value,
tf.zeros_like(exercise_value))
# This picks out the samples where we now wish to exercise.
# Shape [num_samples, payoff_dim, 1]
new_samp_masked = tf.expand_dims(scaled_do_exercise, axis=2)
# This should be one on the current time step and zero otherwise.
# This is an array with nonzero entries showing newly exercised payoffs.
zeros = tf.zeros_like(cashflow)
mask = tf.equal(tf.range(0, num_times), exercise_index - 1)
new_cash = tf.where(mask, new_samp_masked, zeros)
# Has shape [num_samples, payoff_dim, 1]
old_mask = tf.expand_dims(1 - do_exercise, axis=2)
mask = tf.range(0, num_times) >= exercise_index
old_mask = tf.where(mask, old_mask, zeros)
# Shape [num_samples, payoff_dim, num_times]
old_cash = old_mask * cashflow
return new_cash + old_cash
示例13: _euler_step
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import cast [as 别名]
def _euler_step(*, i, written_count, current_state, result,
drift_fn, volatility_fn, wiener_mean,
num_samples, times, dt, sqrt_dt, keep_mask,
random_type, seed, normal_draws):
"""Performs one step of Euler scheme."""
current_time = times[i + 1]
written_count = tf.cast(written_count, tf.int32)
if normal_draws is not None:
dw = normal_draws[i]
else:
dw = random.mv_normal_sample(
(num_samples,), mean=wiener_mean, random_type=random_type,
seed=seed)
dw = dw * sqrt_dt[i]
dt_inc = dt[i] * drift_fn(current_time, current_state) # pylint: disable=not-callable
dw_inc = tf.linalg.matvec(volatility_fn(current_time, current_state), dw) # pylint: disable=not-callable
next_state = current_state + dt_inc + dw_inc
result = utils.maybe_update_along_axis(
tensor=result,
do_update=keep_mask[i + 1],
ind=written_count,
axis=1,
new_tensor=tf.expand_dims(next_state, axis=1))
written_count += tf.cast(keep_mask[i + 1], dtype=tf.int32)
return i + 1, written_count, next_state, result
示例14: __init__
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import cast [as 别名]
def __init__(self, weekend_mask=None, holidays=None):
"""Initializer.
Args:
weekend_mask: Boolean `Tensor` of 7 elements one for each day of the week
starting with Monday at index 0. A `True` value indicates the day is
considered a weekend day and a `False` value implies a week day.
Default value: None which means no weekends are applied.
holidays: Defines the holidays that are added to the weekends defined by
`weekend_mask`. An instance of `dates.DateTensor` or an object
convertible to `DateTensor`.
Default value: None which means no holidays other than those implied by
the weekends (if any).
"""
if weekend_mask is not None:
weekend_mask = tf.cast(weekend_mask, dtype=tf.bool)
if holidays is not None:
holidays = dt.convert_to_date_tensor(holidays).ordinal()
self._to_biz_space, self._from_biz_space = hol.business_day_mappers(
weekend_mask=weekend_mask, holidays=holidays)
示例15: _decode_and_center_crop
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import cast [as 别名]
def _decode_and_center_crop(image_bytes):
"""Crops to center of image with padding then scales image size."""
shape = tf.image.extract_jpeg_shape(image_bytes)
image_height = shape[0]
image_width = shape[1]
padded_center_crop_size = tf.cast(
((_IMAGE_SIZE / (_IMAGE_SIZE + _CROP_PADDING)) *
tf.cast(tf.minimum(image_height, image_width), tf.float32)), tf.int32)
offset_height = ((image_height - padded_center_crop_size) + 1) // 2
offset_width = ((image_width - padded_center_crop_size) + 1) // 2
crop_window = tf.stack([
offset_height, offset_width, padded_center_crop_size,
padded_center_crop_size
])
image = tf.image.decode_and_crop_jpeg(image_bytes, crop_window, channels=3)
image = tf.image.resize([image], [_IMAGE_SIZE, _IMAGE_SIZE],
method=tf.image.ResizeMethod.BICUBIC)[0]
image = tf.cast(image, tf.int32)
return image