Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°ΡΠ°ΡΠ΅ΡΠ°ΠΌΠΈ
git clone https://github.com/ai-forever/DataProcessingFramework cd DataProcessingFramework pip install -r requirements.txtΠΠ°Π½Π½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ:
- Π‘ΡΠΈΡΡΠ²Π°ΡΡ ΠΈ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π΄Π°ΡΠ°ΡΠ΅ΡΡ ΠΊΠ°ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΈ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 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 Ρ ΡΠ΅ΠΊΡΡΠ°ΠΌΠΈ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ
ΠΡΠΈΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² ΠΏΠ°ΠΏΠΊΠ΅ examples/
ΠΠ»Ρ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ Π΄Π°ΡΠ°ΡΠ΅ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ formatter.from_* (Π²ΠΌΠ΅ΡΡΠΎ * ΠΏΠΈΡΠΈΡΠ΅ Π½ΡΠΆΠ½ΡΡ Π²Π°ΠΌ ΡΡΠ½ΠΊΡΠΈΡ) ΠΊΠ»Π°ΡΡΠ° T2IFormatter. ΠΠ΅ΡΠΎΠ΄ Π²Π΅ΡΠ½Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° T2IProcessor, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ° Ρ Π΄Π°ΡΠ°ΡΠ΅ΡΠΎΠΌ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²:
formatter.from_shards- Π΄Π»Ρ ΡΠΎΡΠΌΠ°ΡΠ° shardsformatter.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/text2imageDPF/filters/imagesDPF/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. ΠΠ°Π»ΠΈΠ΄Π°ΡΠΎΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΡΡΡ ΠΊ Π΄Π°ΡΠ°ΡΠ΅ΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ:
- ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΡΠ΄Π°
- Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ - ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΎΠ½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π°
- ΡΡΠ°ΡΡΡ (
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)ΠΠ»Ρ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ Π΄Π°ΡΠ°ΡΠ΅ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ 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.
TO-DO
TO-DO