본문 바로가기

tensorflow6

12.3 사용자 정의 모델과 훈련 알고리즘 - (1) Prerequisite from sklearn.datasets import fetch_california_housing from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler housing = fetch_california_housing() X_train_full, X_test, y_train_full, y_test = train_test_split(housing.data, housing.target.reshape(-1, 1), random_state=42) X_train, X_valid, y_train, y_valid = train_test_split(X_train_full, .. 2022. 3. 26.
12.2 넘파이처럼 텐서플로 사용하기 기본적으로 텐서플로는 텐서(tensor)를 사용한다. 텐서는 차원에 따라 스칼라 혹은 배열이 될 수 있다. 그리고, 텐서는 넘파이 배열(ndarray)과 유사하기 때문에 넘파이 패키지가 익숙하면 좋다. 텐서의 생성 텐서를 생성하기 위해 tf.constant() 함수에 텐서로 만들기 원하는 값을 인자로 전달하면 된다. import tensorflow as tf tf.constant([1, 2, 3]) >>> # 다차원 배열 tf.constant([[1, 2, 3], [4, 5, 6]]) >>> # 데이터 타입 명시 tf.constant([1, 2, 3, 4, 5, 6], dtype=tf.float32) >>> 텐서의 인덱싱 텐서는 넘파이 배열 혹은 파이썬의 리스트처럼 대괄호를 통해 인덱스 참조가 가능하다... 2022. 3. 21.
12.1 텐서플로 훑어보기 텐서플로는 2015년 11월 오픈소스로 공개된 딥러닝 라이브러리이다. 텐서플로를 통해 이미지 분류, 자연어 처리, 추천 시스템, 시계열 예측 등 다양한 테스크에 적용이 가능하다. 텐서플로가 제공하는 것들 GPU 연산 지원 분산 컴퓨팅 지원 JIT (Just-In-Time) 컴파일러 계산 그래프 (플랫폼에 중립적인 포맷으로 내보내기 가능 - 환경에 의존성이 덜함) 자동 미분(auto diff) 및 고성능 옵티마이저(RMSProp, Nadam, ..) 고수준 API 서브 모듈(tf.keras)가 가장 많이 사용된다. 하지만, 더 높은 자유도 있는 구현을 위해서는 저수준 API(tf.nn ~ tf.initializers)를 사용할 필요가 있다. 가장 저수준의 텐서플로 API는 C++로 구현되어 있다. 필요하다.. 2022. 3. 19.
# 1. tf.keras.backend.permute_dimensions a = np.arange(12).reshape((3, 4)) t = tf.constant(a) t >>> tf.Tensor( [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]], shape=(3, 4), dtype=int32) 위와 같은 (3, 4) dimension을 갖는 텐서가 있다. axis=0은 3개의 원소, axis=1은 4개의 원소가 존재한다. 이 텐서를 전치시키려고 한다면 다음과 같이 할 수 있다. tf.keras.backend.permute_dimensions(t, pattern=(1, 0)) >>> 여기서 중요한 인자는 pattern인데, (1, 0)의 의미는 텐서 t를 (axis=1의 값, axis=0의 값)차원으로 재구성한다는 의미이다. 즉, (4, 3) 차원으로 변형되.. 2022. 3. 17.
# 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.
# 1. CUDA, cuDNN 설치 및 tensorflow-gpu 환경 세팅 이번 포스트는 tensorflow에서 GPU를 세팅하는 방법에 대해 작성한다. 물론 여기보다 더 잘 설명된 글도 많지만 굳이 다시 찾아보지 않으려고 작성한다. 무튼, 엔비디아 그래픽 카드(RTX 3060 TI)를 기준으로 글을 작성한다. 그리고 가상환경을 기준으로 세팅할 것이기 때문에 가상환경에 대해 모르는 분은 해당 포스트를 참고하면 도움이 된다. 엔비디아 그래픽 드라이버 설치 구글에 돌아다니는 글들을 보면 흔히 무작정 CUDA 부터 설치하는 경우가 많은데, 이전에 해야 몇 가지 작업이 있다. (기존에 엔비디아 그래픽 드라이버가 설치되어 있는 분이라면 이 단계는 뛰어넘어도 된다.) 엔비디아 그래픽 드라이버가 설치부터 하자. 이 과정을 수행하지 않으면, 인텔 CPU를 사용한다면, 내장 그래픽으로 모니터를.. 2022. 1. 25.