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('--------------------------\n\n')
运行结果为
--------case 1, 2, 5, 4--------- 2017-05-10 15:26:04.020848: W c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cpu_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:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cpu_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:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cpu_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:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cpu_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:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cpu_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:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cpu_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
不对之处欢迎指正