本文整理汇总了Python中tensorflow.tensordot函数的典型用法代码示例。如果您正苦于以下问题:Python tensordot函数的具体用法?Python tensordot怎么用?Python tensordot使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了tensordot函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: testBayesianLinearModel
def testBayesianLinearModel(self):
"""Tests that model makes reasonable predictions."""
np.random.seed(42)
train_batch_size = 5
test_batch_size = 2
num_features = 3
noise_variance = 0.01
coeffs = tf.range(num_features, dtype=tf.float32)
features = tf.to_float(np.random.randn(train_batch_size, num_features))
labels = (tf.tensordot(features, coeffs, [[-1], [0]])
+ noise_variance * tf.to_float(np.random.randn(train_batch_size)))
model = bayes.BayesianLinearModel(noise_variance=noise_variance)
model.fit(features, labels)
test_features = tf.to_float(np.random.randn(test_batch_size, num_features))
test_labels = tf.tensordot(test_features, coeffs, [[-1], [0]])
outputs = model(test_features)
test_predictions = outputs.distribution.mean()
test_predictions_variance = outputs.distribution.variance()
[
test_labels_val, test_predictions_val, test_predictions_variance_val,
] = self.evaluate(
[test_labels, test_predictions, test_predictions_variance])
self.assertEqual(test_predictions_val.shape, (test_batch_size,))
self.assertEqual(test_predictions_variance_val.shape, (test_batch_size,))
self.assertAllClose(test_predictions_val, test_labels_val, atol=0.1)
self.assertAllLessEqual(test_predictions_variance_val, noise_variance)
开发者ID:qixiuai,项目名称:tensor2tensor,代码行数:29,代码来源:bayes_test.py
示例2: melspecgrams_to_specgrams
def melspecgrams_to_specgrams(self, melspecgrams):
"""Converts melspecgrams to specgrams.
Args:
melspecgrams: Tensor of log magnitudes and instantaneous frequencies,
shape [batch, time, freq, 2], mel scaling of frequencies.
Returns:
specgrams: Tensor of log magnitudes and instantaneous frequencies,
shape [batch, time, freq, 2].
"""
if self._mel_downscale is None:
return melspecgrams
logmelmag2 = melspecgrams[:, :, :, 0]
mel_p = melspecgrams[:, :, :, 1]
mel2l = tf.to_float(self._mel_to_linear_matrix())
mag2 = tf.tensordot(tf.exp(logmelmag2), mel2l, 1)
logmag = 0.5 * self._safe_log(mag2)
mel_phase_angle = tf.cumsum(mel_p * np.pi, axis=-2)
phase_angle = tf.tensordot(mel_phase_angle, mel2l, 1)
p = spectral_ops.instantaneous_frequency(phase_angle)
return tf.concat(
[logmag[:, :, :, tf.newaxis], p[:, :, :, tf.newaxis]], axis=-1)
开发者ID:adarob,项目名称:magenta,代码行数:26,代码来源:specgrams_helper.py
示例3: call
def call(self, x):
"""Execute this layer on input tensors.
Parameters
----------
x: list of Tensor
should be [atom_features(batch_size*max_n_atoms*n_embedding),
distance_matrix(batch_size*max_n_atoms*max_n_atoms*n_distance),
distance_matrix_mask(batch_size*max_n_atoms*max_n_atoms)]
Returns
-------
tf.Tensor
new embeddings for atoms, same shape as x[0]
"""
self.build()
atom_features = x[0]
distance_matrix = x[1]
distance_matrix_mask = x[2]
outputs = tf.multiply(
(tf.tensordot(distance_matrix, self.W_df, [[3], [0]]) + self.b_df),
tf.expand_dims(
tf.tensordot(atom_features, self.W_cf, [[2], [0]]) + self.b_cf,
axis=1))
# for atom i in a molecule m, this step multiplies together distance info of atom pair(i,j)
# and embeddings of atom j(both gone through a hidden layer)
outputs = tf.tensordot(outputs, self.W_fc, [[3], [0]])
outputs = tf.multiply(outputs, tf.expand_dims(distance_matrix_mask, axis=3))
# masking the outputs tensor for pair(i,i) and all paddings
outputs = self.activation(outputs)
outputs = tf.reduce_sum(outputs, axis=2) + atom_features
# for atom i, sum the influence from all other atom j in the molecule
return outputs
开发者ID:joegomes,项目名称:deepchem,代码行数:34,代码来源:layers.py
示例4: specgrams_to_melspecgrams
def specgrams_to_melspecgrams(self, specgrams):
"""Converts specgrams to melspecgrams.
Args:
specgrams: Tensor of log magnitudes and instantaneous frequencies,
shape [batch, time, freq, 2].
Returns:
melspecgrams: Tensor of log magnitudes and instantaneous frequencies,
shape [batch, time, freq, 2], mel scaling of frequencies.
"""
if self._mel_downscale is None:
return specgrams
logmag = specgrams[:, :, :, 0]
p = specgrams[:, :, :, 1]
mag2 = tf.exp(2.0 * logmag)
phase_angle = tf.cumsum(p * np.pi, axis=-2)
l2mel = tf.to_float(self._linear_to_mel_matrix())
logmelmag2 = self._safe_log(tf.tensordot(mag2, l2mel, 1))
mel_phase_angle = tf.tensordot(phase_angle, l2mel, 1)
mel_p = spectral_ops.instantaneous_frequency(mel_phase_angle)
return tf.concat(
[logmelmag2[:, :, :, tf.newaxis], mel_p[:, :, :, tf.newaxis]], axis=-1)
开发者ID:adarob,项目名称:magenta,代码行数:27,代码来源:specgrams_helper.py
示例5: ising_hamiltonian
def ising_hamiltonian(N, dtype):
X = tf.convert_to_tensor([[0.0, 1.0], [1.0, 0.0]], dtype=dtype)
Z = tf.convert_to_tensor([[1.0, 0.0], [0.0, -1.0]], dtype=dtype)
I = tf.eye(2, dtype=dtype)
h = -tf.tensordot(X, X, axes=0) - tf.tensordot(Z, I, axes=0)
h_last = h - tf.tensordot(I, Z, axes=0)
h = tf.transpose(h, (0,2,1,3))
h_last = tf.transpose(h_last, (0,2,1,3))
H = [h]*(N-2) + [h_last]
return H
开发者ID:zoltanegyed,项目名称:TensorNetwork,代码行数:10,代码来源:evolution_example.py
示例6: attention
def attention(query, facts, attention_size, mask, stag='null', mode='LIST', softmax_stag=1, time_major=False, return_alphas=False):
if isinstance(facts, tuple):
# In case of Bi-RNN, concatenate the forward and the backward RNN
# outputs.
facts = tf.concat(facts, 2)
if time_major:
# (T,B,D) => (B,T,D)
facts = tf.array_ops.transpose(facts, [1, 0, 2])
mask = tf.equal(mask, tf.ones_like(mask))
# D value - hidden size of the RNN layer
hidden_size = facts.get_shape().as_list()[-1]
input_size = query.get_shape().as_list()[-1]
# Trainable parameters
w1 = tf.Variable(tf.random_normal(
[hidden_size, attention_size], stddev=0.1))
w2 = tf.Variable(tf.random_normal(
[input_size, attention_size], stddev=0.1))
b = tf.Variable(tf.random_normal([attention_size], stddev=0.1))
v = tf.Variable(tf.random_normal([attention_size], stddev=0.1))
with tf.name_scope('v'):
# Applying fully connected layer with non-linear activation to each of the B*T timestamps;
# the shape of `tmp` is (B,T,D)*(D,A)=(B,T,A), where A=attention_size
tmp1 = tf.tensordot(facts, w1, axes=1)
tmp2 = tf.tensordot(query, w2, axes=1)
tmp2 = tf.reshape(tmp2, [-1, 1, tf.shape(tmp2)[-1]])
tmp = tf.tanh((tmp1 + tmp2) + b)
# For each of the timestamps its vector of size A from `tmp` is reduced
# with `v` vector
v_dot_tmp = tf.tensordot(tmp, v, axes=1, name='v_dot_tmp') # (B,T) shape
key_masks = mask # [B, 1, T]
# key_masks = tf.expand_dims(mask, 1) # [B, 1, T]
paddings = tf.ones_like(v_dot_tmp) * (-2 ** 32 + 1)
v_dot_tmp = tf.where(key_masks, v_dot_tmp, paddings) # [B, 1, T]
alphas = tf.nn.softmax(v_dot_tmp, name='alphas') # (B,T) shape
# Output of (Bi-)RNN is reduced with attention vector; the result has (B,D) shape
#output = tf.reduce_sum(facts * tf.expand_dims(alphas, -1), 1)
output = facts * tf.expand_dims(alphas, -1)
output = tf.reshape(output, tf.shape(facts))
# output = output / (facts.get_shape().as_list()[-1] ** 0.5)
if not return_alphas:
return output
else:
return output, alphas
开发者ID:q64545,项目名称:x-deeplearning,代码行数:49,代码来源:utils.py
示例7: lovasz_softmax_flat
def lovasz_softmax_flat(probas, labels, classes='all'):
"""
Multi-class Lovasz-Softmax loss
probas: [P, C] Variable, class probabilities at each prediction (between 0 and 1)
labels: [P] Tensor, ground truth labels (between 0 and C - 1)
classes: 'all' for all, 'present' for classes present in labels, or a list of classes to average.
"""
C = probas.shape[1]
losses = []
present = []
class_to_sum = list(range(C)) if classes in ['all', 'present'] else classes
for c in class_to_sum:
fg = tf.cast(tf.equal(labels, c), probas.dtype) # foreground for class c
if classes == 'present':
present.append(tf.reduce_sum(fg) > 0)
errors = tf.abs(fg - probas[:, c])
errors_sorted, perm = tf.nn.top_k(errors, k=tf.shape(errors)[0], name="descending_sort_{}".format(c))
fg_sorted = tf.gather(fg, perm)
grad = lovasz_grad(fg_sorted)
losses.append(
tf.tensordot(errors_sorted, tf.stop_gradient(grad), 1, name="loss_class_{}".format(c))
)
if len(class_to_sum) == 1: # short-circuit mean when only one class
return losses[0]
losses_tensor = tf.stack(losses)
if classes == 'present':
present = tf.stack(present)
losses_tensor = tf.boolean_mask(losses_tensor, present)
loss = tf.reduce_mean(losses_tensor)
return loss
开发者ID:Diyago,项目名称:Machine-Learning-scripts,代码行数:30,代码来源:lovasz_losses_tf.py
示例8: outer_product
def outer_product(self, node1: Node, node2: Node,
name: Optional[Text] = None) -> Node:
"""Calcuates an outer product of the two nodes.
This causes the nodes to combine their edges and axes, so the shapes are
combined. For example, if `a` had a shape (2, 3) and `b` had a shape
(4, 5, 6), then the node `net.outer_product(a, b) will have shape
(2, 3, 4, 5, 6).
Args:
node1: The first node. The axes on this node will be on the left side of
the new node.
node2: The second node. The axes on this node will be on the right side of
the new node.
name: Optional name to give the new node created.
Returns:
new_node: A new node. It's shape will be node1.shape + node2.shape
"""
new_tensor = tf.tensordot(node1.tensor, node2.tensor, 0)
new_node = self.add_node(new_tensor, name)
additional_axes = len(node1.tensor.shape)
for i, edge in enumerate(node1.edges):
edge.update_axis(i, node1, i, new_node)
for i, edge in enumerate(node2.edges):
edge.update_axis(i, node2, i + additional_axes, new_node)
# Remove the nodes from the set.
self.nodes_set.remove(node1)
self.nodes_set.remove(node2)
for i, edge in enumerate(node1.edges + node2.edges):
new_node.add_edge(edge, i)
return new_node
开发者ID:zoltanegyed,项目名称:TensorNetwork,代码行数:32,代码来源:tensornetwork.py
示例9: contract
def contract(self, edge: Edge, name: Optional[Text] = None) -> Node:
"""Contract an edge connecting two nodes in the TensorNetwork.
Args:
edge: The edge contract next.
name: Name of the new node created.
Returns:
new_node: The new node created after the contraction.
Raises:
ValueError: When edge is a dangling edge or if it already has been
contracted.
"""
if not edge.is_being_used() or edge.node1 not in self.nodes_set:
raise ValueError("Attempting to contract edge '{}' that is not part of "
"the network.".format(edge))
if edge.is_dangling():
raise ValueError("Attempting to contract dangling edge")
if edge.node1 is edge.node2:
return self._contract_trace(edge, name)
new_tensor = tf.tensordot(edge.node1.tensor, edge.node2.tensor,
[[edge.axis1], [edge.axis2]])
new_node = self.add_node(new_tensor, name)
self._remove_edge(edge, new_node)
return new_node
开发者ID:zoltanegyed,项目名称:TensorNetwork,代码行数:26,代码来源:tensornetwork.py
示例10: tensordot
def tensordot(self,inp,out_dim,in_dim=None,activation=None,use_bias=False,w_name="batch-fnn-W"):
'''
function: the implement of FNN ,input is a 3D batch tesor,W is a 2D tensor
:param input: a 3D tensor of (b,seq_len,h)
:param out_dim: the out_dim of W
:param in_dim: the in_dim of W
:param activation: activation function
:param use_bias: use bias or not
:param w_name: the unique name for W
:return: (b,seq_len,in_dim)*(in_dim,out_dim) ->(b,seq_len,out_dim)
'''
with tf.variable_scope("3D-batch-fnn-layer"):
inp_shape = inp.get_shape().as_list()
batch_size= inp_shape[0]
seq_len = inp_shape[1]
if in_dim==None:
in_dim = inp_shape[-1]
W = tf.get_variable(w_name,shape=[in_dim,out_dim])
out = tf.tensordot(inp,W,axes=1)
if use_bias == True:
b_name = w_name + '-b'
b = tf.get_variable(b_name, shape=[out_dim])
out = out + b
if activation is not None:
out = activation(out)
out.set_shape([batch_size,seq_len,out_dim])
return out
开发者ID:JShanPP,项目名称:HelloWorld,代码行数:31,代码来源:snli_model_mask.py
示例11: boolean_mask
def boolean_mask(boxlist, indicator, fields=None, scope=None,
use_static_shapes=False, indicator_sum=None):
"""Select boxes from BoxList according to indicator and return new BoxList.
`boolean_mask` returns the subset of boxes that are marked as "True" by the
indicator tensor. By default, `boolean_mask` returns boxes corresponding to
the input index list, as well as all additional fields stored in the boxlist
(indexing into the first dimension). However one can optionally only draw
from a subset of fields.
Args:
boxlist: BoxList holding N boxes
indicator: a rank-1 boolean tensor
fields: (optional) list of fields to also gather from. If None (default),
all fields are gathered from. Pass an empty fields list to only gather
the box coordinates.
scope: name scope.
use_static_shapes: Whether to use an implementation with static shape
gurantees.
indicator_sum: An integer containing the sum of `indicator` vector. Only
required if `use_static_shape` is True.
Returns:
subboxlist: a BoxList corresponding to the subset of the input BoxList
specified by indicator
Raises:
ValueError: if `indicator` is not a rank-1 boolean tensor.
"""
with tf.name_scope(scope, 'BooleanMask'):
if indicator.shape.ndims != 1:
raise ValueError('indicator should have rank 1')
if indicator.dtype != tf.bool:
raise ValueError('indicator should be a boolean tensor')
if use_static_shapes:
if not (indicator_sum and isinstance(indicator_sum, int)):
raise ValueError('`indicator_sum` must be a of type int')
selected_positions = tf.to_float(indicator)
indexed_positions = tf.cast(
tf.multiply(
tf.cumsum(selected_positions), selected_positions),
dtype=tf.int32)
one_hot_selector = tf.one_hot(
indexed_positions - 1, indicator_sum, dtype=tf.float32)
sampled_indices = tf.cast(
tf.tensordot(
tf.to_float(tf.range(tf.shape(indicator)[0])),
one_hot_selector,
axes=[0, 0]),
dtype=tf.int32)
return gather(boxlist, sampled_indices, use_static_shapes=True)
else:
subboxlist = box_list.BoxList(tf.boolean_mask(boxlist.get(), indicator))
if fields is None:
fields = boxlist.get_extra_fields()
for field in fields:
if not boxlist.has_field(field):
raise ValueError('boxlist must contain all specified fields')
subfieldlist = tf.boolean_mask(boxlist.get_field(field), indicator)
subboxlist.add_field(field, subfieldlist)
return subboxlist
开发者ID:Exscotticus,项目名称:models,代码行数:60,代码来源:box_list_ops.py
示例12: matmul
def matmul(A, B, transpose_a=False, transpose_b=False):
'''Batch support for matrix matrix product.
Args:
A: General matrix of size (A_Batch, M, X).
B: General matrix of size (B_Batch, X, N).
transpose_a: Whether A is transposed (A_Batch, X, M).
transpose_b: Whether B is transposed (B_Batch, N, X).
Returns:
The result of multiplying A with B (A_Batch, B_Batch, M, N).
Works more efficiently if B_Batch is empty.
'''
Andim = len(A.shape)
Bndim = len(B.shape)
if Andim == Bndim:
return tf.matmul(A, B, transpose_a=transpose_a,
transpose_b=transpose_b) # faster than tensordot
with tf.name_scope('matmul'):
a_index = Andim - (2 if transpose_a else 1)
b_index = Bndim - (1 if transpose_b else 2)
AB = tf.tensordot(A, B, axes=[a_index, b_index])
if Bndim > 2: # only if B is batched, rearrange the axes
A_Batch = np.arange(Andim - 2)
M = len(A_Batch)
B_Batch = (M + 1) + np.arange(Bndim - 2)
N = (M + 1) + len(B_Batch)
perm = np.concatenate((A_Batch, B_Batch, [M, N]))
AB = tf.transpose(AB, perm)
return AB
开发者ID:ModarTensai,项目名称:network_moments,代码行数:30,代码来源:utils.py
示例13: _get_values_from_start_and_end
def _get_values_from_start_and_end(self, input_tensor, num_start_samples,
num_end_samples, total_num_samples):
"""slices num_start_samples and last num_end_samples from input_tensor.
Args:
input_tensor: An int32 tensor of shape [N] to be sliced.
num_start_samples: Number of examples to be sliced from the beginning
of the input tensor.
num_end_samples: Number of examples to be sliced from the end of the
input tensor.
total_num_samples: Sum of is num_start_samples and num_end_samples. This
should be a scalar.
Returns:
A tensor containing the first num_start_samples and last num_end_samples
from input_tensor.
"""
input_length = tf.shape(input_tensor)[0]
start_positions = tf.less(tf.range(input_length), num_start_samples)
end_positions = tf.greater_equal(
tf.range(input_length), input_length - num_end_samples)
selected_positions = tf.logical_or(start_positions, end_positions)
selected_positions = tf.cast(selected_positions, tf.int32)
indexed_positions = tf.multiply(tf.cumsum(selected_positions),
selected_positions)
one_hot_selector = tf.one_hot(indexed_positions - 1,
total_num_samples,
dtype=tf.int32)
return tf.tensordot(input_tensor, one_hot_selector, axes=[0, 0])
开发者ID:ALISCIFP,项目名称:models,代码行数:30,代码来源:balanced_positive_negative_sampler.py
示例14: save
def save(self, sess, dst_path):
if os.path.exists(dst_path):
shutil.rmtree(dst_path)
with self.__graph.as_default():
x = tf.placeholder(dtype=tf.int32, shape=[None])
y = tf.nn.embedding_lookup(self.__normalized_embedding, x)
x_similiar_score = tf.tensordot(self.__normalized_embedding,tf.transpose(y), 1)
x_tensor_info = tf.saved_model.utils.build_tensor_info(x)
y_tensor_info = tf.saved_model.utils.build_tensor_info(y)
x_similiar_score_info = tf.saved_model.utils.build_tensor_info(x_similiar_score)
signature_map = tf.saved_model.signature_def_utils.build_signature_def(
inputs={
"word": x_tensor_info
},
outputs={
"embedding": y_tensor_info,
"x_similiar_score": x_similiar_score_info
},
method_name=tf.saved_model.signature_constants.PREDICT_METHOD_NAME
)
builder = tf.saved_model.builder.SavedModelBuilder(dst_path)
builder.add_meta_graph_and_variables(sess,
[tf.saved_model.tag_constants.SERVING],
signature_def_map={"word_embedding": signature_map}
)
builder.save()
开发者ID:caoyujiALgLM,项目名称:machine-learn,代码行数:29,代码来源:cbow.py
示例15: reshape_stft
def reshape_stft(stfts, num_mel_bins):
magnitude_spectrograms = tf.abs(stfts)
num_spectrogram_bins = magnitude_spectrograms.shape[-1].value
# scale frequency to mel scale and put into bins to reduce dimensionality
lower_edge_hertz, upper_edge_hertz = 30.0, 17000.0
linear_to_mel_weight_matrix = tf.contrib.signal.linear_to_mel_weight_matrix(
num_mel_bins, num_spectrogram_bins, utils.sample_rate, lower_edge_hertz,
upper_edge_hertz)
mel_spectrograms = tf.tensordot(magnitude_spectrograms, linear_to_mel_weight_matrix, 1)
mel_spectrograms.set_shape(
magnitude_spectrograms.shape[:-1].concatenate(linear_to_mel_weight_matrix.shape[-1:]))
# log scale the mel bins to better represent human loudness perception
log_offset = 1e-6
log_mel_spectrograms = tf.log(mel_spectrograms + log_offset)
# compute first order differential and concat. "It indicates a raise or reduction of the energy for each
# frequency bin at a frame relative to its predecessor"
first_order_diff = tf.abs(
tf.subtract(log_mel_spectrograms, tf.manip.roll(log_mel_spectrograms, shift=1, axis=1)))
mel_fod = tf.concat([log_mel_spectrograms, first_order_diff], 1)
return mel_fod
开发者ID:nearlyeveryone,项目名称:bpm,代码行数:25,代码来源:bpm_estimator.py
示例16: make_dataset
def make_dataset(self, n, d, link, scale=1.):
seed = tfd.SeedStream(
seed=213356351, salt='tfp.glm.fisher_scoring_test')
model_coefficients = tfd.Uniform(
low=np.array(-0.5, self.dtype),
high=np.array(0.5, self.dtype)).sample(d, seed=seed())
radius = np.sqrt(2.)
model_coefficients *= radius / tf.linalg.norm(model_coefficients)
model_matrix = tfd.Normal(
loc=np.array(0, self.dtype),
scale=np.array(1, self.dtype)).sample([n, d], seed=seed())
scale = tf.convert_to_tensor(scale, self.dtype)
linear_response = tf.tensordot(
model_matrix, model_coefficients, axes=[[1], [0]])
if link == 'linear':
response = tfd.Normal(loc=linear_response, scale=scale).sample(
seed=seed())
elif link == 'probit':
response = tf.cast(
tfd.Normal(loc=linear_response, scale=scale).sample(seed=seed()) > 0,
self.dtype)
elif link == 'logit':
response = tfd.Bernoulli(logits=linear_response).sample(seed=seed())
else:
raise ValueError('unrecognized true link: {}'.format(link))
return model_matrix, response, model_coefficients, linear_response
开发者ID:asudomoeva,项目名称:probability,代码行数:26,代码来源:fisher_scoring_test.py
示例17: proj
def proj(u, v,shape):
dot = tf.tensordot(v, u, 1) / (tf.square(u)+1e-8)
dot = tf.maximum(0.0, dot)
dot = tf.minimum(1.0, dot)
dot = dot * u
dot = tf.reshape(dot, shape)
return dot
开发者ID:255BITS,项目名称:hyperchamber-gan,代码行数:7,代码来源:orthonormal_optimizer.py
示例18: visualize_data_transformations
def visualize_data_transformations():
records = glob.glob(os.path.join(utils.working_dir, 'train_fragment_*.tfrecords'))
dataset = tf.data.TFRecordDataset(records)
dataset = dataset.map(parse_tfrecord_raw)
dataset = dataset.repeat()
dataset = dataset.shuffle(buffer_size=10)
dataset = dataset.prefetch(2)
it = dataset.make_one_shot_iterator()
data_x = tf.placeholder(tf.float32, shape=(utils.sample_rate * utils.audio_clip_len,))
data_y = tf.placeholder(tf.float32, shape=(utils.timesteps,))
stfts = tf.contrib.signal.stft(data_x, frame_length=utils.frame_length, frame_step=utils.frame_step,
fft_length=4096)
power_stfts = tf.real(stfts * tf.conj(stfts))
magnitude_spectrograms = tf.abs(stfts)
power_magnitude_spectrograms = tf.abs(power_stfts)
num_spectrogram_bins = magnitude_spectrograms.shape[-1].value
# scale frequency to mel scale and put into bins to reduce dimensionality
lower_edge_hertz, upper_edge_hertz = 30.0, 17000.0
num_mel_bins = utils.mel_bins_base * 4
linear_to_mel_weight_matrix = tf.contrib.signal.linear_to_mel_weight_matrix(
num_mel_bins, num_spectrogram_bins, utils.sample_rate, lower_edge_hertz,
upper_edge_hertz)
mel_spectrograms = tf.tensordot(magnitude_spectrograms, linear_to_mel_weight_matrix, 1)
mel_spectrograms.set_shape(
magnitude_spectrograms.shape[:-1].concatenate(linear_to_mel_weight_matrix.shape[-1:]))
# log scale the mel bins to better represent human loudness perception
log_offset = 1e-6
log_mel_spectrograms = tf.log(mel_spectrograms + log_offset)
# compute first order differential and concat. "It indicates a raise or reduction of the energy for each
# frequency bin at a frame relative to its predecessor"
first_order_diff = tf.abs(
tf.subtract(log_mel_spectrograms, tf.manip.roll(log_mel_spectrograms, shift=1, axis=1)))
mel_fod = tf.concat([log_mel_spectrograms, first_order_diff], 1)
with tf.Session() as sess:
while True:
try:
raw_x, raw_y = sess.run(it.get_next())
np_stfts = sess.run(power_stfts, feed_dict={data_x: raw_x})
np_magnitude_spectrograms = sess.run(power_magnitude_spectrograms, feed_dict={data_x: raw_x})
np_mel_spectrograms = sess.run(mel_spectrograms, feed_dict={data_x: raw_x})
np_log_mel_spectrograms = sess.run(log_mel_spectrograms, feed_dict={data_x: raw_x})
np_mel_fod = sess.run(mel_fod, feed_dict={data_x: raw_x})
utils.plot_signal_transforms(raw_x,
np_stfts,
np_magnitude_spectrograms,
np_mel_spectrograms,
np_log_mel_spectrograms,
np_mel_fod)
print('wank')
except tf.errors.OutOfRangeError:
break
开发者ID:nearlyeveryone,项目名称:bpm,代码行数:59,代码来源:bpm_estimator.py
示例19: true_log_joint
def true_log_joint(features, prior_precision, w, y):
log_prob = tf.reduce_sum(tfd.Normal(
loc=0.,
scale=tf.rsqrt(prior_precision)).log_prob(w))
log_prob += tf.reduce_sum(tfd.Normal(
loc=tf.tensordot(features, w, [[1], [0]]),
scale=1.).log_prob(y))
return log_prob
开发者ID:lewisKit,项目名称:probability,代码行数:8,代码来源:program_transformations_test.py
示例20: _get_search_direction
def _get_search_direction(inv_hessian_approx, gradient):
"""Computes the direction along which to perform line search."""
n = len(gradient.shape.as_list())
contraction_axes = np.arange(-n, 0)
dirn = -tf.tensordot(inv_hessian_approx, gradient,
axes=[contraction_axes, contraction_axes])
dirn.set_shape(gradient.shape)
return dirn
开发者ID:lewisKit,项目名称:probability,代码行数:8,代码来源:bfgs.py
注:本文中的tensorflow.tensordot函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论