本文整理汇总了Python中tensorflow.compat.v2.sqrt方法的典型用法代码示例。如果您正苦于以下问题:Python v2.sqrt方法的具体用法?Python v2.sqrt怎么用?Python v2.sqrt使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tensorflow.compat.v2
的用法示例。
在下文中一共展示了v2.sqrt方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import sqrt [as 别名]
def __init__(self,
bits=8,
max_value=None,
use_stochastic_rounding=False,
quadratic_approximation=False):
self.bits = bits
self.max_value = max_value
self.use_stochastic_rounding = use_stochastic_rounding
# if True, round to the exponent for sqrt(x),
# so that the return value can be divided by two without remainder.
self.quadratic_approximation = quadratic_approximation
need_exponent_sign_bit = _need_exponent_sign_bit_check(self.max_value)
self._min_exp = -2**(self.bits - need_exponent_sign_bit)
self._max_exp = 2**(self.bits - need_exponent_sign_bit) - 1
if self.quadratic_approximation:
self._max_exp = 2 * (self._max_exp // 2)
示例2: test_sample_paths_dtypes
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import sqrt [as 别名]
def test_sample_paths_dtypes(self):
"""Sampled paths have the expected dtypes."""
for dtype in [np.float32, np.float64]:
drift_fn = lambda t, x: tf.sqrt(t) * tf.ones_like(x, dtype=t.dtype)
vol_fn = lambda t, x: t * tf.ones([1, 1], dtype=t.dtype)
paths = self.evaluate(
euler_sampling.sample(
dim=1,
drift_fn=drift_fn, volatility_fn=vol_fn,
times=[0.1, 0.2],
num_samples=10,
initial_state=[0.1],
time_step=0.01,
seed=123,
dtype=dtype))
self.assertEqual(paths.dtype, dtype)
示例3: _update_log_spot
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import sqrt [as 别名]
def _update_log_spot(
kappa, theta, epsilon, rho,
current_vol, next_vol, current_log_spot, time_step, normals,
gamma_1=0.5, gamma_2=0.5):
"""Updates log-spot value."""
k_0 = - rho * kappa * theta / epsilon * time_step
k_1 = (gamma_1 * time_step
* (kappa * rho / epsilon - 0.5)
- rho / epsilon)
k_2 = (gamma_2 * time_step
* (kappa * rho / epsilon - 0.5)
+ rho / epsilon)
k_3 = gamma_1 * time_step * (1 - rho**2)
k_4 = gamma_2 * time_step * (1 - rho**2)
next_log_spot = (
current_log_spot + k_0 + k_1 * current_vol + k_2 * next_vol
+ tf.sqrt(k_3 * current_vol + k_4 * next_vol) * normals)
return next_log_spot
示例4: test_sample_paths_dtypes
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import sqrt [as 别名]
def test_sample_paths_dtypes(self):
"""Sampled paths have the expected dtypes."""
for dtype in [np.float32, np.float64]:
drift_fn = lambda t, x: tf.sqrt(t) * tf.ones_like(x, dtype=t.dtype)
vol_fn = lambda t, x: t * tf.ones([1, 1], dtype=t.dtype)
process = GenericItoProcess(
dim=1, drift_fn=drift_fn, volatility_fn=vol_fn, dtype=dtype)
paths = self.evaluate(
process.sample_paths(
times=[0.1, 0.2],
num_samples=10,
initial_state=[0.1],
time_step=0.01,
seed=123))
self.assertEqual(paths.dtype, dtype)
# Several tests below are unit tests for GenericItoProcess.fd_solver_backward:
# they mock out the pde solver and check only the conversion of SDE to PDE,
# but not PDE solving. There are also integration tests further below.
示例5: hypot
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import sqrt [as 别名]
def hypot(x1, x2):
return sqrt(square(x1) + square(x2))
示例6: sqrt
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import sqrt [as 别名]
def sqrt(x):
return _scalar(tf.sqrt, x, True)
示例7: _init_norm
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import sqrt [as 别名]
def _init_norm(self):
"""Set the norm of the weight vector."""
kernel_norm = tf.sqrt(tf.reduce_sum(tf.square(self.v), axis=self.kernel_norm_axes))
self.g.assign(kernel_norm)
示例8: _data_dep_init
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import sqrt [as 别名]
def _data_dep_init(self, inputs):
"""Data dependent initialization."""
# Normalize kernel first so that calling the layer calculates
# `tf.dot(v, x)/tf.norm(v)` as in (5) in ([Salimans and Kingma, 2016][1]).
self._compute_weights()
activation = self.layer.activation
self.layer.activation = None
use_bias = self.layer.bias is not None
if use_bias:
bias = self.layer.bias
self.layer.bias = tf.zeros_like(bias)
# Since the bias is initialized as zero, setting the activation to zero and
# calling the initialized layer (with normalized kernel) yields the correct
# computation ((5) in Salimans and Kingma (2016))
x_init = self.layer(inputs)
norm_axes_out = list(range(x_init.shape.rank - 1))
m_init, v_init = tf.nn.moments(x_init, norm_axes_out)
scale_init = 1. / tf.sqrt(v_init + 1e-10)
self.g.assign(self.g * scale_init)
if use_bias:
self.layer.bias = bias
self.layer.bias.assign(-m_init * scale_init)
self.layer.activation = activation
示例9: test_normal_integral_mean_and_var_correctly_estimated
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import sqrt [as 别名]
def test_normal_integral_mean_and_var_correctly_estimated(self):
n = int(1000)
# This test is almost identical to the similarly named test in
# monte_carlo_test.py. The only difference is that we use the Halton
# samples instead of the random samples to evaluate the expectations.
# MC with pseudo random numbers converges at the rate of 1/ Sqrt(N)
# (N=number of samples). For QMC in low dimensions, the expected convergence
# rate is ~ 1/N. Hence we should only need 1e3 samples as compared to the
# 1e6 samples used in the pseudo-random monte carlo.
mu_p = tf.constant([-1., 1.], dtype=tf.float64)
mu_q = tf.constant([0., 0.], dtype=tf.float64)
sigma_p = tf.constant([0.5, 0.5], dtype=tf.float64)
sigma_q = tf.constant([1., 1.], dtype=tf.float64)
p = tfd.Normal(loc=mu_p, scale=sigma_p)
q = tfd.Normal(loc=mu_q, scale=sigma_q)
cdf_sample, _ = random.halton.sample(2, num_results=n, dtype=tf.float64,
seed=1729)
q_sample = q.quantile(cdf_sample)
# Compute E_p[X].
e_x = tf.reduce_mean(q_sample * p.prob(q_sample) / q.prob(q_sample), 0)
# Compute E_p[X^2 - E_p[X]^2].
e_x2 = tf.reduce_mean(q_sample**2 * p.prob(q_sample) / q.prob(q_sample)
- e_x**2, 0)
stddev = tf.sqrt(e_x2)
# Keep the tolerance levels the same as in monte_carlo_test.py.
self.assertEqual(p.batch_shape, e_x.shape)
self.assertAllClose(self.evaluate(p.mean()), self.evaluate(e_x), rtol=0.01)
self.assertAllClose(
self.evaluate(p.stddev()), self.evaluate(stddev), rtol=0.02)
示例10: test_normal_integral_mean_and_var_correctly_estimated
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import sqrt [as 别名]
def test_normal_integral_mean_and_var_correctly_estimated(self):
n = int(1000)
# This test is almost identical to the similarly named test in
# monte_carlo_test.py. The only difference is that we use the Sobol
# samples instead of the random samples to evaluate the expectations.
# MC with pseudo random numbers converges at the rate of 1/ Sqrt(N)
# (N=number of samples). For QMC in low dimensions, the expected convergence
# rate is ~ 1/N. Hence we should only need 1e3 samples as compared to the
# 1e6 samples used in the pseudo-random monte carlo.
dtype = tf.float64
mu_p = tf.constant([-1., 1.], dtype=dtype)
mu_q = tf.constant([0., 0.], dtype=dtype)
sigma_p = tf.constant([0.5, 0.5], dtype=dtype)
sigma_q = tf.constant([1., 1.], dtype=dtype)
p = tfp.distributions.Normal(loc=mu_p, scale=sigma_p)
q = tfp.distributions.Normal(loc=mu_q, scale=sigma_q)
cdf_sample = random.sobol.sample(2, n, dtype=dtype)
q_sample = q.quantile(cdf_sample)
# Compute E_p[X].
e_x = tf.reduce_mean(q_sample * p.prob(q_sample) / q.prob(q_sample), 0)
# Compute E_p[X^2 - E_p[X]^2].
e_x2 = tf.reduce_mean(q_sample**2 * p.prob(q_sample) / q.prob(q_sample)
- e_x**2, 0)
stddev = tf.sqrt(e_x2)
# Keep the tolerance levels the same as in monte_carlo_test.py.
self.assertEqual(p.batch_shape, e_x.shape)
self.assertAllClose(self.evaluate(p.mean()), self.evaluate(e_x), rtol=0.01)
self.assertAllClose(
self.evaluate(p.stddev()), self.evaluate(stddev), rtol=0.02)
示例11: test_sample_paths_1d
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import sqrt [as 别名]
def test_sample_paths_1d(self):
"""Tests path properties for 1-dimentional Ito process.
We construct the following Ito process.
````
dX = mu * sqrt(t) * dt + (a * t + b) dW
````
For this process expected value at time t is x_0 + 2/3 * mu * t^1.5 .
"""
mu = 0.2
a = 0.4
b = 0.33
def drift_fn(t, x):
return mu * tf.sqrt(t) * tf.ones_like(x, dtype=t.dtype)
def vol_fn(t, x):
del x
return (a * t + b) * tf.ones([1, 1], dtype=t.dtype)
times = np.array([0.1, 0.21, 0.32, 0.43, 0.55])
num_samples = 10000
x0 = np.array([0.1])
paths = self.evaluate(
euler_sampling.sample(
dim=1,
drift_fn=drift_fn, volatility_fn=vol_fn,
times=times, num_samples=num_samples, initial_state=x0,
time_step=0.01, seed=12134))
self.assertAllClose(paths.shape, (num_samples, 5, 1), atol=0)
means = np.mean(paths, axis=0).reshape(-1)
expected_means = x0 + (2.0 / 3.0) * mu * np.power(times, 1.5)
self.assertAllClose(means, expected_means, rtol=1e-2, atol=1e-2)
示例12: _sample_paths
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import sqrt [as 别名]
def _sample_paths(self,
times,
num_requested_times,
initial_state,
num_samples,
random_type,
seed,
skip):
"""Returns a sample of paths from the process."""
# Normal draws needed for sampling
normal_draws = utils.generate_mc_normal_draws(
num_normal_draws=1, num_time_steps=num_requested_times,
num_sample_paths=num_samples, random_type=random_type,
seed=seed,
dtype=self._dtype, skip=skip)
times = tf.concat([[0], times], -1)
dt = times[1:] - times[:-1]
# The logarithm of all the increments between the times.
log_increments = ((self._mu - self._sigma**2 / 2) * dt
+ tf.sqrt(dt) * self._sigma
* tf.transpose(tf.squeeze(normal_draws, -1)))
# Since the implementation of tf.math.cumsum is single-threaded we
# use lower-triangular matrix multiplication instead
once = tf.ones([num_requested_times, num_requested_times],
dtype=self._dtype)
lower_triangular = tf.linalg.band_part(once, -1, 0)
cumsum = tf.linalg.matvec(lower_triangular,
log_increments)
samples = initial_state * tf.math.exp(cumsum)
return tf.expand_dims(samples, -1)
# TODO(b/152967694): Remove the duplicate methods.
示例13: _update_variance
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import sqrt [as 别名]
def _update_variance(
kappa, theta, epsilon, rho,
current_vol, time_step, normals, psi_c=1.5):
"""Updates variance value."""
del rho
psi_c = tf.convert_to_tensor(psi_c, dtype=kappa.dtype)
scaled_time = tf.exp(-kappa * time_step)
epsilon_squared = epsilon**2
m = theta + (current_vol - theta) * scaled_time
s_squared = (
current_vol * epsilon_squared * scaled_time / kappa
* (1 - scaled_time) + theta * epsilon_squared / 2 / kappa
* (1 - scaled_time)**2)
psi = s_squared / m**2
uniforms = 0.5 * (1 + tf.math.erf(normals[..., 0] / _SQRT_2))
cond = psi < psi_c
# Result where `cond` is true
psi_inv = 2 / psi
b_squared = psi_inv - 1 + tf.sqrt(psi_inv * (psi_inv - 1))
a = m / (1 + b_squared)
next_var_true = a * (tf.sqrt(b_squared) + tf.squeeze(normals[..., 1]))**2
# Result where `cond` is false
p = (psi - 1) / (psi + 1)
beta = (1 - p) / m
next_var_false = tf.where(uniforms > p,
tf.math.log(1 - p) - tf.math.log(1 - uniforms),
tf.zeros_like(uniforms)) / beta
next_var = tf.where(cond, next_var_true, next_var_false)
return next_var
示例14: test_sample_paths_2d
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import sqrt [as 别名]
def test_sample_paths_2d(self):
"""Tests path properties for 2-dimentional Ito process.
We construct the following Ito processes.
dX_1 = mu_1 sqrt(t) dt + s11 dW_1 + s12 dW_2
dX_2 = mu_2 sqrt(t) dt + s21 dW_1 + s22 dW_2
mu_1, mu_2 are constants.
s_ij = a_ij t + b_ij
For this process expected value at time t is (x_0)_i + 2/3 * mu_i * t^1.5.
"""
mu = np.array([0.2, 0.7])
a = np.array([[0.4, 0.1], [0.3, 0.2]])
b = np.array([[0.33, -0.03], [0.21, 0.5]])
def drift_fn(t, x):
return mu * tf.sqrt(t) * tf.ones_like(x, dtype=t.dtype)
def vol_fn(t, x):
del x
return (a * t + b) * tf.ones([2, 2], dtype=t.dtype)
num_samples = 10000
process = GenericItoProcess(dim=2, drift_fn=drift_fn, volatility_fn=vol_fn)
times = np.array([0.1, 0.21, 0.32, 0.43, 0.55])
x0 = np.array([0.1, -1.1])
paths = self.evaluate(
process.sample_paths(
times,
num_samples=num_samples,
initial_state=x0,
time_step=0.01,
seed=12134))
self.assertAllClose(paths.shape, (num_samples, 5, 2), atol=0)
means = np.mean(paths, axis=0)
times = np.reshape(times, [-1, 1])
expected_means = x0 + (2.0 / 3.0) * mu * np.power(times, 1.5)
self.assertAllClose(means, expected_means, rtol=1e-2, atol=1e-2)
示例15: _gaussian
# 需要导入模块: from tensorflow.compat import v2 [as 别名]
# 或者: from tensorflow.compat.v2 import sqrt [as 别名]
def _gaussian(xs, variance):
return np.exp(-np.square(xs) / (2 * variance)) / np.sqrt(2 * np.pi * variance)