您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:numpy和tensorflow中的各种乘法(点乘和矩阵乘)

51自学网 2021-10-30 22:48:41
  python
这篇教程numpy和tensorflow中的各种乘法(点乘和矩阵乘)写得很实用,希望能帮到您。

点乘和矩阵乘的区别:

 1)点乘(即“ * ”) ---- 各个矩阵对应元素做乘法

若 w 为 m*1 的矩阵,x 为 m*n 的矩阵,那么通过点乘结果就会得到一个 m*n 的矩阵。

4e48b4586b56c7efd0ed30b97d9cddef.png

若 w 为 m*n 的矩阵,x 为 m*n 的矩阵,那么通过点乘结果就会得到一个 m*n 的矩阵。

830b6ddf1793c4b6efd8da31b6b8640f.png

w的列数只能为 1 或 与x的列数相等(即n),w的行数与x的行数相等 才能进行乘法运算。

2)矩阵乘 ---- 按照矩阵乘法规则做运算

若 w 为 m*p 的矩阵,x 为 p*n 的矩阵,那么通过矩阵相乘结果就会得到一个 m*n 的矩阵。

只有 w 的列数 == x的行数 时,才能进行乘法运算

145ad3efea8533f6dd2a2e7e7f435705.png

1. numpy

1)点乘

 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

运行结果如下图:

697d8fff16325c33465de3c71a448660.png

2)矩阵乘

import numpy as np w = np.array([[0.4, 1.2]])x = np.array([range(1,6), range(5,10)]) print wprint xprint np.dot(w,x)

运行结果如下:

67254df72c038258e75d3a528848d691.png

2. tensorflow

1)点乘

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)

运行结果如下:

6e694c88a2f7766144e549a450533f82.png

2)矩阵乘

# coding:utf-8import tensorflow as tfw = 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)

运行结果如下:

abbd11625ed3915b36a9a1a6e73adc19.png

到此这篇关于numpy和tensorflow中的各种乘法(点乘和矩阵乘)的文章就介绍到这了,更多相关numpy和tensorflow 乘法内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


Python+Opencv实现数字识别的示例代码
numpy数组合并和矩阵拼接的实现
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。