tensorflow點乘與矩陣乘

2021-10-03 08:06:41 字數 4434 閱讀 5551

若 w 為 m*1 的矩陣,x 為 m*n 的矩陣,那麼通過點乘結果就會得到乙個 mn 的矩陣。

若 w 為 m*n 的矩陣,x 為 m*n 的矩陣,那麼通過點乘結果就會得到乙個 mn 的矩陣。

w的列數只能為 1 或與x的列數相等(即n),w的行數與x的行數相等 才能進行乘法運算。

若 w 為 m*p 的矩陣,x 為 p*n 的矩陣,那麼通過矩陣相乘結果就會得到乙個 m*n 的矩陣。

只有w 的列數 == x的行數 時,才能進行乘法運算。

點乘

import numpy as np

w = np.array([[0.4], [1.2]])

x = np.array([range(1,6), range(5,10)])

print("w:")

print(w)

print("x:")

print(x)

print("點乘w * x:")

print(w * x)

執行結果

w:

[[0.4]

[1.2]]

x:[[1 2 3 4 5]

[5 6 7 8 9]]

點乘w * x:

[[ 0.4 0.8 1.2 1.6 2. ]

[ 6. 7.2 8.4 9.6 10.8]]

矩陣乘

import numpy as np

w = np.array([[0.4, 1.2]])

x = np.array([range(1,6), range(5,10)])

print("w:")

print(w)

print("x:")

print(x)

print("矩陣乘w * x:")

print(np.dot(w, x))

執行結果

w:

[[0.4 1.2]]

x:[[1 2 3 4 5]

[5 6 7 8 9]]

矩陣乘w * x:

[[ 6.4 8. 9.6 11.2 12.8]]

點乘

import tensorflow as tf

w = tf.variable([[0.4], [1.2]], dtype=tf.float32)

x = tf.variable([[1.0, 2.0, 3.0, 4.0, 5.0],[6.0, 7.0, 8.0, 9.0, 10.0]], dtype=tf.float32)

y1 = w * x

y2 = tf.multiply(w, x)

w2 = tf.variable(0.1, dtype=tf.float32)

y3 = w2 * x

y4 = tf.multiply(w2, x)

init = tf.global_variables_initializer()

with tf.session() as sess:

sess.run(init)

print("w:")

print(sess.run(w))

print("w.shape:")

print(w.shape)

print("x:")

print(sess.run(x))

print("x.shape:")

print(x.shape)

print("y1:")

print(sess.run(y1))

print("y1.shape:")

print(y1.shape)

print("y2:")

print(sess.run(y2))

print("y2.shape:")

print(y2.shape)

print("--------")

print("w2:")

print(sess.run(w2))

print("w2.shape")

print(w2.shape)

print("y3:")

print(sess.run(y3))

print("y3.shape:")

print(y3.shape)

print("y4:")

print(sess.run(y4))

print("y4.shape:")

print(y4.shape)

執行結果

w:

[[0.4]

[1.2]

]w.shape:

(2, 1)x:[

[ 1. 2. 3. 4. 5.]

[ 6. 7. 8. 9. 10.]

]x.shape:

(2, 5)

y1:[

[ 0.4 0.8 1.2 1.6 2. ]

[ 7.2000003 8.400001 9.6 10.8 12. ]

]y1.shape:

(2, 5)

y2:[

[ 0.4 0.8 1.2 1.6 2. ]

[ 7.2000003 8.400001 9.6 10.8 12. ]

]y2.shape:

(2, 5)

--------

w2:0.1

w2.shape()

y3:[

[0.1 0.2 0.3 0.4 0.5 ]

[0.6 0.7 0.8 0.90000004 1. ]

]y3.shape:

(2, 5)

y4:[

[0.1 0.2 0.3 0.4 0.5 ]

[0.6 0.7 0.8 0.90000004 1. ]

]y4.shape:

(2, 5)

矩陣乘

import tensorflow as tf

w = tf.variable([[0.4, 1.2]], dtype=tf.float32)

x = tf.variable([[1.0, 2.0, 3.0, 4.0, 5.0],[6.0, 7.0, 8.0, 9.0, 10.0]], dtype=tf.float32)

y = tf.matmul(w, x)

init = tf.global_variables_initializer()

with tf.session() as sess:

sess.run(init)

print("w:")

print(sess.run(w))

print("w.shape:")

print(w.shape)

print("x:")

print(sess.run(x))

print("x.shape:")

print(x.shape)

print("y:")

print(sess.run(y))

print("y.shape:")

print(y.shape)

執行結果

w:

[[0.4 1.2]

]w.shape:

(1, 2)x:[

[ 1. 2. 3. 4. 5.]

[ 6. 7. 8. 9. 10.]

]x.shape:

(2, 5)y:[

[ 7.6000004 9.200001 10.8 12.400001 14. ]

]y.shape:

(1, 5)

python矩陣點乘和叉乘 矩陣的點成和叉乘

矩陣的叉乘 a 1 0 2 1 3 1 b 3 1 2 1 1 0 c 5 1 4 2 matlab叉乘 c a b python叉乘 np.dot a,b 矩陣的點乘 對應位置上的元素相乘,要求兩個矩陣同行同列 a 1 0 1 3 b 3 1 2 1 c 3 0 2 3 matlab的點乘 c a...

向量點乘與叉乘

點乘 dot product 點乘,也叫向量的內積 數量積。顧名思義,求下來的結果是乙個數。向量a 向量b a b cos 在物理學中,已知力與位移求功,實際上就是求向量f與向量s的內積,即要用點乘。將向量用座標表示 三維向量 若向量a a1,b1,c1 向量b a2,b2,c2 則 向量a 向量b...

向量點乘與叉乘

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!向量 vector 在幾乎所有的幾何問題中,向量 有時也稱向量 是乙個基本點。向量的定義包含方向和乙個數 長度 在二維空間中,乙個向量可以用一對x和y來表示。例如由點 1,3 到 5,1的向量可以用 4,2 來表示。這裡大家要特別注意,我這樣說並不...