Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Tensorflow를 사용하여 Illiad 데이터 세트를 Python에서 훈련 및 테스트 데이터로 분할하는 방법은 무엇입니까?

<시간/>

Tensorflow는 Google에서 제공하는 기계 학습 프레임워크입니다. 알고리즘, 딥 러닝 애플리케이션 등을 구현하기 위해 Python과 함께 사용되는 오픈 소스 프레임워크입니다. 연구 및 생산 목적으로 사용됩니다.

'tensorflow' 패키지는 아래 코드 줄을 사용하여 Windows에 설치할 수 있습니다 -

pip install tensorflow

Tensor는 TensorFlow에서 사용되는 데이터 구조입니다. 흐름도에서 가장자리를 연결하는 데 도움이 됩니다. 이 흐름도를 '데이터 흐름 그래프'라고 합니다. 텐서는 다차원 배열 또는 목록에 불과합니다.

세 가지 주요 속성을 사용하여 식별할 수 있습니다.

  • 순위 - 텐서의 차원에 대해 알려줍니다. 텐서의 순서 또는 정의된 텐서의 차원 수로 이해할 수 있습니다.

  • 유형 - Tensor의 요소와 관련된 데이터 유형에 대해 알려줍니다. 1차원, 2차원 또는 n차원 텐서일 수 있습니다.

  • 모양 - 행과 열의 개수입니다.

William Cowper, Edward(Earl of Derby), Samuel Butler의 세 번역 작업에 대한 텍스트 데이터가 포함된 Illiad의 데이터 세트를 사용할 것입니다. 모델은 한 줄의 텍스트가 제공될 때 번역자를 식별하도록 훈련됩니다. 사용된 텍스트 파일은 전처리되었습니다. 여기에는 문서 머리글 및 바닥글, 줄 번호 및 장 제목 제거가 포함됩니다.

Google Colaboratory를 사용하여 아래 코드를 실행하고 있습니다. Google Colab 또는 Colaboratory는 브라우저를 통해 Python 코드를 실행하는 데 도움이 되며 구성이 필요 없고 GPU(그래픽 처리 장치)에 대한 무료 액세스가 필요합니다. Colaboratory는 Jupyter Notebook을 기반으로 구축되었습니다.

예시

다음은 코드 조각입니다 -

train_data = all_encoded_data.skip(VALIDATION_SIZE).shuffle(BUFFER_SIZE)
validation_data = all_encoded_data.take(VALIDATION_SIZE)

train_data = train_data.padded_batch(BATCH_SIZE)
validation_data = validation_data.padded_batch(BATCH_SIZE)

sample_text, sample_labels = next(iter(validation_data))
print("The text batch shape is : ", sample_text.shape)
print("The label batch shape is : ", sample_labels.shape)
print("A text example is : ", sample_text[5])
print("A label example is: ", sample_labels[5])

코드 크레딧 - https://www.tensorflow.org/tutorials/load_data/text

출력

The text batch shape is : (64, 18)
The label batch shape is : (64,)
A text example is : tf.Tensor(
[ 20 391 2 11 144 787 2 3498 16 49 2 0 0 0
   0 0 0 0], shape=(18,), dtype=int64)
A label example is: tf.Tensor(1, shape=(), dtype=int64)

설명

  • Keras TextVectorization 레이어는 벡터화된 데이터를 그룹화/일괄 처리하고 패딩을 제공하는 데 사용됩니다.

  • 배치 내부의 예는 크기와 모양이 같아야 하지만 데이터세트의 예는 크기가 같지 않을 수 있으므로 패딩이 필요합니다.

  • 텍스트 줄마다 단어 수가 다를 수 있습니다.

  • 'tf.data.Dataset' 메소드는 데이터 세트를 분할하고 패드 배치하는 데 도움이 됩니다.

  • 'validation_data' 및 'train_data'는 배치 데이터의 모음입니다.

  • 모든 배치는 배열로 표현되는 한 쌍(많은 예, 많은 레이블)입니다.