點(diǎn)乘和矩陣乘的區(qū)別:
1)點(diǎn)乘(即“ * ”) ---- 各個(gè)矩陣對應(yīng)元素做乘法
若 w 為 m*1 的矩陣,x 為 m*n 的矩陣,那么通過點(diǎn)乘結(jié)果就會(huì)得到一個(gè) m*n 的矩陣。
![](/d/20211017/43596e32ab41ce88a6c3ef7ccb23a8d5.gif)
若 w 為 m*n 的矩陣,x 為 m*n 的矩陣,那么通過點(diǎn)乘結(jié)果就會(huì)得到一個(gè) m*n 的矩陣。
![](/d/20211017/80381eafc52941e8c18e57a288a11530.gif)
w的列數(shù)只能為 1 或 與x的列數(shù)相等(即n),w的行數(shù)與x的行數(shù)相等 才能進(jìn)行乘法運(yùn)算。
2)矩陣乘 ---- 按照矩陣乘法規(guī)則做運(yùn)算
若 w 為 m*p 的矩陣,x 為 p*n 的矩陣,那么通過矩陣相乘結(jié)果就會(huì)得到一個(gè) m*n 的矩陣。
只有 w 的列數(shù) == x的行數(shù) 時(shí),才能進(jìn)行乘法運(yùn)算
![](/d/20211017/01bc476db6912dbd272cde292a5ea2fe.gif)
1. numpy
1)點(diǎn)乘
import numpy as np
w = np.array([[0.4], [1.2]])
x = np.array([range(1,6), range(5,10)])
print w
print x
print w*x
運(yùn)行結(jié)果如下圖:
![](/d/20211017/0065d0e04829876903cb472c7ac725cd.gif)
2)矩陣乘
import numpy as np
w = np.array([[0.4, 1.2]])
x = np.array([range(1,6), range(5,10)])
print w
print x
print np.dot(w,x)
運(yùn)行結(jié)果如下:
![](/d/20211017/7e47ddba3217dfdb55754ab47dc24756.gif)
2. tensorflow
1)點(diǎn)乘
import tensorflow as tf
w = tf.Variable([[0.4], [1.2]], dtype=tf.float32) # w.shape: [2, 1]
x = tf.Variable([range(1,6), range(5,10)], dtype=tf.float32) # x.shape: [2, 5]
y = w * x # 等同于 y = tf.multiply(w, x) y.shape: [2, 5]
sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init)
print sess.run(w)
print sess.run(x)
print sess.run(y)
運(yùn)行結(jié)果如下:
![](/d/20211017/af47445829ce5bb7c8231e7dd1057b91.gif)
2)矩陣乘
# coding:utf-8
import tensorflow as tf
w = tf.Variable([[0.4, 1.2]], dtype=tf.float32) # w.shape: [1, 2]
x = tf.Variable([range(1,6), range(5,10)], dtype=tf.float32) # x.shape: [2, 5]
y = tf.matmul(w, x) # y.shape: [1, 5]
sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init)
print sess.run(w)
print sess.run(x)
print sess.run(y)
運(yùn)行結(jié)果如下:
![](/d/20211017/5ebe7a7e229c7c80348e1ff35e65f470.gif)
到此這篇關(guān)于numpy和tensorflow中的各種乘法(點(diǎn)乘和矩陣乘)的文章就介紹到這了,更多相關(guān)numpy和tensorflow 乘法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Numpy實(shí)現(xiàn)矩陣運(yùn)算及線性代數(shù)應(yīng)用
- numpy數(shù)組合并和矩陣拼接的實(shí)現(xiàn)
- NumPy 矩陣乘法的實(shí)現(xiàn)示例
- 從Pytorch模型pth文件中讀取參數(shù)成numpy矩陣的操作
- Python numpy大矩陣運(yùn)算內(nèi)存不足如何解決
- 使用numpy實(shí)現(xiàn)矩陣的翻轉(zhuǎn)(flip)與旋轉(zhuǎn)