Ich habe zwei Tensoren a:[batch_size, dim]
b:[batch_size, dim]
. Ich möchte inneres Produkt für jedes Paar in der Charge machen c:[batch_size, 1]
, wo erzeugen c[i,0]=a[i,:].T*b[i,:]
. Wie?
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
quelle
quelle
Eine weitere Option, die es wert ist, überprüft zu werden, ist
[tf.einsum][1]
- es handelt sich im Wesentlichen um eine vereinfachte Version der Einstein-Notation .Nach den Beispielen von Neil und Dumkar:
Das erste Argument dafür
einsum
ist eine Gleichung, die die zu multiplizierenden und zu summierenden Achsen darstellt. Die Grundregeln für eine Gleichung sind:In unserem Fall
ij,ij->i
bedeutet dies, dass unsere Eingaben 2 Matrizen gleicher Form(i,j)
sind und unsere Ausgabe ein Formvektor ist(i,)
.Sobald Sie den Dreh raus haben, werden Sie feststellen, dass dies
einsum
eine Vielzahl anderer Operationen verallgemeinert:Leider ist
einsum
die Leistung im Vergleich zu einer manuellen Multiplikation + Reduzierung ziemlich stark. Wenn die Leistung entscheidend ist, würde ich definitiv empfehlen, an Neils Lösung festzuhalten.quelle
Wenn Sie die Diagonale von tf.tensordot nehmen, tun Sie auch, was Sie wollen, wenn Sie die Achse auf z
Ich habe Neil Slaters Beispiel angepasst:
was jetzt auch gibt:
Dies kann jedoch für große Matrizen suboptimal sein (siehe Diskussion hier ).
quelle
reduce_sum
)