Skip to content

ai-forever/DataProcessingFramework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

DataProcessingFramework

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с датасСтами

Contents

Installation

git clone https://github.com/ai-forever/DataProcessingFramework cd DataProcessingFramework pip install -r requirements.txt

Overview

Π”Π°Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ:

  • Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ датасСты ΠΊΠ°ΠΊ локально, Ρ‚Π°ΠΊ ΠΈ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, S3)
  • ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ для тСкстов ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ Π² датасСтС
  • Π‘ΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ датасСт, Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ Π½ΠΎΠ²ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ
  • Π’Π°Π»ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ датасСт, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° соотвСтствиС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ хранСния

Π’ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ нСсколько основных ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… классов, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ абстракции ΠΈ ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  • Formatter (DPF.formatters) - ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ датасСт, создаСт класс Processor для Π΄Π°Π½Π½ΠΎΠ³ΠΎ датасСта
  • Processor (DPF.processor) - Основной класс, инкапсулируСт Π² сСбя всю Ρ€Π°Π±ΠΎΡ‚Ρƒ с датасСтом: просмотр сСмплов, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅
  • Filter (DPF.filters) - ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ собой Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡƒΡŽ ΠΊ датасСту с Ρ†Π΅Π»ΡŒΡŽ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ нСподходящиС Π΄Π°Π½Π½Ρ‹Π΅
  • Validator (DPF.validators) - Класс, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉΡΡ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ датасСта Π½Π° соотвСтствиС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ
  • Pipeline (DPF.pipelines) - ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ нСсколько дСйствий Π² ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ для упрощСния ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ датасСта

Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ классы:

  • FileSystem (DPF.filesystems) - Абстракция Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы (local/S3)
  • Dataloader (DPF.dataloaders) - ΠŸΠΎΠ΄Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° хранСния
  • Writer (DPF.processors.writers) - Класс, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ сохранСниС Π΄Π°Π½Π½Ρ‹Ρ… для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° хранСния

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹

Π’ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ ΠΏΠΎ ΠΌΠΎΠ΄Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌ, Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠΎΠ΄Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ хранСния. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠΎΠ΄Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Processor ΠΈ Formatter, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ этой ΠΌΠΎΠ΄Π°Π»ΡŒΠ½ΠΎΡΡ‚Π΅. Π€ΠΎΡ€ΠΌΠ°Ρ‚ хранСния - это способ хранСния Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ просто Π² ΠΏΠ°ΠΏΠΊΠ΅, Π° ΠΌΠΎΠ³ΡƒΡ‚ Π² Π°Ρ€Ρ…ΠΈΠ²Π°Ρ….

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ΄Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ хранСния:

  • Images (просто ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ)
    • images_raw - ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° локальном Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅
  • Text-to-image (ΠΏΠ°Ρ€Ρ‹ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°-тСкст)
    • shards - tar-Π°Ρ€Ρ…ΠΈΠ²Ρ‹ с ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°ΠΌΠΈ ΠΈ csv с тСкстами ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ
    • raw - ΠΏΠ°ΠΏΠΊΠΈ с ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°ΠΌΠΈ ΠΈ csv с тСкстами ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

Basic usage

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ прСдставлСны Π² ΠΏΠ°ΠΏΠΊΠ΅ examples/

Text to image

Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π½ΠΈΠ΅ датасСта

Для считывания датасСта ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ formatter.from_* (вмСсто * ΠΏΠΈΡˆΠΈΡ‚Π΅ Π½ΡƒΠΆΠ½ΡƒΡŽ Π²Π°ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ) класса T2IFormatter. ΠœΠ΅Ρ‚ΠΎΠ΄ Π²Π΅Ρ€Π½Π΅Ρ‚ экзСмпляр класса T2IProcessor, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ осущСствляСтся Ρ€Π°Π±ΠΎΡ‚Π° с датасСтом.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ использованиС Π΄Π²ΡƒΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

  • formatter.from_shards - для Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° shards
  • formatter.from_raw - для Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° raw

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ считывания ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΡ‡Π½ΠΎ-тСкстового датасСта Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ shards с локального диска:

from DPF.formatters.t2i_formatter import T2IFormatter formatter = T2IFormatter() processor = formatter.from_shards( 'path_to_your_shards', imagename_column='image_name', caption_column='caption', progress_bar=True, processes=8 )

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ считывания датасСта с S3:

from DPF.formatters.t2i_formatter import T2IFormatter formatter = T2IFormatter( filesystem='s3', key='your_access_key', secret='your_secret_key', endpoint_url='your_endpoint' ) processor = formatter.from_shards( 'path_to_your_dataset_on_s3', imagename_column='image_name', caption_column='rus_caption', progress_bar=True, processes=8 )

Основная информация ΠΎ датасСтС хранится Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ processor.df.

Π‘ΠΎΠ»ΡŒΡˆΠ΅ подробностСй ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ΅ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ

Π Π°Π±ΠΎΡ‚Π° с датасСтом

Π”Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ processor.df ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ. Для сохранСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ processor.update_data НапримСр, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ "ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ сторон" ΠΌΠΎΠΆΠ½ΠΎ произвСсти ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ способом:

processor.df['aspect_ratio'] = processor.df['width']/processor.df['height'] processor.update_data(['aspect_ratio'], processes=8)

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ T2IProcessor ΠΈ ΠΈΡ… Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пСрСчислСны Π½ΠΈΠΆΠ΅:

  • processor.rename_columns - ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ
  • processor.delete_columns - ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ
  • processor.update_data - Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ
    ВсС пСрСчислСнныС Π²Ρ‹ΡˆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ датасСта, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ измСнСния Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.
  • processor.get_random_samples - просмотр случайных ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈΠ· датасСта
  • processor.apply_filter - ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° ΠΊ датасСту

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ

Для датасСтов ΠΌΠΎΠ΄Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ text2image ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΠΌΠΎΠ΄Π°Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ images ΠΈ texts. Π€ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠΎΠ΄Π°Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ располоТСны Π² ΠΏΠ°ΠΏΠΊΠ΅ DPF/filters/ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  • DPF/filters/text2image
  • DPF/filters/images
  • DPF/filters/texts

Для примСнСния Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ сначала ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Processor, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Processor.apply_filter, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π΅ΠΌΡƒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΠ²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Π² Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ΅ processor.df добавятся Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ. НапримСр, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° водяных Π·Π½Π°ΠΊΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ:

from DPF.filters.images.watermarks_filter import WatermarksFilter # see more: help(WatermarksFilter) watermarks_filter = WatermarksFilter( 'resnext50_32x4d-small', weights_folder='your_weights_folder', workers=8, batch_size=128 ) processor.apply_filter(watermarks_filter) processor.df.head()

Π€ΠΈΠ»ΡŒΡ‚Ρ€, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ язык тСкста:

from DPF.filters.texts.lang_filter import LangFilter langfilter = LangFilter( text_column_name='caption' ) processor.apply_filter(lfilter) processor.df.head()

Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΡ€ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ смотритС здСсь, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² этом Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ΅.

Валидация

Валидация позволяСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ соотвСтствуСт Π»ΠΈ датасСт Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ хранСния, Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° Π±ΠΈΡ‚Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, значСния NaN ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ класс T2IValidator. Π’Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ ΠΊ датасСту ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚:

  1. список ошибок для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡˆΠ°Ρ€Π΄Π°
  2. для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ошибки - сколько Ρ€Π°Π· ΠΎΠ½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π°
  3. статус (False, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° хотя Π±Ρ‹ ΠΎΠ΄Π½Π° ошибка, True ΠΈΠ½Π°Ρ‡Π΅)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ датасСта Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ shards:

from DPF.formatters.t2i_formatter import T2IFormatter from DPF.validators.text2image.shards_validator import ShardsValidator path = 'path_to_your_shards' formatter = T2IFormatter() processor = formatter.from_shards( path, imagename_column='image_name', caption_column='caption', progress_bar=True, processes=16 ) validator = ShardsValidator( filesystem=processor.get_filesystem(), csv_columns=['image_name', 'caption'], # список ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π² датасСтС caption_column='caption', validate_tars=True ) results, err2count, all_ok = validator.validate(path, processes=16)

Images

Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π½ΠΈΠ΅ датасСта

Для считывания датасСта ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ formatter.from_* (вмСсто * ΠΏΠΈΡˆΠΈΡ‚Π΅ Π½ΡƒΠΆΠ½ΡƒΡŽ Π²Π°ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ) класса ImagesFormatter. ΠœΠ΅Ρ‚ΠΎΠ΄ Π²Π΅Ρ€Π½Π΅Ρ‚ экзСмпляр класса ImagesProcessor, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ осущСствляСтся Ρ€Π°Π±ΠΎΡ‚Π° с датасСтом.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ использованиС Ρ‚Ρ€Π΅Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

  • formatter.from_paths - инициализация ΠΈΠ· списка ΠΏΡƒΡ‚Π΅ΠΉ ΠΊ изобраТСниям
  • formatter.from_folder - инициализация ΠΈΠ· ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ с изобраТСниями
  • formatter.from_labeled_folder - инициализация ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ с датасСтом для Π·Π°Π΄Π°Ρ‡ΠΈ классификации, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ структуру: folder/{class_name}/{image_name}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ считывания датасСта с изобраТСниями:

from DPF.formatters.images_formatter import ImagesFormatter formatter = ImagesFormatter() processor = formatter.from_folder( 'path/to/folder/' )

Основная информация ΠΎ датасСтС хранится Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ processor.df.

Π Π°Π±ΠΎΡ‚Π° с датасСтом

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ImagesProcessor ΠΈ ΠΈΡ… Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пСрСчислСны Π½ΠΈΠΆΠ΅:

  • processor.get_random_samples - просмотр случайных ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈΠ· датасСта
  • processor.apply_filter - ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° ΠΊ датасСту

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ

Для датасСтов ΠΌΠΎΠ΄Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ images ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Они располоТСны Π² DPF/filters/images.

Texts

TO-DO

Filters

TO-DO

Packages

No packages published

Contributors 6

Languages