计算机视觉学习3:矩阵基础

首先我们来讲一讲placehold:

计算机视觉学习3:矩阵基础

 placehold的特点在于它只定义,不初始化,就像是把常数放到了变量的地位,也要自己初始化了。那要怎样初始化呢?要在sess.run()里面,开始要实际操作了的时候进行初始化。在自己要运行的东西(这里是dataAdd)后面还有一个参数叫feed_dict,它的数据类型是字典,以字典的形式进行初始化。

这个和矩阵没有什么必然的联系····接下来讲一讲矩阵:

计算机视觉学习3:矩阵基础

之前就讲过,tensor就是一个多维数组。我们之前用的一个数,现在要用它更常用的样子了。事实证明这个数组可以是其他维的,一维也可以。

因为tensor里面没存数据而是存了一堆奇奇怪怪的东西,我们可以通过这些奇奇怪怪的东西来了解一些这个tensor的信息。比如说tensor名.shape就会显示tensor有几行几列几个维度的信息。

调用tensor中的元素就和np.array一样,也是tensor名[a,b],想要一行就只写一个数,想要一列就写[:,b],前面的分号什么意思记得。别忘了sess.run().

 接下来是矩阵的运算:

计算机视觉学习3:矩阵基础

用的函数和一般的数字是一样的,毕竟大家都是tensor。但是矩阵的乘法比较不同。普通的乘法是tf.multiply,对常数和矩阵都可以用。矩阵的这个乘法很有意思,和np.array是一样的,有广播功能,遇到和自己维度不同的情况,就让小一点的那个变大,然后一个一个乘,对应位子乘.还有一个正宗的矩阵乘法,是tf.matmul()(mat就是矩阵,mul就是乘法)这个就是正版的矩阵乘法,行对列的那个,而且元素一定要是矩阵(二维矩阵),不可有半点闪失。

想要同时计算多个数?一个一个用sess.run()好麻烦?可以这样:把要求的元素以列表的形式放进去,结果也会得到一个列表:

计算机视觉学习3:矩阵基础

如何给新来的矩阵快速地初始化?可以这样:

计算机视觉学习3:矩阵基础 

 想要不同的还可以这样:

计算机视觉学习3:矩阵基础

 

上一篇:深度学习:Concatenate的理解


下一篇:使用tf.print()打印tensor内容