본문 바로가기

전체 글112

# 0. 데이터 입력 파이프라인 API 해당 포스트에서는 데이터 입력 파이프라인을 빌드하기 위한 텐서플로우의 API들을 알아볼 것이다. 갑자기 시작부터 어려운 단어가 나왔다. 데이터 입력 파이프라인? 필자가 생각하기에는 데이터가 쌩짜배기로 모델에 주입되는 것이 아니라, 적합한 형태(shape)으로 변환되어야 주입되는데, 이 과정을 전처리하기 위한 과정이라고 생각한다. 그럼 지금부터 하나씩 알아보자. 우선 데이터셋의 shape를 직관적으로 이해하기 위해서는 다음과 같은 함수가 필요하다. 미리 정의해두고 시작하자. def show_dataset_shape(dataset): dataset_to_numpy = list(dataset.as_numpy_iterator()) shape = tf.shape(dataset_to_numpy) print(shap.. 2022. 3. 1.
# 5. Universal functions 이번 포스트에서는 universal function에 대해 알아볼 것이다. 넘파이에서는 np.sin, np.cos, np.exp와 같은 친숙한 수학적 함수들을 제공한다. 넘파이에서는 이러한 함수들을 universal function(범용 함수)이라고 부른다. 이러한 함수들은 피연산자 배열의 원소 단위로 연산이 수행되며, 결과를 새로운 행렬로 반환한다. B = np.arange(3) B >>> array([0, 1, 2]) np.exp(B) >>> array([1. , 2.71828183, 7.3890561 ]) np.sqrt(B) >>> array([0. , 1. , 1.41421356]) C = np.array([2., -1., 4.]) np.add(B, C) >>> array([2., 0., 6.]).. 2022. 2. 25.
# 2. 가상환경 패키지 목록 저장 및 불러오기 이번 포스트에서는 pip와 conda 패키지 관리자를 통해서 가상환경에 저장되어 있는 패키지 목록을 파일로 내보내고(exort) 이를 설치하는 (import) 방법에 대해 알아보겠다. pip export pip freeze > [파일명] pip 패키지 관리자를 통해 현재 활성화된 가상환경의 패키지 목록을 파일로 내보내는 역할을 한다. 예를 들어 pip freeze > requirements.txt 를 하면 requirements.txt 안에 설치된 패키지 목록이 쓰여있다. absl-py @ file:///opt/conda/conda-bld/absl-py_1639803114343/work aiohttp @ file:///C:/ci/aiohttp_1637857239634/work aiosignal @ fil.. 2022. 2. 21.
# 4. Basic Operations 이번 포스트에서는 기본적인 넘파이 연산들에 대해 다뤄볼 것이다. a = np.array([20, 30, 40, 50]) b = np.arange(4) c = a - b # 1 Operation print(b) >>> array([0, 1, 2, 3]) # 2 Operation print(c) >>> array([20, 29, 38, 47]) # 3 Operation print(b**2) >>> array([0, 1, 4, 9]) # 4 Operation print(10 * np.sin(a)) >>> array([ 9.12945251, -9.88031624, 7.4511316 , -2.62374854]) # 5 Operation print(a >> array([ True, True, False.. 2022. 2. 19.
# 3. Printing Arrays 이번 포스트에서는 넘파이 배열을 출력하고 읽는 방법에 대해 다뤄보려고 한다. 넘파이 배열의 차원이 높아질수록 읽기 어려워진다. 그러나 다음과 같은 읽는 방법을 따르면 문제가 없을 것이다. 마지막 축은 왼쪽에서 오른쪽으로 출력된다. 두 번째 ~ 마지막 배열들은 위에서 아래로 출력된다. 1차원 배열은 가로로 출력된다. 2차원 배열은 행렬로 출력된다. 3차원 배열은 행렬의 리스트로 출력된다. # 1d array a = np.arange(6) print(a) >>> [0 1 2 3 4 5] # 2d array b = np.arange(12).reshape(4, 3) print(b) >>> [[ 0 1 2] [ 3 4 5] [ 6 7 8] [ 9 10 11]] # 3d array c = np.arange(24)... 2022. 2. 19.
# 1. CUDA, cuDNN 설치 및 tensorflow-gpu 환경 세팅 이번 포스트는 tensorflow에서 GPU를 세팅하는 방법에 대해 작성한다. 물론 여기보다 더 잘 설명된 글도 많지만 굳이 다시 찾아보지 않으려고 작성한다. 무튼, 엔비디아 그래픽 카드(RTX 3060 TI)를 기준으로 글을 작성한다. 그리고 가상환경을 기준으로 세팅할 것이기 때문에 가상환경에 대해 모르는 분은 해당 포스트를 참고하면 도움이 된다. 엔비디아 그래픽 드라이버 설치 구글에 돌아다니는 글들을 보면 흔히 무작정 CUDA 부터 설치하는 경우가 많은데, 이전에 해야 몇 가지 작업이 있다. (기존에 엔비디아 그래픽 드라이버가 설치되어 있는 분이라면 이 단계는 뛰어넘어도 된다.) 엔비디아 그래픽 드라이버가 설치부터 하자. 이 과정을 수행하지 않으면, 인텔 CPU를 사용한다면, 내장 그래픽으로 모니터를.. 2022. 1. 25.