本文整理汇总了Python中tensorflow.keras.backend.constant方法的典型用法代码示例。如果您正苦于以下问题:Python backend.constant方法的具体用法?Python backend.constant怎么用?Python backend.constant使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tensorflow.keras.backend
的用法示例。
在下文中一共展示了backend.constant方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: build
# 需要导入模块: from tensorflow.keras import backend [as 别名]
# 或者: from tensorflow.keras.backend import constant [as 别名]
def build(self, input_shape):
assert len(input_shape) >= 2
layer_kwargs = dict(
kernel_initializer=self.kernel_initializer,
bias_initializer=self.bias_initializer,
kernel_regularizer=self.kernel_regularizer,
bias_regularizer=self.bias_regularizer,
kernel_constraint=self.kernel_constraint,
bias_constraint=self.bias_constraint
)
self.mlp = Sequential([
Dense(channels, self.mlp_activation, **layer_kwargs)
for channels in self.mlp_hidden
] + [Dense(self.channels, self.activation, use_bias=self.use_bias, **layer_kwargs)])
if self.epsilon is None:
self.eps = self.add_weight(shape=(1,),
initializer='zeros',
name='eps')
else:
# If epsilon is given, keep it constant
self.eps = K.constant(self.epsilon)
self.built = True
示例2: test_binary_auto
# 需要导入模块: from tensorflow.keras import backend [as 别名]
# 或者: from tensorflow.keras.backend import constant [as 别名]
def test_binary_auto():
"""Test binary auto scale quantizer."""
np.random.seed(42)
N = 1000000
m_list = [1.0, 0.1, 0.01, 0.001]
for m in m_list:
x = np.random.uniform(-m, m, (N, 10)).astype(K.floatx())
x = K.constant(x)
quantizer = binary(alpha="auto")
q = K.eval(quantizer(x))
result = get_weight_scale(quantizer, q)
expected = m / 2.0
logging.info("expect %s", expected)
logging.info("result %s", result)
assert_allclose(result, expected, rtol=0.02)
示例3: test_binary_auto_po2
# 需要导入模块: from tensorflow.keras import backend [as 别名]
# 或者: from tensorflow.keras.backend import constant [as 别名]
def test_binary_auto_po2():
"""Test binary auto_po2 scale quantizer."""
np.random.seed(42)
N = 1000000
m_list = [1.0, 0.1, 0.01, 0.001]
for m in m_list:
x = np.random.uniform(-m, m, (N, 10)).astype(K.floatx())
x = K.constant(x)
quantizer_ref = binary(alpha="auto")
quantizer = binary(alpha="auto_po2")
q_ref = K.eval(quantizer_ref(x))
q = K.eval(quantizer(x))
ref = get_weight_scale(quantizer_ref, q_ref)
expected = np.power(2.0, np.round(np.log2(ref)))
result = get_weight_scale(quantizer, q)
assert_allclose(result, expected, rtol=0.0001)
示例4: test_ternary_auto
# 需要导入模块: from tensorflow.keras import backend [as 别名]
# 或者: from tensorflow.keras.backend import constant [as 别名]
def test_ternary_auto():
"""Test ternary auto scale quantizer."""
np.random.seed(42)
N = 1000000
m_list = [1.0, 0.1, 0.01, 0.001]
for m in m_list:
x = np.random.uniform(-m, m, (N, 10)).astype(K.floatx())
x = K.constant(x)
quantizer = ternary(alpha="auto")
q = K.eval(quantizer(x))
d = m/3.0
result = np.mean(get_weight_scale(quantizer, q))
expected = (m + d) / 2.0
assert_allclose(result, expected, rtol=0.02)
示例5: test_stochastic_ternary
# 需要导入模块: from tensorflow.keras import backend [as 别名]
# 或者: from tensorflow.keras.backend import constant [as 别名]
def test_stochastic_ternary(bound, alpha, temperature, expected_values, expected_scale):
np.random.seed(42)
K.set_learning_phase(1)
n = 1000
x = np.random.uniform(-bound, bound, size=(n, 10))
x = np.sort(x, axis=1)
s = stochastic_ternary(alpha=alpha, temperature=temperature)
y = K.eval(s(K.constant(x)))
scale = K.eval(s.scale).astype(np.float32)[0]
ty = np.zeros_like(s)
for i in range(n):
ty = ty + (y[i] / scale)
result = (ty/n).astype(np.float32)
assert_allclose(result, expected_values, atol=0.1)
assert_allclose(scale, expected_scale, rtol=0.1)
示例6: __init__
# 需要导入模块: from tensorflow.keras import backend [as 别名]
# 或者: from tensorflow.keras.backend import constant [as 别名]
def __init__(self, learning_rate=0.001, beta_1=0.9, beta_2=0.999,
epsilon=None, decay=0., amsgrad=False,
model=None, zero_penalties=True, batch_size=32,
total_iterations=0, total_iterations_wd=None,
use_cosine_annealing=False, lr_multipliers=None,
weight_decays=None, init_verbose=True,
eta_min=0, eta_max=1, t_cur=0, name="AdamW", **kwargs):
if total_iterations > 1:
weight_decays = _init_weight_decays(model, zero_penalties,
weight_decays)
eta_t = kwargs.pop('eta_t', 1.)
super(AdamW, self).__init__(name, **kwargs)
self._set_hyper('learning_rate', kwargs.get('lr', learning_rate))
self._set_hyper('decay', self._initial_decay)
self._set_hyper('beta_1', beta_1)
self._set_hyper('beta_2', beta_2)
self.eta_min = K.constant(eta_min, name='eta_min')
self.eta_max = K.constant(eta_max, name='eta_max')
self.eta_t = K.variable(eta_t, dtype='float32', name='eta_t')
self.t_cur = K.variable(t_cur, dtype='int64', name='t_cur')
self.batch_size = batch_size
self.total_iterations = total_iterations
self.total_iterations_wd = total_iterations_wd or total_iterations
self.lr_multipliers = lr_multipliers
self.weight_decays = weight_decays or {}
self.init_verbose = init_verbose
self.use_cosine_annealing = use_cosine_annealing
self.epsilon = epsilon or backend_config.epsilon()
self.amsgrad = amsgrad
_check_args(self, total_iterations, use_cosine_annealing, weight_decays)
self._init_lr = kwargs.get('lr', learning_rate) # to print lr_mult setup
self._updates_processed = 0 # to track num calls to '_resource_apply_...'
self._init_notified = False
self._init_lr = kwargs.get('lr', learning_rate)
示例7: call
# 需要导入模块: from tensorflow.keras import backend [as 别名]
# 或者: from tensorflow.keras.backend import constant [as 别名]
def call(self, inputs):
F = K.int_shape(inputs)[-1]
minkowski_prod_mat = np.eye(F)
minkowski_prod_mat[-1, -1] = -1.
minkowski_prod_mat = K.constant(minkowski_prod_mat)
output = K.dot(inputs, minkowski_prod_mat)
output = K.dot(output, K.transpose(inputs))
output = K.clip(output, -10e9, -1.)
if self.activation is not None:
output = self.activation(output)
return output
示例8: build
# 需要导入模块: from tensorflow.keras import backend [as 别名]
# 或者: from tensorflow.keras.backend import constant [as 别名]
def build(self, input_shape):
assert len(input_shape) >= 2
if self.trainable:
self.beta = self.add_weight(shape=(1,), initializer='ones', name='beta')
else:
self.beta = K.constant(1.)
self.built = True
示例9: piecewise_linear
# 需要导入模块: from tensorflow.keras import backend [as 别名]
# 或者: from tensorflow.keras.backend import constant [as 别名]
def piecewise_linear(t, schedule):
"""分段线性函数
其中schedule是形如{1000: 1, 2000: 0.1}的字典,
表示 t ∈ [0, 1000]时,输出从0均匀增加至1,而
t ∈ [1000, 2000]时,输出从1均匀降低到0.1,最后
t > 2000时,保持0.1不变。
"""
schedule = sorted(schedule.items())
if schedule[0][0] != 0:
schedule = [(0, 0.0)] + schedule
x = K.constant(schedule[0][1], dtype=K.floatx())
t = K.cast(t, K.floatx())
for i in range(len(schedule)):
t_begin = schedule[i][0]
x_begin = x
if i != len(schedule) - 1:
dx = schedule[i + 1][1] - schedule[i][1]
dt = schedule[i + 1][0] - schedule[i][0]
slope = 1.0 * dx / dt
x = schedule[i][1] + slope * (t - t_begin)
else:
x = K.constant(schedule[i][1], dtype=K.floatx())
x = K.switch(t >= t_begin, x, x_begin)
return x
示例10: get_weights
# 需要导入模块: from tensorflow.keras import backend [as 别名]
# 或者: from tensorflow.keras.backend import constant [as 别名]
def get_weights(layer):
weights = layer.get_weights()
out = copy.deepcopy(weights)
for j, weight in enumerate(weights):
if hasattr(layer, "get_quantizers") and layer.get_quantizers()[j]:
out[j] = K.eval(
layer.get_quantizers()[j](K.constant(weight)))
return out
示例11: test_stochastic_binary
# 需要导入模块: from tensorflow.keras import backend [as 别名]
# 或者: from tensorflow.keras.backend import constant [as 别名]
def test_stochastic_binary():
np.random.seed(42)
K.set_learning_phase(1)
x = np.random.uniform(-0.01, 0.01, size=10)
x = np.sort(x)
s = stochastic_binary(alpha="auto_po2")
ty = np.zeros_like(s)
ts = 0.0
n = 1000
for _ in range(n):
y = K.eval(s(K.constant(x)))
scale = K.eval(s.scale)[0]
ts = ts + scale
ty = ty + (y / scale)
result = (ty/n).astype(np.float32)
scale = np.array([ts/n])
expected = np.array(
[-1., -1., -1., -0.852, 0.782, 0.768, 0.97, 0.978, 1.0, 1.0]
).astype(np.float32)
expected_scale = np.array([0.003906])
assert_allclose(result, expected, atol=0.1)
assert_allclose(scale, expected_scale, rtol=0.1)
示例12: test_output_shape
# 需要导入模块: from tensorflow.keras import backend [as 别名]
# 或者: from tensorflow.keras.backend import constant [as 别名]
def test_output_shape(dummy_data, make_model):
# pylint: disable=redefined-outer-name
data, _ = dummy_data
data = K.constant(data)
model = make_model
l = model.get_layer(LAYER_NAME)
actual_output_shape = l(data).shape
expected_output_shape = l.compute_output_shape(data.shape)
np.testing.assert_equal(expected_output_shape, actual_output_shape)
示例13: test_output_shape
# 需要导入模块: from tensorflow.keras import backend [as 别名]
# 或者: from tensorflow.keras.backend import constant [as 别名]
def test_output_shape(dummy_data, make_model):
# Disable the redefined-outer-name violation in this function
# pylint: disable=redefined-outer-name
data, _ = dummy_data
data = K.constant(data)
input_shape = data.shape
model = make_model
actual_output_shape = model(data).shape
expected_output_shape = model.compute_output_shape(input_shape)
np.testing.assert_equal(expected_output_shape, actual_output_shape)
示例14: _smooth_labels
# 需要导入模块: from tensorflow.keras import backend [as 别名]
# 或者: from tensorflow.keras.backend import constant [as 别名]
def _smooth_labels(y_true, label_smoothing):
label_smoothing = K.constant(label_smoothing, dtype=K.floatx())
return y_true * (1.0 - label_smoothing) + 0.5 * label_smoothing
示例15: yolo3_head
# 需要导入模块: from tensorflow.keras import backend [as 别名]
# 或者: from tensorflow.keras.backend import constant [as 别名]
def yolo3_head(feats, anchors, num_classes, input_shape, calc_loss=False):
"""Convert final layer features to bounding box parameters."""
num_anchors = len(anchors)
# Reshape to batch, height, width, num_anchors, box_params.
anchors_tensor = K.reshape(K.constant(anchors), [1, 1, 1, num_anchors, 2])
grid_shape = K.shape(feats)[1:3] # height, width
grid_y = K.tile(K.reshape(K.arange(0, stop=grid_shape[0]), [-1, 1, 1, 1]),
[1, grid_shape[1], 1, 1])
grid_x = K.tile(K.reshape(K.arange(0, stop=grid_shape[1]), [1, -1, 1, 1]),
[grid_shape[0], 1, 1, 1])
grid = K.concatenate([grid_x, grid_y])
grid = K.cast(grid, K.dtype(feats))
feats = K.reshape(
feats, [-1, grid_shape[0], grid_shape[1], num_anchors, num_classes + 5])
# Adjust preditions to each spatial grid point and anchor size.
box_xy = (K.sigmoid(feats[..., :2]) + grid) / K.cast(grid_shape[..., ::-1], K.dtype(feats))
box_wh = K.exp(feats[..., 2:4]) * anchors_tensor / K.cast(input_shape[..., ::-1], K.dtype(feats))
box_confidence = K.sigmoid(feats[..., 4:5])
box_class_probs = K.sigmoid(feats[..., 5:])
if calc_loss == True:
return grid, feats, box_xy, box_wh
return box_xy, box_wh, box_confidence, box_class_probs