기계 학습 및 자연어 처리와 관련된 다양한 오픈 소스 도구와 라이브러리를 제공한다.
Hugging Face의 'datasets' 라이브러리로 학습에 사용될 데이터셋을 생성할 수 있다.
다음은 데이터셋을 정의하는 파이썬 클래스 Loader_Class
이다. datasets.GeneratorBasedBuilder
클래스를 상속하여 데이터셋을 생성하는 데 필요한 기능들을 구현한다.
import datasets
import pandas as pd
from datasets import load_dataset
import torch
_VERSION = datasets.Version("1.1.1")
METADATA_PATH = "/home/train.jsonl"
_DEFAULT_CONFIG = datasets.BuilderConfig(name="default", version=_VERSION)
class Loader_Class(datasets.GeneratorBasedBuilder):
BUILDER_CONFIGS = [_DEFAULT_CONFIG]
DEFAULT_CONFIG_NAME = "default"
def _info(self):
return datasets.DatasetInfo(
description="temp",
features=datasets.Features(
{
"input_data": datasets.features.Sequence(datasets.features.Value("float32")),
"output_data": datasets.features.Value("float32"),
}
),
)
def _split_generators(self, dl_manager=None):
return [
datasets.SplitGenerator(
name=datasets.Split.TRAIN,
gen_kwargs={'data_list': METADATA_PATH}
),
]
def _generate_examples(self, data_list):
data_list = pd.read_json(data_list, lines=True)
for idx, data in data_list.iterrows():
input_data = data["input_data"]
output_color = data["output_data"]
yield idx, {
"input_data": torch.flatten(torch.tensor(input_data, dtype=torch.float32)),
"output_data": torch.tensor(output_data, dtype=torch.float32),
}
Loader_Class
라는 클래스(Loader_Class.py)는 반드시 Loader_Class라는 폴더에 포함되어 있어야 한다.
dataset = load_dataset(path="/home/Loader_Class", split="train")
dataset.set_format(type="torch", columns=["input_data", "output_data"], dtype=torch.float32)
dataset의 version을 확인해보면 위에서 설정한대로 "1.1.1"이 출력된다.
print(f"version: {dataset.version}")
version: 1.1.1