본문 바로가기
Tensorflow

Tensorflow vs Pytorch 명령어 비교 - (3)

by 블쭌 2021. 5. 17.
728x90
  • tf.tile(input, multiples, name=None)
w = tf.constant([[1], [2]])
v = tf.tile(w, [3, 4]) 

with tf.Session() as sess:
    print(sess.run(w))
    print(sess.run(w).shape)
    print(sess.run(v))
    print(sess.run(v).shape)
    
    
[[1]
 [2]]
(2, 1)
[[1 1 1 1]
 [2 2 2 2]
 [1 1 1 1]
 [2 2 2 2]
 [1 1 1 1]
 [2 2 2 2]]
(6, 4)
  • torch_tensor.repeat((num, ...)
w = torch.tensor([[1], [2]])
w.repeat((3, 4))

tensor([[1, 1, 1, 1],
        [2, 2, 2, 2],
        [1, 1, 1, 1],
        [2, 2, 2, 2],
        [1, 1, 1, 1],
        [2, 2, 2, 2]])

특정 tensor를 뒤에 원하는 값 만큼 곱해서 복제한다.


  • tf.expand_dims( input, axis=None, name=None, dim=None)
t = tf.constant([[2, 2],
                 [2, 2]])

with tf.Session() as sess:
    print(sess.run(tf.shape(t)))
    print(sess.run(tf.shape(tf.expand_dims(t, 0))))
    print(sess.run(tf.shape(tf.expand_dims(t, 1))))
    print(sess.run(tf.shape(tf.expand_dims(t, -1))))
    
[2 2]
[1 2 2]
[2 1 2]
[2 2 1]
  • torch.unsqueeze(input, dim)
t = torch.tensor([[2, 2],
                  [2, 2]])

print(torch.unsqueeze(t, 0).size())
print(torch.unsqueeze(t, 1).size())
print(torch.unsqueeze(t, -1).size())

torch.Size([1, 2, 2])
torch.Size([2, 1, 2])
torch.Size([2, 2, 1])

원하는 곳의 특정 차원을 늘려준다. 주로 연산의 shape를 맞춰주기 위해서 많이 사용된다.


  • tf.squeeze( input, axis=None, name=None, squeeze_dims=None)
t = tf.constant([[1], 
                 [2],
                 [1], 
                 [1]])

with tf.Session() as sess:
    print(sess.run(tf.shape(t)))
    print(sess.run(tf.shape(tf.squeeze(t))))
    print(sess.run(tf.squeeze(t)))
    
[4 1]
[4]
[1 2 1 1]
  • torch.squeeze(input, dim)
t = torch.tensor([[1], 
                  [2],
                  [1], 
                  [1]])

print(t.size())
print(torch.squeeze(t).size())
print(torch.squeeze(t))

torch.Size([4, 1])
torch.Size([4])
tensor([1, 2, 1, 1])

차원이 1인곳을 없애준다. 계산을 마친후에 원래의 차원으로 되돌려줄때 사용된다.

728x90

댓글