반응형
딥러닝을 공부하면서 모델의 입력 (차원) 형태와 이미지의 형태(차원)를 맞춰주기 위해서
expand_dims() 메서드를 정리하려고 합니다.
expand_dims()
* 배열의 모양을 확장한다 = 배열의 차원을 추가한다.
(1) Test 용 1차원 넘파이 배열 생성하기
import numpy as np
x = np.array([2,4])
print(x)
print(x.shape)
numpy 배열의 shape 출력 결과에서 다음 순서대로 축의 순서가 정해진다.
(첫 번째 축, 두 번째 축, 세 번째 축)!!
(2) 첫 번째 축에 차원 추가하기.
- expand_dims
- np.newaxis
y = np.expand_dims(x, axis=0)
print(y)
print(y.shape)
print('\n')
y = x[np.newaxis, :]
print(y)
print(y.shape)
expand_dims(axis=0) 대신에 x[np.newaxis, :]을 사용해도 같은 결과를 얻을 수 있습니다.
첫 번째 축에 차원이 추가되어 (2,) -> (1,2)로 변경되었습니다.
(3) 두 번째 축에 차원 추가하기
- expand_dims(x, axis=1)
- x[:,np.newaxis]
y = np.expand_dims(x, axis=1)
print(y)
print(y.shape)
print('\n')
y = x[:, np.newaxis]
print(y)
print(y.shape)
모델 입력으로 (None, 100, 100, 3)의 형태를 가지고 있는데 모델의 돌릴 이미지의 차원이 이와 다를 경우 모델의 입력할 수 없어 차원을 맞추려고 할 때 np.expand_dims()를 사용한다.
input_img = np.expand_dims(img, axis=0)
print(input_img)
(100,100,3) -> (1,100,100,3) 형태로 변경되었다.
반응형
'AI > Machine Learning' 카테고리의 다른 글
[머신러닝] 비지도학습 K-평균 알고리즘 및 실루엣 계수 (0) | 2023.02.16 |
---|---|
[ML] 머신러닝 - 회귀, 다항회귀, MSE, RMSE (0) | 2022.04.16 |
[ML] 머신러닝 - 스태킹 앙상블 (0) | 2022.04.09 |
불균형 데이터 처리를 위한 언더 샘플링과 오버 샘플링 (0) | 2022.04.09 |
[ML] 머신러닝 - 부스팅 GBM, XGBoost, LightGBM (0) | 2022.04.09 |