Tensorflow: Using tf.slice to split the input

后端 未结 3 1346
梦毁少年i
梦毁少年i 2021-02-20 03:22

I\'m trying to split my input layer into different sized parts. I\'m trying to use tf.slice to do that but it\'s not working.

Some sample code:

import te         


        
3条回答
  •  野趣味
    野趣味 (楼主)
    2021-02-20 04:16

    For me, I tried another example to let me understand the slice function

    input = [
        [[11, 12, 13], [14, 15, 16]],
        [[21, 22, 23], [24, 25, 26]],
        [[31, 32, 33], [34, 35, 36]],
        [[41, 42, 43], [44, 45, 46]],
        [[51, 52, 53], [54, 55, 56]],
        ]
    s1 = tf.slice(input, [1, 0, 0], [1, 1, 3])
    s2 = tf.slice(input, [2, 0, 0], [3, 1, 2])
    s3 = tf.slice(input, [0, 0, 1], [4, 1, 1])
    s4 = tf.slice(input, [0, 0, 1], [1, 0, 1])
    s5 = tf.slice(input, [2, 0, 2], [-1, -1, -1]) # negative value means the function cutting tersors automatically
    tf.global_variables_initializer()
    with tf.Session() as s:
        print s.run(s1)
        print s.run(s2)
        print s.run(s3)
        print s.run(s4)
    

    It outputs:

    [[[21 22 23]]]
    
    [[[31 32]]
     [[41 42]]
     [[51 52]]]
    
    [[[12]]
     [[22]]
     [[32]]
     [[42]]]
    
    []
    
    [[[33]
      [36]]
     [[43]
      [46]]
     [[53]
      [56]]]
    

    The parameter begin indicates which element you are going to start to cut. The size parameter means how many element you want on that dimension.

提交回复
热议问题