문장에 포함된 모든 단어의 코드 포인트(code point)를 얻으려면, 먼저 해당 위치가 단어의 시작인지 여부를 확인해야 합니다. 이어서 각 문자의 인덱스가, 모든 문장에서 평탄화(flatten)된 문자 목록 안에서 특정 단어의 시작 인덱스와 일치하는지 검사합니다. 이 과정이 확인되면 아래의 방법을 사용해 모든 단어를 구성하는 각 문자의 코드 포인트를 얻을 수 있습니다.스크립트(script) 식별자는 단어 경계(word boundary)를 어디에 추가해야 하는지 판단하는 데 도움을 줍니다. 단어 경계는 문장의 시작 부분과, 바로
TensorFlow에서 RaggedTensor(비정형 텐서)는 길이가 서로 다른 시퀀스 데이터를 효율적으로 다루기 위한 자료구조입니다. 자연어 처리에서처럼 문장마다 단어 수가 다르고 단어마다 문자 수가 다른 경우, 일반적인 밀집 텐서(dense tensor) 대신 RaggedTensor를 사용하면 패딩 없이 가변 길이 데이터를 그대로 표현할 수 있습니다.단어 목록에서 RaggedTensor 만들기RaggedTensor는 문장에 포함된 단어들의 시작 오프셋(starting offsets)을 활용해 손쉽게 구축할 수 있습니다. 작업 순
비정형 텐서의 단어 코드 포인트를 문장으로 되돌리기 비정형 텐서(ragged tensor)에 담긴 단어별 코드 포인트는 아래에서 소개하는 방법으로 문장 단위로 다시 묶을 수 있습니다. 여기서 말하는 세그멘테이션(segmentation)은 텍스트를 단어와 유사한 단위로 나누는 작업을 의미합니다. 대부분의 언어에서는 공백 문자를 기준으로 단어를 구분하지만, 중국어나 일본어처럼 단어 사이에 공백을 사용하지 않는 언어도 있습니다. 또한 독일어처럼 긴 합성어가 많아, 의미를 정확하게 분석하려면 단어를 더 잘게 분해해야 하는 경우도 있습니다
CIFAR 데이터셋은 datasets 모듈에 포함된 load_data() 메서드를 사용하여 손쉽게 다운로드할 수 있습니다. 데이터를 내려받으면 자동으로 학습용 세트와 검증용 세트로 분리됩니다.함께 읽기: TensorFlow란 무엇이며, Keras는 어떻게 TensorFlow와 함께 신경망을 만들까요?이 글에서는 Keras Sequential API를 사용합니다. Sequential API는 각 레이어가 정확히 하나의 입력 텐서와 하나의 출력 텐서를 갖는 단순한 레이어 스택 구조의 모델을 만들 때 매우 유용합니다.최소 하나 이상의 컨
CIFAR 데이터셋을 검증하는 가장 직관적인 방법은 데이터셋에 포함된 이미지를 콘솔에 직접 시각화하여 확인하는 것입니다. CIFAR의 레이블(label)은 배열(array) 형태로 저장되어 있기 때문에, 클래스 이름에 접근할 때는 추가적인 인덱스가 필요합니다. 이미지 출력에는 matplotlib 라이브러리의 imshow 메서드가 사용됩니다.개발 환경: Google Colaboratory이 튜토리얼의 코드는 Google Colaboratory에서 실행할 수 있습니다. Google Colab(또는 Colaboratory)은 브라우저에서
합성곱 신경망(Convolutional Neural Network, CNN)은 일반적으로 합성곱 레이어(Convolutional Layer), 풀링 레이어(Pooling Layer), 밀집 레이어(Dense Layer)의 조합으로 구성됩니다. 관련 글: TensorFlow란 무엇이며, Keras는 어떻게 TensorFlow와 함께 작동하여 신경망을 만들까요? 합성곱 신경망은 이미지 인식과 같은 특정 유형의 문제에서 탁월한 성능을 입증해 왔습니다. 이러한 네트워크는 models 클래스에 포함된 Sequential 메서드를 사용해 손
TensorFlow에서는 Sequential 모델에 add 메서드를 사용하고 레이어 유형을 Dense로 지정하여 밀집(Dense) 레이어를 손쉽게 추가할 수 있습니다. 이때 합성곱 기반(convolutional base)의 출력은 먼저 Flatten 레이어로 평탄화한 뒤 Dense 레이어가 이어지며, 새로 추가된 레이어는 전체 학습 데이터셋에 적용됩니다.관련 글: TensorFlow란 무엇이며, Keras는 TensorFlow와 함께 어떻게 신경망을 구성할까요?Keras Sequential API 활용이 튜토리얼에서는 Keras의
합성곱 신경망(CNN) 모델은 compile() 메서드를 사용해 컴파일하고, fit() 메서드를 사용해 훈련할 수 있습니다. 이때 fit() 메서드에 학습 반복 횟수인 에포크(epoch) 값을 지정합니다. 함께 읽으면 좋은 글:TensorFlow란 무엇이며, Keras는 TensorFlow와 어떻게 연동되어 신경망을 만들까요? 이 글에서는 Keras의 시퀀셜(Sequential) API를 사용합니다. 시퀀셜 API는 일반적인 레이어 스택 구조의 모델을 만드는 데 유용하며, 각 레이어는 정확히 하나의 입력 텐서와 하나의 출력 텐서를
CNN 모델 평가 개요합성곱 신경망(CNN)은 evaluate 메서드를 사용하여 손쉽게 평가할 수 있습니다. 이 메서드는 테스트 데이터와 테스트 레이블을 매개변수로 받아 모델의 손실(loss)과 정확도(accuracy)를 계산합니다.평가에 앞서 matplotlib 라이브러리를 활용하면 학습 과정에서의 정확도 변화를 시각화하여 모델의 성능을 직관적으로 파악할 수 있습니다.합성곱 신경망(CNN)의 활용 분야합성곱 신경망은 이미지 인식과 같은 특정 유형의 문제에서 뛰어난 성능을 보여주는 딥러닝 모델입니다. 이미지 내의 공간적 특징을 효과
꽃(flower) 데이터셋은 Keras Sequential API를 통해 손쉽게 다운로드할 수 있습니다. 데이터셋이 저장되어 있는 구글 API의 URL을 get_file 메서드에 전달하면, 해당 데이터를 가져와 로컬 환경에 저장합니다.컨볼루션 신경망(CNN)과 이미지 분류최소 하나 이상의 컨볼루션 레이어(convolutional layer)를 포함하는 신경망을 컨볼루션 신경망(Convolutional Neural Network, CNN)이라고 합니다. CNN은 이미지 인식과 같은 특정 유형의 문제에서 탁월한 성능을 보여주며, 널리
PIL 패키지의 Image.open 메서드를 활용하면 Keras Sequential API를 통해 꽃 데이터셋을 손쉽게 탐색할 수 있습니다. 각 하위 디렉터리에는 서로 다른 종류의 꽃 이미지가 저장되어 있으며, 이를 인덱싱하여 콘솔에 표시할 수 있습니다. Keras Sequential API란? Keras Sequential API는 레이어를 순서대로 쌓아 올리는 순차 모델을 구축하는 데 유용한 도구입니다. 이 모델에서는 모든 레이어가 정확히 하나의 입력 텐서와 하나의 출력 텐서를 가집니다. 이미지 분류기는 keras.Sequen
꽃(flower) 데이터셋은 Keras 전처리(preprocessing) API가 제공하는 image_dataset_from_directory 유틸리티를 활용하면 학습(training) 세트와 검증(validation) 세트로 간편하게 분할할 수 있습니다. 이 유틸리티는 검증 세트에 할당할 비율만 지정해 주면 나머지 분할 작업을 자동으로 처리해 줍니다.데이터 로딩 및 모델 구성 개요이미지 분류기는 keras.Sequential 모델을 기반으로 생성되며, 데이터는 preprocessing.image_dataset_from_direct
꽃(flower) 데이터셋은 Keras의 전처리(preprocessing) API를 활용해 손쉽게 사전 처리할 수 있습니다. 특히 image_dataset_from_directory 메서드는 검증 세트(validation set) 분할 방식, 데이터가 저장된 디렉터리 경로 등 다양한 매개변수를 받아 데이터셋을 효율적으로 가공합니다.핵심 개념 정리이 글에서는 TensorFlow와 Keras가 어떻게 함께 작동하여 신경망을 구축하는지에 대한 기본 지식이 있다고 가정합니다. 우리는 Keras Sequential API를 사용합니다. Se
이 글에서는 꽃 데이터셋(flower dataset)을 예로 들어 TensorFlow와 Python을 이용해 데이터를 시각화하는 과정을 살펴봅니다.데이터셋 다운로드꽃 데이터셋은 구글에서 제공하는 API 링크를 통해 다운로드할 수 있습니다. TensorFlow의 get_file 메서드에 해당 API 주소를 매개변수로 전달하면, 데이터가 자동으로 실행 환경에 내려받아집니다.다운로드된 이미지는 matplotlib 라이브러리를 사용해 시각화할 수 있으며, imshow 메서드를 호출하면 콘솔(노트북) 화면에 이미지가 표시됩니다.Keras S
딥러닝 모델을 학습할 때 데이터 로딩 속도가 느리면 GPU가 놀게 되어 전체 학습 시간이 길어집니다. TensorFlow의 tf.data API가 제공하는 cache(), shuffle(), prefetch() 메서드를 활용하면 이런 문제를 해결하고 꽃(flower) 데이터셋과 같은 이미지 데이터 파이프라인의 성능을 크게 향상시킬 수 있습니다.성능 최적화를 위한 핵심 메서드 3가지1. cache() – 메모리 캐싱으로 반복 로딩 제거Dataset.cache()는 첫 번째 에포크(epoch)에서 디스크에서 읽어 들인 이미지를 메모리에
신경망 모델을 학습시킬 때 입력 데이터의 표준화는 매우 중요한 전처리 단계입니다. 이 글에서는 TensorFlow를 사용해 이미지 데이터를 [0, 1] 범위로 표준화하는 방법을 소개합니다.데이터셋 준비여기서는 수천 장의 꽃 이미지를 포함하는 꽃 데이터셋(flower dataset)을 사용합니다. 이 데이터셋은 클래스별로 하나씩 총 5개의 하위 디렉터리로 구성되어 있습니다. get_file 메서드를 통해 꽃 데이터셋을 다운로드한 후, 환경에 로드하여 작업을 진행할 수 있습니다.Rescaling 레이어로 데이터 표준화하기꽃 데이터는 모
TensorFlow로 순차 모델 구축하기순차 모델은 Sequential API를 사용해 손쉽게 만들 수 있습니다. 이 API는 layers.experimental.preprocessing.Rescaling 메서드를 활용하며, 모델을 생성하는 과정에서 나머지 레이어들도 함께 지정할 수 있습니다.관련 글: TensorFlow란 무엇이며, Keras는 어떻게 TensorFlow와 함께 신경망을 구성할까요?여기서는 Keras Sequential API를 사용합니다. 이 API는 레이어가 순서대로 쌓이는 단순한 스택 구조의 모델을 만들 때
TensorFlow에서 생성한 모델은 compile 메서드를 사용하여 간단하게 컴파일할 수 있습니다. 이 과정에서 손실(loss)은 SparseCategoricalCrossentropy 메서드를 통해 계산됩니다.사전 준비: Google Colaboratory 환경이 글의 코드는 Google Colaboratory(Colab)에서 실행됩니다. Google Colab은 브라우저에서 바로 Python 코드를 작성하고 실행할 수 있는 클라우드 기반 개발 환경으로, 별도의 설정 없이 무료로 GPU(그래픽 처리 장치)를 사용할 수 있다는 장점
개요TensorFlow에서는 fit 메서드를 사용해 모델을 손쉽게 훈련할 수 있습니다. 이 메서드 호출 시 에포크(epoch, 전체 데이터셋을 반복 학습하는 횟수)와 훈련 데이터, 그리고 검증용 데이터를 함께 지정합니다.아래 코드는 Google Colaboratory 환경에서 실행한 결과입니다. Google Colab은 브라우저에서 바로 Python 코드를 실행할 수 있는 무료 클라우드 서비스로, 별도의 환경 설정이 필요 없으며 GPU(그래픽 처리 장치)까지 무료로 사용할 수 있다는 장점이 있습니다. Colaboratory는 Jup
문제 상황입력 — 다음과 같은 샘플 DataFrame이 있다고 가정해 보겠습니다. Id Name0 1 Adam1 2 Michael2 3 David3 4 Jack4 5 Peter출력 —임의로 선택된 행 Id 5Name Peter해결 방법이 문제는 아래 단계를 따라 해결할 수 있습니다.DataFrame을 정의합니다.df.shape[0]을 사용해 전체 행 개수를 계산한 뒤 rows 변수에 저장합니다.random 모듈의 randrange 메서드를 이용해 random_row 값을 설정합니다.rando