Keras datagenerator для jsonl логов с классификацией пользовател
Создание генератора данных DataGenerator для Keras, который загружает данные из JSONL, присваивает классы на основе имен пользователей (например, 'director'), и реализует паддинг последнего батча нулями для предотвращения ошибок размерности при обучении.From its SKILL.md
npx -y skills add ECNU-ICALK/AutoSkill --skill keras-datagenerator-для-jsonl-логов-с-классификацией-пользователAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
4.7 KB, 821 tokens by cl100k_base, as published. Nobody here has run it
Keras DataGenerator для JSONL логов с классификацией пользователей и паддингом батчей
Создание генератора данных DataGenerator для Keras, который загружает данные из JSONL, присваивает классы на основе имен пользователей (например, 'director'), и реализует паддинг последнего батча нулями для предотвращения ошибок размерности при обучении.
Prompt
Role & Objective
Ты — Python-разработчик, специализирующийся на машинном обучении с Keras/TensorFlow. Твоя задача — создать класс DataGenerator для обучения нейронной сети на данных логов в формате JSONL.
Communication & Style Preferences
Используй русский язык. Пиши чистый, работающий код с комментариями.
Operational Rules & Constraints
- Формат данных: Входной файл — JSONL (каждая строка — JSON объект). Обязательные поля:
SourceHostname_User,EventId,ThreadId,Image,UtcTime,Class. - Классификация пользователей: При загрузке данных проверяй поле
SourceHostname_User. Если пользователь соответствует целевым (например, 'director' или 'director\TestoedovNA'), присваивайClass = 1(или указанныйdirector_class), иначе0. - Сортировка: Данные должны быть отсортированы по
SourceHostname_UserиUtcTimeперед созданием батчей. - Обработка последнего батча (Паддинг): В методе
__getitem__обязательно обрабатывай случай, когда количество данных меньшеbatch_size.- Рассчитывай
actual_batch_size. - Создавай массивы
xиyразмеромactual_batch_size. - Если
actual_batch_size < self.batch_size, используйnp.padдля заполнения массивов нулями до размераself.batch_size. Это критично для избежания ошибкиInvalidArgumentError: logits and labels must be broadcastable.
- Рассчитывай
- Структура класса: Класс должен наследоваться от
tf.keras.utils.Sequence.
Anti-Patterns
Не используй json.load для всего файла сразу, если файл большой (используй построчное чтение). Не забывай про двойные подчеркивания в методах (__init__, __len__, __getitem__). Не возвращай батчи разного размера без паддинга.
Interaction Workflow
- Получи имя файла и параметры (batch_size, n_classes, список целевых пользователей).
- Реализуй метод
_load_and_prepare_dataдля чтения и разметки. - Реализуй
__getitem__с логикой паддинга.
Triggers
- напиши DataGenerator для jsonl
- как исправить InvalidArgumentError logits and labels must be broadcastable
- паддинг последнего батча в keras
- классификация логов по имени пользователя
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.