zoukankan      html  css  js  c++  java
  • 2-15 矩阵基础2

    一种矩阵加法,两种矩阵乘法。矩阵加法非常简单,就是对应元素的相加。第一个矩阵是M行k列,第二个矩阵必须是k行N列。第一个矩阵的列必须要和第二个矩阵的行数相同。这样它们乘出来的结果就是M*N。第一个的列和第二个的行抵消掉。当M、N、k相同的时候,得到的结果肯定也是M*N。

    如果两个矩阵想相乘,第一个矩阵的列必须要和第二个矩阵的行相同。两个k是相同的。而得到的结果却是一个M*N。

    import tensorflow as tf
    data1 = tf.constant([[6,6]])
    data2 = tf.constant([[2],
                         [2]])
    data3 = tf.constant([[3,3]])
    data4 = tf.constant([[1,2],
                         [3,4],
                         [5,6]])
    matMul = tf.matmul(data1,data2)
    matAdd = tf.add(data1,data3)
    with tf.Session() as sess:
        print(sess.run(matMul))
        print(sess.run(matAdd))

    data1是1行两列,data2是两行1列。加法必须要是两个矩阵的维数相同,第一个矩阵data1是1行两列,第二个矩阵data3也是1行两列,那么它们执行的结果同样也是一个1行两列,所以输出是[[9 9]]。


    第二种乘法是对应的元素相乘,和矩阵的加法比较类似。矩阵的加法必须要保证两个矩阵的维数M和N完全相同。而multiply则没有这个要求,所以这种乘法大家一定要注意。

    import tensorflow as tf
    data1 = tf.constant([[6,6]])
    data2 = tf.constant([[2],
                         [2]])
    data3 = tf.constant([[3,3]])
    data4 = tf.constant([[1,2],
                         [3,4],
                         [5,6]])
    matMul = tf.matmul(data1,data2)
    matMul2 = tf.multiply(data1,data2)
    matAdd = tf.add(data1,data3)
    with tf.Session() as sess:
        print(sess.run(matMul))#1 维 M=1 N2. 1*2(MK) 2*1(KN) = 1*1
        print(sess.run(matAdd))#1行2列
        print(sess.run(matMul2))# 1*2 2*1 = 2*2 对应元素相乘 两个矩阵的最高维度都是2
        print(sess.run([matMul,matAdd]))

  • 相关阅读:
    纯线性同余随机数生成器
    读书笔记之:C语言参考手册(第5版)
    读书笔记之:C语言函数库
    读书笔记之:C/C++程序员实用大全—C/C++最佳编程指南
    C++中重要关键字总结
    读书笔记之:C++参考大全
    读书笔记之:C++大学教程(第2版)
    C语言中函数参数入栈的顺序
    ANSI设备驱动器
    可以输出自己的源程序代码(quine)
  • 原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/9645406.html
Copyright © 2011-2022 走看看