본문 바로가기
Python

reshape

by 룰루셩 2020. 8. 8.

reshape

 

ShuffleNet에서 channel shuffle을 구현하는 코드 중에 reshape이 있었는데 헷갈리는 부분을 정리해놓으려고 합니다.

 


x=np.linspace(1,100,num=1000)
x.shape

≫ (1000,)

 

X=x.reshape(-1,2,2,25)
X.shape

(10, 2, 2, 25)

 

여기서 -1은 나머지 (2, 2, 25)가 주어져있을때 -1에 해당하는 부분의 값을 알아서 계산하고 그대로 reshape해줍니다. 

즉 다음 코드와 같은 역할을 합니다.

X=x.reshape(10,2,2,25)

reshape에 사용할 수 있는 매개변수 -1은 가능한 많이라는 뜻으로 사용됩니다.
reshape(1,-1)은 행 하나에 열은 가능한 많게라는 의미입니다.

※2021.07.19 추가

 

 

tensorflow에서도 reshape을 사용할 수 있습니다.

x_reshaped = tf.reshape(X, [2, 25, 10, 2])
x_reshaped.shape

≫ TensorShape([2, 25, 10, 2])

 


 

다음에 reshape과 관련해서 또 모르는 부분이 생기면 이 글을 수정해서 올리도록 하겠습니다~

'Python' 카테고리의 다른 글

[python-ds-handbook] NumPy  (0) 2020.07.21
아나콘다 가상환경 만들기  (0) 2020.07.13

댓글