Lorsque j'étudiais les mathématiques, le mot «produit intérieur» est apparu. J'ai étudié comment ce «produit interne» est utilisé dans un réseau neuronal. Le produit interne est le produit du vecteur, mais le produit de la matrice est le produit de la matrice. Le produit interne semble être appelé "produit scalaire".
Considérez le réseau neuronal à deux couches suivant.
Si vous remplacez la sortie du réseau neutre ci-dessus par l'équation du produit matriciel, cela ressemblera à ceci.
\begin{bmatrix}
w_{11} & w_{12} & w_{13}\\
w_{21} & w_{22} & w_{23}
\end{bmatrix}
\cdot
\begin{bmatrix}
x_{1} \\
x_{2} \\
x_{3} \\
\end{bmatrix}
Appliquer les chiffres spécifiquement
\begin{bmatrix}
1 & 2 & 3\\
4 & 5 & 6
\end{bmatrix}
\cdot
\begin{bmatrix}
1 \\
2 \\
3 \\
\end{bmatrix}
Si vous calculez à la main
\begin{bmatrix}
1 \times 1 + 2 \times 2 + 3 \times 3 \\
4 \times 1 + 5 \times 2 + 6 \times 3 \\
\end{bmatrix}
=
\begin{bmatrix}
14 \\
32 \\
\end{bmatrix}
import numpy as np
w = np.array([[1,2,3],[4,5,6]])
x = np.array([[1],[2],[3]])
w.dot(x) #=> array([[14],[32]])
w.dot (x)
représente le produit matriciel de w et x.
Au fait, le nom de la méthode passe de "produit scalaire" à "point".
import tensorflow as tf
w = tf.get_variable("weight" , initializer=tf.constant(np.array([[1,2,3],[4,5,6]]).astype("int32")))
x = tf.get_variable("x" , initializer=tf.constant(np.array([[1],[2],[3]]).astype("int32")))
Initialisation de session
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
sess.run(tf.matmul(w, x)) #=> array([[14],[32]])
tf.matmul (w, x)
représente le produit matriciel de w et x.
Au fait, le nom de la méthode est «matmul» de «multiplication matricielle».
Recommended Posts