| import os |
| import shutil |
| from datasets import load_from_disk, concatenate_datasets |
|
|
| def combine_datasets(main_dataset_path, datasets_to_add): |
| """ |
| Объединяет указанные датасеты с основным датасетом. |
| |
| Args: |
| main_dataset_path (str): Путь к основному датасету, в который нужно добавить данные |
| datasets_to_add (list): Список путей к датасетам, которые нужно добавить |
| |
| Returns: |
| Dataset: Объединенный датасет |
| """ |
| |
| try: |
| main_dataset = load_from_disk(main_dataset_path) |
| print(f"Загружен основной датасет: {main_dataset_path} ({len(main_dataset)} записей)") |
| except Exception as e: |
| print(f"Ошибка загрузки основного датасета: {e}") |
| return None |
| |
| |
| all_datasets = [main_dataset] |
| |
| |
| for path in datasets_to_add: |
| try: |
| ds = load_from_disk(path) |
| all_datasets.append(ds) |
| print(f"Добавлен датасет: {path} ({len(ds)} записей)") |
| except Exception as e: |
| print(f"Ошибка загрузки датасета {path}: {e}") |
| |
| |
| print(f"Объединение {len(all_datasets)} датасетов...") |
| combined = concatenate_datasets(all_datasets) |
| |
| |
| temp_dir = f"{main_dataset_path}_temp" |
| |
| |
| if os.path.exists(temp_dir): |
| shutil.rmtree(temp_dir) |
| |
| try: |
| |
| print(f"Сохранение во временную директорию {temp_dir}...") |
| combined.save_to_disk(temp_dir) |
| |
| |
| print(f"Обновление основного датасета...") |
| |
| |
| |
| |
| |
| |
| |
| print(f"✅ Объединенный датасет ({len(combined)} записей) успешно сохранен в: {main_dataset_path}") |
| except Exception as e: |
| print(f"Ошибка при сохранении датасета: {e}") |
| print(f"Временные данные сохранены в: {temp_dir}") |
| |
| return combined |
|
|
| combine_datasets("/workspace/sdxs3d/datasets/batch1_640", ["/workspace/sdxs3d/datasets/batch0_640_temp"]) |