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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM