ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • numpy [...]
    언어/파이썬 2021. 1. 1. 13:20

    파이썬 라이브러리중 하나인 numpy는 가장 많이 사용되는 라이브러리 중 하나이다. (저도 종종 사용합니다.....)

    그 중 처음보는게 있어서 정리해본다. 

    class MatMul: 

        def __init__(self , W):

            self.grads = [np.zeros_like(W)]

     

        def backward(self, dout):

            self.grads[0][...]  = dout

     

    과 같은 형태를 보게 되었는데 여기서 [...]를 사용하게 되는 이유는 무엇일까?

    사실 이 형태는 전에 포스팅 했던 S = Q[:] 형태와 비슷한 형태이다. 즉 S의 id값은 변경되지 않고 Q의 값을 그대로 취한다. 이게 Numpy 버전으로는 [...]로 생각하면 된다.

    이렇게 하는 이유는 무엇일까?

    바로 grads의 값을 바꿔도 dout의 값은 바뀌지 않기를 바라기 때문이다. 

    그냥 self.grads[0] = dout 을 하게 되면 dout의 주소와 self.grads[0] 의 주소가 같아지기 때문에 문제가 발생하게 된다.

    '언어 > 파이썬' 카테고리의 다른 글

    unsqueeze에 대한 빠른 이해  (0) 2021.01.01
    id VS data_ptr()  (1) 2021.01.01
    in 연산자  (0) 2020.12.29
    전역변수 global  (0) 2020.12.29
    파이썬에 관한 흥미로운 사실  (0) 2020.12.29

    댓글