J'ai deux tenseur a:[batch_size, dim]
b:[batch_size, dim]
. Je veux faire un produit intérieur pour chaque paire du lot, en générant c:[batch_size, 1]
, où c[i,0]=a[i,:].T*b[i,:]
. Comment?
tensorflow
scikit-learn
svm
cross-validation
feature-selection
bayesian
machine-learning
decision-trees
parameter-estimation
neural-network
convnet
neural-network
regularization
visualization
machine-learning
similarity
python
pandas
indexing
r
data-cleaning
machine-learning
predictive-modeling
data-cleaning
recommender-system
python
sequential-pattern-mining
software-recommendation
r
visualization
gaussian
distribution
machine-learning
data-mining
bigdata
apache-hadoop
predictive-modeling
logistic-regression
sampling
machine-learning
regression
feature-selection
mongodb
neural-network
inception
machine-learning
classification
dataset
databases
logistic-regression
deep-learning
backpropagation
classification
data-mining
multilabel-classification
text-mining
data-cleaning
unsupervised-learning
anomaly-detection
python
r
python
pandas
HenrySky
la source
la source
Une autre option qui mérite d'être étudiée est
[tf.einsum][1]
- c'est essentiellement une version simplifiée de la notation Einstein .À suivre avec les exemples de Neil et Dumkar:
Le premier argument de
einsum
est une équation représentant les axes à multiplier et à additionner. Les règles de base d'une équation sont:Dans notre cas, cela
ij,ij->i
signifie que nos entrées seront 2 matrices de forme égale(i,j)
, et notre sortie sera un vecteur de forme(i,)
.Une fois que vous aurez compris, vous constaterez que
einsum
généralisent un grand nombre d'autres opérations:Malheureusement,
einsum
prend un coup de performance assez lourd par rapport à une multiplication + réduction manuelle. Lorsque les performances sont critiques, je recommanderais certainement de rester avec la solution de Neil.la source
Prendre la diagonale de tf.tensordot fait aussi ce que vous voulez, si vous définissez par exemple
J'ai adapté l'exemple de Neil Slater:
qui donne désormais également:
Cela pourrait cependant être sous-optimal pour les grandes matrices (voir la discussion ici )
la source
reduce_sum
)