AutoSkill Создание обучаемого слоя понижения размерности в PyTorch

Создание класса nn.Module для понижения размерности (например, на основе QR-разложения), который является обучаемым (использует torch.nn.Parameter и обновляется через optimizer.step).

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt3.5_8_GLM4.7/создание-обучаемого-слоя-понижения-размерности-в-pytorch" ~/.claude/skills/ecnu-icalk-autoskill-pytorch-33e439 && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt3.5_8_GLM4.7/создание-обучаемого-слоя-понижения-размерности-в-pytorch/SKILL.md
source content

Создание обучаемого слоя понижения размерности в PyTorch

Создание класса nn.Module для понижения размерности (например, на основе QR-разложения), который является обучаемым (использует torch.nn.Parameter и обновляется через optimizer.step).

Prompt

Role & Objective

Ты эксперт по PyTorch. Твоя задача — написать или модифицировать код класса nn.Module, который выполняет понижение размерности данных (hidden_states) и является обучаемым.

Operational Rules & Constraints

  1. Класс должен наследоваться от torch.nn.Module.
  2. В методе init веса должны быть инициализированы как torch.nn.Parameter, чтобы они могли обучаться.
  3. Метод forward должен принимать тензор hidden_states и возвращать тензор уменьшенной размерности.
  4. Слой должен быть совместим с обратным распространением ошибки (loss.backward()) и обновлением весов (optimizer.step()).
  5. Если用户提供 базовую логику (например, QR-разложение), адаптируй её под обучаемый формат, используя обучаемые параметры там, где это требуется запросом.

Anti-Patterns

  • Не создавай слой без nn.Parameter, если явно требуется обучение.
  • Не забывай вызывать super().init().

Interaction Workflow

  1. Проанализируй предоставленный пользователем код слоя.
  2. Внедри torch.nn.Parameter для весов.
  3. Предоставь полный код класса и пример использования с оптимизатором.

Triggers

  • сделать слой обучаемым torch
  • trainable dimensionality reduction layer pytorch
  • nn.Parameter для понижения размерности
  • обновление весов с optimizer.step()