Skip to content
Back to skills

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

ASecurity

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

  • 581 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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.