list를 numpy로 변환하는 과정에서 str과 numerical 데이터를 혼용하면 numpy의 dtype이 obejct로 고정된다. 이 때는 해당 numpy를 index slicing해도 dtype이 바뀌지 않고, astype으로 바꾸려하면 오류가 뜬다.
a = {somthing compelx Nd list}
b = np.array(a)
only_numerical = b[ {some slicing selecting only numerical data} ]
only_numerical.astype(np.float16) -> error!!
이 때 np.stack을 쓰니 한방에 해결됐다..
np.stack(only_numercial)
soft voting을 구현하던 중에 np.mean을 사용해야하는 상황이 있었다.
>>> pred.shape
(10, 12800, 3)
10은 augmentation의 수, 12800은 데이터의 수, 3은 class의 수이다. 원하는 것은 각각의 augmentation 결과들이 가진 class 예측결과들의 평균을 구하는 것이다. 마지막 행의 평균을 구하는 것이니 다음과 같이 예측했었다.
np.mean(pred, axis=-1)
하지만 생각해보니 axis=0을 주는 것이 의도한 것이었다. 포인트는 다음과 같다.
즉 이러한 포인트를 감안하면 axis=-1이 아니라 axis=0을 줘야한다. agumentation을 기준으로 평균을 구해야하기 때문이다.
>>> pred.shape
(10, 12800, 3)
>>> np.mean(pred, axis=0).shape
(12800, 3)