TF-调整矩阵维度 tf.reshape 介绍

函数原型为 

def reshape(tensor, shape, name=None)

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

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

返回一个shape形状的新tensor

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

很简单的函数,如下,根据shape为[5,8]的tensor,生成一个新的tensor

复制代码
import tensorflow as tf

alist = [[1, 2, 3, 4, 5, 6 ,7, 8],
         [7, 6 ,5 ,4 ,3 ,2, 1, 0],
         [3, 3, 3, 3, 3, 3, 3, 3],
         [1, 1, 1, 1, 1, 1, 1, 1],
         [2, 2, 2, 2, 2, 2, 2, 2]]
oriarray = tf.constant(alist)

oplist = []
a1 = tf.reshape(oriarray, [1, 2, 5, 4])
oplist.append([a1, 'case 1, 2, 5, 4'])

a1 = tf.reshape(oriarray, [-1, 2, 5, 4])
oplist.append([a1, 'case -1, 2, 5, 4'])

a1 = tf.reshape(oriarray, [8, 5, 1, 1])
oplist.append([a1, 'case 8, 5, 1, 1'])

with tf.Session() as asess:
    for aop in oplist:
        print('--------{}---------'.format(aop[1]))
        print(asess.run(aop[0]))
        print('--------------------------

')
复制代码

运行结果为

复制代码
--------case 1, 2, 5, 4---------
2017-05-10 15:26:04.020848: W c:	f_jenkinshomeworkspace
elease-windevicecpuoswindows	ensorflowcoreplatformcpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE instructions, but these are available on your machine and could speed up CPU computations.
2017-05-10 15:26:04.020848: W c:	f_jenkinshomeworkspace
elease-windevicecpuoswindows	ensorflowcoreplatformcpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE2 instructions, but these are available on your machine and could speed up CPU computations.
2017-05-10 15:26:04.020848: W c:	f_jenkinshomeworkspace
elease-windevicecpuoswindows	ensorflowcoreplatformcpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations.
2017-05-10 15:26:04.020848: W c:	f_jenkinshomeworkspace
elease-windevicecpuoswindows	ensorflowcoreplatformcpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-05-10 15:26:04.021848: W c:	f_jenkinshomeworkspace
elease-windevicecpuoswindows	ensorflowcoreplatformcpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-05-10 15:26:04.021848: W c:	f_jenkinshomeworkspace
elease-windevicecpuoswindows	ensorflowcoreplatformcpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
[[[[1 2 3 4]
   [5 6 7 8]
   [7 6 5 4]
   [3 2 1 0]
   [3 3 3 3]]

  [[3 3 3 3]
   [1 1 1 1]
   [1 1 1 1]
   [2 2 2 2]
   [2 2 2 2]]]]
--------------------------


--------case -1, 2, 5, 4---------
[[[[1 2 3 4]
   [5 6 7 8]
   [7 6 5 4]
   [3 2 1 0]
   [3 3 3 3]]

  [[3 3 3 3]
   [1 1 1 1]
   [1 1 1 1]
   [2 2 2 2]
   [2 2 2 2]]]]
--------------------------


--------case 8, 5, 1, 1---------
[[[[1]]

  [[2]]

  [[3]]

  [[4]]

  [[5]]]


 [[[6]]

  [[7]]

  [[8]]

  [[7]]

  [[6]]]


 [[[5]]

  [[4]]

  [[3]]

  [[2]]

  [[1]]]


 [[[0]]

  [[3]]

  [[3]]

  [[3]]

  [[3]]]


 [[[3]]

  [[3]]

  [[3]]

  [[3]]

  [[1]]]


 [[[1]]

  [[1]]

  [[1]]

  [[1]]

  [[1]]]


 [[[1]]

  [[1]]

  [[2]]

  [[2]]

  [[2]]]


 [[[2]]

  [[2]]

  [[2]]

  [[2]]

  [[2]]]]
--------------------------



Process finished with exit code 0
原文地址:https://www.cnblogs.com/Ph-one/p/9078891.html