本文整理汇总了Python中theano.tensor.mean方法的典型用法代码示例。如果您正苦于以下问题:Python tensor.mean方法的具体用法?Python tensor.mean怎么用?Python tensor.mean使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类theano.tensor
的用法示例。
在下文中一共展示了tensor.mean方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: batch_normalization
# 需要导入模块: from theano import tensor [as 别名]
# 或者: from theano.tensor import mean [as 别名]
def batch_normalization(x, mean, var, beta, gamma, epsilon=1e-3):
'''Apply batch normalization on x given mean, var, beta and gamma.
'''
# TODO remove this if statement when Theano without
# T.nnet.bn.batch_normalization_test is deprecated
if not hasattr(T.nnet.bn, 'batch_normalization_test'):
return _old_batch_normalization(x, mean, var, beta, gamma, epsilon)
if mean.ndim == 1:
# based on TensorFlow's default: normalize along rightmost dimension
reduction_axes = range(x.ndim - 1)
else:
reduction_axes = [i for i in range(x.ndim) if mean.broadcastable[i]]
return T.nnet.bn.batch_normalization_test(
x, gamma, beta, mean, var, reduction_axes, epsilon)
# TODO remove this function when Theano without
# T.nnet.bn.batch_normalization_train is deprecated
示例2: build_cost
# 需要导入模块: from theano import tensor [as 别名]
# 或者: from theano.tensor import mean [as 别名]
def build_cost(logits, targets):
"""
Build a classification cost function.
"""
# Clip gradients coming from the cost function.
logits = theano.gradient.grad_clip(
logits, -1. * FLAGS.clipping_max_value, FLAGS.clipping_max_value)
predicted_dist = T.nnet.softmax(logits)
costs = T.nnet.categorical_crossentropy(predicted_dist, targets)
cost = costs.mean()
pred = T.argmax(logits, axis=1)
acc = 1. - T.mean(T.cast(T.neq(pred, targets), theano.config.floatX))
return cost, acc
示例3: errors
# 需要导入模块: from theano import tensor [as 别名]
# 或者: from theano.tensor import mean [as 别名]
def errors(self, y):
"""Return a float representing the number of errors in the minibatch
over the total number of examples of the minibatch ; zero one
loss over the size of the minibatch
:type y: theano.tensor.TensorType
:param y: corresponds to a vector that gives for each example the
correct label
"""
# check if y has same dimension of y_pred
if y.ndim != self.y_pred.ndim:
raise TypeError(
'y should have the same shape as self.y_pred',
('y', y.type, 'y_pred', self.y_pred.type)
)
# check if y is of the correct datatype
if y.dtype.startswith('int'):
# the T.neq operator returns a vector of 0s and 1s, where 1
# represents a mistake in prediction
return T.mean(T.neq(self.y_pred, y))
else:
raise NotImplementedError()
示例4: __init__
# 需要导入模块: from theano import tensor [as 别名]
# 或者: from theano.tensor import mean [as 别名]
def __init__(self, prev_layer, n_out, params=None, bias=True):
super().__init__(prev_layer)
self._bias = bias
n_in = self._input_shape[-1]
if params is None:
self.W = Weight((n_in, n_out), is_bias=False)
if bias:
self.b = Weight((n_out,), is_bias=True, mean=0.1, filler='constant')
else:
self.W = params[0]
if bias:
self.b = params[1]
# parameters of the model
self.params = [self.W]
if bias:
self.params.append(self.b)
self._output_shape = [self._input_shape[0]]
self._output_shape.extend(self._input_shape[1:-1])
self._output_shape.append(n_out)
示例5: get_output_for
# 需要导入模块: from theano import tensor [as 别名]
# 或者: from theano.tensor import mean [as 别名]
def get_output_for(self, input, init=False, **kwargs):
if input.ndim > 2:
# if the input has more than two dimensions, flatten it into a
# batch of feature vectors.
input = input.flatten(2)
activation = T.tensordot(input, self.W, [[1], [0]])
abs_dif = (T.sum(abs(activation.dimshuffle(0,1,2,'x') - activation.dimshuffle('x',1,2,0)),axis=2)
+ 1e6 * T.eye(input.shape[0]).dimshuffle(0,'x',1))
if init:
mean_min_abs_dif = 0.5 * T.mean(T.min(abs_dif, axis=2),axis=0)
abs_dif /= mean_min_abs_dif.dimshuffle('x',0,'x')
self.init_updates = [(self.log_weight_scale, self.log_weight_scale-T.log(mean_min_abs_dif).dimshuffle(0,'x'))]
f = T.sum(T.exp(-abs_dif),axis=2)
if init:
mf = T.mean(f,axis=0)
f -= mf.dimshuffle('x',0)
self.init_updates.append((self.b, -mf))
else:
f += self.b.dimshuffle('x',0)
return T.concatenate([input, f], axis=1)
示例6: __init__
# 需要导入模块: from theano import tensor [as 别名]
# 或者: from theano.tensor import mean [as 别名]
def __init__(self):
X_in = T.matrix('X_in')
u = T.matrix('u')
s = T.vector('s')
eps = T.scalar('eps')
X_ = X_in - T.mean(X_in, 0)
sigma = T.dot(X_.T, X_) / X_.shape[0]
self.sigma = theano.function([X_in], sigma, allow_input_downcast=True)
Z = T.dot(T.dot(u, T.nlinalg.diag(1. / T.sqrt(s + eps))), u.T)
X_zca = T.dot(X_, Z.T)
self.compute_zca = theano.function([X_in, u, s, eps], X_zca, allow_input_downcast=True)
self._u = None
self._s = None
示例7: get_cost_updates
# 需要导入模块: from theano import tensor [as 别名]
# 或者: from theano.tensor import mean [as 别名]
def get_cost_updates(self, lr=0.1, persistent=None, k=1):
pre_sigmoid_ph, ph_mean, ph_sample = self.sample_h_given_v(self.input)
if persistent is None:
chain_start = ph_sample
else:
chain_start = persistent
([pre_sigmoid_nvs,nv_means,nv_samples,pre_sigmoid_nhs,nh_means,nh_samples],updates) = \
theano.scan(self.gibbs_step, outputs_info=[None, None, None, None, None, chain_start],n_steps=k,name="gibbs_step")
chain_end = nv_samples[-1]
cost = T.mean(self.free_energy(self.input)) - T.mean(self.free_energy(chain_end))
gparams = T.grad(cost, self.params, consider_constant=[chain_end])
for gparam, param in zip(gparams, self.params):
updates[param] = param - gparam * T.cast(lr,dtype=theano.config.floatX)
if persistent:
updates[persistent] = nh_samples[-1]
monitoring_cost = self.get_pseudo_likelihood_cost(updates)
else:
monitoring_cost = self.get_reconstruction_cost(updates,pre_sigmoid_nvs[-1])
return monitoring_cost, updates
示例8: accuracy_instance
# 需要导入模块: from theano import tensor [as 别名]
# 或者: from theano.tensor import mean [as 别名]
def accuracy_instance(predictions, targets, n=[1, 2, 3, 4, 5, 10], \
nb_classes=5, nb_samples_per_class=10, batch_size=1):
accuracy_0 = theano.shared(np.zeros((batch_size, nb_samples_per_class), \
dtype=theano.config.floatX))
indices_0 = theano.shared(np.zeros((batch_size, nb_classes), \
dtype=np.int32))
batch_range = T.arange(batch_size)
def step_(p, t, acc, idx):
acc = T.inc_subtensor(acc[batch_range, idx[batch_range, t]], T.eq(p, t))
idx = T.inc_subtensor(idx[batch_range, t], 1)
return (acc, idx)
(raw_accuracy, _), _ = theano.foldl(step_, sequences=[predictions.dimshuffle(1, 0), \
targets.dimshuffle(1, 0)], outputs_info=[accuracy_0, indices_0])
accuracy = T.mean(raw_accuracy / nb_classes, axis=0)
return accuracy
示例9: negative_log_likelihood
# 需要导入模块: from theano import tensor [as 别名]
# 或者: from theano.tensor import mean [as 别名]
def negative_log_likelihood(self, y):
"""Return the mean of the negative log-likelihood of the prediction
of this model under a given target distribution.
.. math::
\frac{1}{|\mathcal{D}|} \mathcal{L} (\theta=\{W,b\}, \mathcal{D}) =
\frac{1}{|\mathcal{D}|} \sum_{i=0}^{|\mathcal{D}|} \log(P(Y=y^{(i)}|x^{(i)}, W,b)) \\
\ell (\theta=\{W,b\}, \mathcal{D})
:type y: theano.tensor.TensorType
:param y: corresponds to a vector that gives for each example the
correct label
Note: we use the mean instead of the sum so that
the learning rate is less dependent on the batch size
"""
# y.shape[0] is (symbolically) the number of rows in y, i.e., number of examples (call it n) in the minibatch
# T.arange(y.shape[0]) is a symbolic vector which will contain [0,1,2,... n-1]
# T.log(self.p_y_given_x) is a matrix of Log-Probabilities (call it LP) with one row per example and one column per class
# LP[T.arange(y.shape[0]),y] is a vector v containing [LP[0,y[0]], LP[1,y[1]], LP[2,y[2]], ..., LP[n-1,y[n-1]]]
# and T.mean(LP[T.arange(y.shape[0]),y]) is the mean (across minibatch examples) of the elements in v,
# i.e., the mean log-likelihood across the minibatch.
return T.log(self.p_y_given_x[T.arange(y.shape[0]), y])
示例10: model_loss
# 需要导入模块: from theano import tensor [as 别名]
# 或者: from theano.tensor import mean [as 别名]
def model_loss(y, model, mean=True):
"""
Define loss of Theano graph
:param y: correct labels
:param model: output of the model
:return: return mean of loss if True, otherwise return vector with per
sample loss
"""
warnings.warn("CleverHans support for Theano is deprecated and "
"will be dropped on 2017-11-08.")
from_logits = "softmax" not in str(model).lower()
if from_logits:
model = T.nnet.softmax(model)
out = T.nnet.categorical_crossentropy(model, y)
if mean:
out = T.mean(out)
return out
示例11: create_G
# 需要导入模块: from theano import tensor [as 别名]
# 或者: from theano.tensor import mean [as 别名]
def create_G(loss_type=None, discriminator=None, lr=0.0002, b1=0.5, ngf=64):
noise = T.matrix('noise')
generator = models_uncond.build_generator_128(noise,ngf=ngf)
Tgimgs = lasagne.layers.get_output(generator)
Tfake_out = lasagne.layers.get_output(discriminator, Tgimgs)
if loss_type == 'trickLogD':
generator_loss = lasagne.objectives.binary_crossentropy(Tfake_out, 1).mean()
elif loss_type == 'minimax':
generator_loss = -lasagne.objectives.binary_crossentropy(Tfake_out, 0).mean()
elif loss_type == 'ls':
generator_loss = T.mean(T.sqr((Tfake_out - 1)))
generator_params = lasagne.layers.get_all_params(generator, trainable=True)
updates_g = lasagne.updates.adam(generator_loss, generator_params, learning_rate=lr, beta1=b1)
train_g = theano.function([noise],
generator_loss,
updates=updates_g)
gen_fn = theano.function([noise],
lasagne.layers.get_output(generator,
deterministic=True))
return train_g, gen_fn, generator
示例12: create_G
# 需要导入模块: from theano import tensor [as 别名]
# 或者: from theano.tensor import mean [as 别名]
def create_G(loss_type=None, discriminator=None, lr=0.0002, b1=0.5, ngf=64):
noise = T.matrix('noise')
generator = models_uncond.build_generator_64(noise,ngf=ngf)
Tgimgs = lasagne.layers.get_output(generator)
Tfake_out = lasagne.layers.get_output(discriminator, Tgimgs)
if loss_type == 'trickLogD':
generator_loss = lasagne.objectives.binary_crossentropy(Tfake_out, 1).mean()
elif loss_type == 'minimax':
generator_loss = -lasagne.objectives.binary_crossentropy(Tfake_out, 0).mean()
elif loss_type == 'ls':
generator_loss = T.mean(T.sqr((Tfake_out - 1)))
generator_params = lasagne.layers.get_all_params(generator, trainable=True)
updates_g = lasagne.updates.adam(generator_loss, generator_params, learning_rate=lr, beta1=b1)
train_g = theano.function([noise],
generator_loss,
updates=updates_g)
gen_fn = theano.function([noise],
lasagne.layers.get_output(generator,
deterministic=True))
return train_g, gen_fn, generator
示例13: create_G
# 需要导入模块: from theano import tensor [as 别名]
# 或者: from theano.tensor import mean [as 别名]
def create_G(loss_type=None, discriminator=None, lr=0.0002, b1=0.5, DIM=64):
noise = T.matrix('noise')
generator = models_uncond.build_generator_toy(noise,nd=DIM)
Tgimgs = lasagne.layers.get_output(generator)
Tfake_out = lasagne.layers.get_output(discriminator, Tgimgs)
if loss_type == 'trickLogD':
generator_loss = lasagne.objectives.binary_crossentropy(Tfake_out, 1).mean()
elif loss_type == 'minimax':
generator_loss = -lasagne.objectives.binary_crossentropy(Tfake_out, 0).mean()
elif loss_type == 'ls':
generator_loss = T.mean(T.sqr((Tfake_out - 1)))
generator_params = lasagne.layers.get_all_params(generator, trainable=True)
updates_g = lasagne.updates.adam(generator_loss, generator_params, learning_rate=lr, beta1=b1)
train_g = theano.function([noise],
generator_loss,
updates=updates_g)
gen_fn = theano.function([noise],
lasagne.layers.get_output(generator,
deterministic=True))
return train_g, gen_fn, generator
示例14: random_normal_variable
# 需要导入模块: from theano import tensor [as 别名]
# 或者: from theano.tensor import mean [as 别名]
def random_normal_variable(shape, mean, scale, dtype=None, name=None):
return variable(np.random.normal(loc=0.0, scale=scale, size=shape),
dtype=dtype, name=name)
示例15: mean
# 需要导入模块: from theano import tensor [as 别名]
# 或者: from theano.tensor import mean [as 别名]
def mean(x, axis=None, keepdims=False):
'''Mean of a tensor, alongside the specified axis.
'''
dtype = None
# bool is available since theano v0.9dev
if 'int' in x.dtype or x.dtype == 'bool':
dtype = floatx()
return T.mean(x, axis=axis, keepdims=keepdims, dtype=dtype)