TensorFlow之矩阵基本运算


这里所说的基本运算,是指常见的运算,需要区分矩阵乘法矩阵点乘。为了方便运算,首先定义三个矩阵,为什么三个矩阵呢,因为矩阵乘法要求前一个矩阵的行数等于后一个矩阵的列数。

a = tf.constant([[2, 2, 2], [3, 3, 3]], dtype=tf.float32)
b = tf.constant([[1, 1, 1], [2, 2, 2]], dtype=tf.float32)
c = tf.constant([[1, 1], [2, 2], [3, 3]], dtype=tf.float32)
# a =
# [[2. 2. 2.]
# [3. 3. 3.]]
# b =
# [[1. 1. 1.]
# [2. 2. 2.]]
# c =
# [[1. 1.]
# [2. 2.]
# [3. 3.]]

  1. tf.add(x, y, name=None)
    矩阵x和矩阵y对应位置的元素相加
tf.add(a, b)
[[3. 3. 3.]
 [5. 5. 5.]]
  1. tf.subtract(x, y, name=None)
    矩阵x和矩阵y对应位置的元素相减
tf.subtract(a, b)
[[1. 1. 1.]
 [1. 1. 1.]]
  1. tf.multiply(x, y, name=None)
    矩阵x和矩阵y对应位置的元素相乘
tf.multiply(a, b)
[[2. 2. 2.]
 [6. 6. 6.]]
  1. tf.divide(x, y, name=None)
    矩阵x和矩阵y对应位置的元素相除
tf.divide(a, b)
[[2.  2.  2. ]
 [1.5 1.5 1.5]]
  1. tf.matmul(a,
    b,
    transpose_a=False,
    transpose_b=False,
    adjoint_a=False,
    adjoint_b=False,
    a_is_sparse=False,
    b_is_sparse=False,
    name=None)

矩阵a乘以矩阵b,返回的矩阵行数等矩阵a的行数,列数等于矩阵b的列数

tf.matmul(a, c)
[[12. 12.]
 [18. 18.]]

实际上写代码时,为了方便,我们也可以直接使用运算符号:

  • 加法:a+b
  • 减法:a-b
  • 乘法:a*b
  • 除法:a/b
    注意:若a是一个tensor,b是一个scalar,则对a里面的每个元素,都执行相同操作(+,-,*,/)scalar
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容