tensorflow中的shapre和reshape的问题

TensorFlow用张量这种数据结构来表示所有的数据.你可以把一个张量想象成一个n维的数组或列表.一个张量有一个静态类型和动态类型的维数.                                              张量可以在图中的节点之间流通.

在TensorFlow系统中,张量的维数来被描述为阶.但是张量的阶和矩阵的阶并不是同一个概念.张量的阶(有时是关于如顺序或度数或者是n维)是张量维数的一个数量描述。

具体的描述参照这位朋友的博客 https://blog.csdn.net/M_Z_G_Y/article/details/80332769   谢谢这位朋友

这里我主要以例子来阐述一下tensorflow.shape 的结果问题,因为我自己在这里有一些疑惑

(这里的很多想法是从这位朋友的博客中借鉴的https://blog.csdn.net/a563562675/article/details/70332605   ,在这里也和他说一声谢谢)

首先我们先是从文档和简单的案例入手  :

1.给定一个tensor,怎么确定它的shape。 
2.给定一个tensor和shape,经过reshape(tensor,shape)变换后返回的tensor是什么格式的。 
先看一看文档中给出的例子:


  # tensor 't' is [1, 2, 3, 4, 5, 6, 7, 8, 9]
  # tensor 't' has shape [9]
  reshape(t, [3, 3]) ==> [[1, 2, 3],
                          [4, 5, 6],
                          [7, 8, 9]]

这个例子很简单,我们继续

  # tensor 't' is [[[1, 1], [2, 2]],
  #                [[3, 3], [4, 4]]]
  # tensor 't' has shape [2, 2, 2]
  reshape(t, [2, 4]) ==> [[1, 1, 2, 2],
                          [3, 3, 4, 4]]

在这里我开始有一些疑惑了,reshape的意思不难理解,但是这个shape的[2, 2 ,2] 的每一位表示的都是什么呢?

这样,就一目了然了,如果你看懂了这个,那么我相信下面的这个也就so easy了

还有一点就是如果参数中的数字不够 了,那么就会用最后一个数字来进行剩余部分的填充。。。。。。

关于reshape

函数原型为   def reshape(tensor, shape, name=None)

第1个参数为被调整维度的张量。

第2个参数为要调整为的形状。

返回一个shape形状的新tensor

注意shape里最多有一个维度的值可以填写为-1,表示自动计算此维度。

猜你喜欢

转载自blog.csdn.net/Pierce_KK/article/details/83036154
今日推荐