Modify tensor shape

一 Transformation method

  • TensorFlow tensor has two shape transfomations,dynamic shape and static shape.Static shape conversion calls set_shape().The conversion must be the same shape as the initial tensor creation.For a tensor with a static shape fixed,the static shape cannot be set again.
  • Dynamic shape conversion calls tf.reshape(tensor,shape),the number of elements of the dynamically transformed shape tensor must be the same as before modification.

二 Code example

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import tensorflow as tf 
def tensor_shape_demo():
    a_p = tf.placeholder(dtype=tf.float32,shape=[None,None])
    b_p = tf.placeholder(dtype=tf.float32,shape=[None,5])
    print('======================Static shape modification')
    print('The shape before modification:')
    print('a_p:',a_p)
    print('b_p:',b_p)
    print('The shape after modification:')
    a_p.set_shape([3,4])
    b_p.set_shape([2,5])
    print('a_p:',a_p)
    print('b_p:',b_p)
    print('======================Dynamic shape modification')
    c_p = tf.placeholder(dtype=tf.float32,shape=[3,4])
    print('The shape before modification:')
    print('c_p:',c_p)
    print('The shape after modification:')
    c_p = tf.reshape(c_p,shape=[2,6])
    print('c_p:',c_p)
    c_p = tf.reshape(c_p,shape=[4,3])
    print('c_p:',c_p)
    c_p = tf.reshape(c_p,shape=[3,4,1])
    print('c_p:',c_p)
if __name__ == '__main__':
    tensor_shape_demo()

三 Operation result

posted @ 2020-06-08 16:54  小他_W  阅读(108)  评论(0编辑  收藏  举报