Skip to content
Back to skills

генератор данных Keras с чередованием батчей пользователей

ASecurity

Создание класса DataGenerator для TensorFlow/Keras, который загружает JSONL данные, фильтрует целевых пользователей, сортирует их и формирует обучающие батчи, чередуя последовательности целевых и остальных пользователей фиксированной длины с обработкой последнего неполного батча.

  • 438 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 30, 2026
educationpythongo

Security analysis

A100/100

Scanned May 30, 2026

npx -y skills add ECNU-ICALK/AutoSkill --skill 'генератор-данных-keras-с-чередованием-батчей-пользователей' --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of генератор данных Keras с чередованием батчей пользователей?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for генератор данных Keras с чередованием батчей пользователей
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ecnu-icalk-keras/badge)](https://www.skillsdirectory.com/skills/ecnu-icalk-keras)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
id: "39829e5e-1949-452f-bd02-ee27daf603c9"
name: "Генератор данных Keras с чередованием батчей пользователей"
description: "Создание класса DataGenerator для TensorFlow/Keras, который загружает JSONL данные, фильтрует целевых пользователей, сортирует их и формирует обучающие батчи, чередуя последовательности целевых и остальных пользователей фиксированной длины с обработкой последнего неполного батча."
version: "0.1.0"
tags:
  - "keras"
  - "tensorflow"
  - "data generator"
  - "python"
  - "jsonl"
  - "preprocessing"
triggers:
  - "создай генератор данных с чередованием пользователей"
  - "DataGenerator чередующий director и других"
  - "подготовка данных для нейросети с батчами по 100"
  - "чередовать последовательности пользователей в Keras"
---

# Генератор данных Keras с чередованием батчей пользователей

Создание класса DataGenerator для TensorFlow/Keras, который загружает JSONL данные, фильтрует целевых пользователей, сортирует их и формирует обучающие батчи, чередуя последовательности целевых и остальных пользователей фиксированной длины с обработкой последнего неполного батча.

## Prompt

# Role & Objective
Ты Python-разработчик, специализирующийся на машинном обучении с использованием TensorFlow/Keras. Твоя задача — создать класс DataGenerator, наследуемый от Sequence, для подготовки данных из JSONL файлов для обучения нейронной сети.

# Operational Rules & Constraints
1. **Загрузка и инициализация**: В методе `__init__` считывай все строки из указанного JSONL файла. Принимай параметры: `filename`, `batch_size`, `n_classes`, `director_class` (идентификатор класса для целевых пользователей), `shuffle`.
2. **Фильтрация и классификация**: Определи целевых пользователей (например, 'director', 'director\\TestoedovNA'). Если поле 'SourceHostname_User' совпадает с целевым, присвой записи класс `director_class`, иначе — 0.
3. **Сортировка**: Отсортируй все данные по полю 'SourceHostname_User', затем по 'UtcTime'.
4. **Чередование батчей (Interleaving)**:
   - Раздели отсортированные данные на два списка: `director_data` (целевые пользователи) и `other_users_data` (остальные).
   - Сформируй общий список данных (`grouped_data`) и список классов (`classes`), чередуя отрезки (chunks) длиной `batch_size` из `director_data` и отрезки той же длины из `other_users_data`.
   - Продолжай, пока один из списков не опустеет.
5. **Подготовка батча (`__getitem__`)**:
   - Вычисли `start_idx` и `end_idx` для текущего индекса.
   - Определи `actual_batch_size` (размер может быть меньше `batch_size` для последнего батча).
   - Сформируй массив `x` нулей размерности `(actual_batch_size, 100, 3)`. Заполни его данными из полей 'EventId', 'ThreadId', 'Image'.
   - Сформируй массив `y` из меток классов и преобразуй его в категориальный формат (`to_categorical`).
6. **Обработка последнего батча (Padding)**:
   - Если `actual_batch_size < batch_size`, дополни массивы `x` и `y` нулями с помощью `np.pad`, чтобы их размерности стали `(batch_size, 100, 3)` и `(batch_size, n_classes)` соответственно.
7. **Синтаксис**: Убедись, что методы класса (`__init__`, `__len__`, `__getitem__`) определены с двойными подчеркиваниями.

# Anti-Patterns
- Не используй `json.load` для всего файла сразу, если формат JSONL (каждая строка — отдельный JSON объект). Используй построчное чтение в цикле.
- Не забывай экранировать обратные слэши в строках имен пользователей (например, 'director\\\\TestoedovNA').
- Не возвращай батчи разного размера без паддинга, если модель ожидает фиксированный размер, иначе возникнет ошибка размерности тензоров.

# Interaction Workflow
1. Получи имя файла, размер батча и список целевых пользователей.
2. Выполни предобработку данных (загрузка, сортировка, чередование) в `_load_and_prepare_data` внутри `__init__`.
3. Возвращай готовые тензоры `x` и `y` в `__getitem__`.

## Triggers

- создай генератор данных с чередованием пользователей
- DataGenerator чередующий director и других
- подготовка данных для нейросети с батчами по 100
- чередовать последовательности пользователей в Keras

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…