numpy.expand_dims는 차원을 확장하고 싶을 때 쓰는 함수이다.
보통 그레이스케일의 이미지에 1개의 채널을 추가해주거나 (128, 128) > (128, 128, 1)
배치를 정의하기 위해 사용한다. (128, 128, 1) > (1, 128, 128, 1)
인풋으로 array를 받는다.
>>> import numpy as np
>>> np.array([1,1])
array([1, 1])
>>> A = np.array([1,1])
>>> A.shape
(2,)
>>> np.expand_dims(A, axis=0)
array([[1, 1]])
>>> np.expand_dims(A, axis=0).shape
(1, 2)
>>> np.expand_dims(A, axis=1).shape
(2, 1)
같은 방법이지만 더 쉬운 방법으로 np.newaxis가 있다.
>>> A[np.newaxis, ...].shape # 맨 처음에 dimension 추가 (2,) -> (1, 2)
(1, 2)
>>> A[..., np.newaxis].shape # 맨 뒤에 dimension 추가 (2,) -> (2, 1)
(2, 1)
>>> A[np.newaxis, :].shape
(1, 2)
>>> A[:, np.newaxis].shape
(2, 1)
이런 방법으로 사용할 수 있다.