ROKO
Numpy array[::] 본문
728x90
numpy array 에서 유용하게 사용할 수 있는 옵션중 하나이다.
식이 갖는 의미는 배열안에서 for문을 실행하는것과 같다.
Array[start:end:step] 의 형식으로 아무것도 쓰지 않을때는 전체 해당 열을 전체 출력한다는 것과 같다.
import numpy as np
#transformer의 positional encoding 수식
def get_sinusoid_encoding_table(n_seq, d_hidn):
def cal_angle(position, i_hidn):
return position / np.power(10000, 2 * (i_hidn // 2) / d_hidn)
def get_posi_angle_vec(position):
return [cal_angle(position, i_hidn) for i_hidn in range(d_hidn)]
sinusoid_table = np.array([get_posi_angle_vec(i_seq) for i_seq in range(n_seq)])
# [전체, 0부터 짝수만] step이 2이기 떄문.
sinusoid_table[:, 0::2] = np.sin(sinusoid_table[:, 0::2]) # even index sin
# [전체, 1부터 홀수만]
sinusoid_table[:, 1::2] = np.cos(sinusoid_table[:, 1::2]) # odd index cos
return sinusoid_table
728x90
'Develop' 카테고리의 다른 글
MemoryError: Unable to allocate 13.9 MiB for an array with shape (24, 276, 276) and data type float64 (0) | 2023.02.08 |
---|---|
Latex 수식 편집기 (0) | 2023.02.08 |
How to read NVIDIA spec? (2) | 2023.01.11 |
How to use tqdm? (0) | 2023.01.11 |
Comments