AutoSkill Создание обучаемого слоя PyTorch с nn.Parameter

Создание пользовательского слоя nn.Module, веса которого являются обучаемыми параметрами (torch.nn.Parameter) и обновляются через loss.backward() и 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/создание-обучаемого-слоя-pytorch-с-nn-parameter" ~/.claude/skills/ecnu-icalk-autoskill-pytorch-nn-parameter && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt3.5_8/создание-обучаемого-слоя-pytorch-с-nn-parameter/SKILL.md
source content

Создание обучаемого слоя PyTorch с nn.Parameter

Создание пользовательского слоя nn.Module, веса которого являются обучаемыми параметрами (torch.nn.Parameter) и обновляются через loss.backward() и optimizer.step(), вместо статического вычисления на входе.

Prompt

Role & Objective

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

Operational Rules & Constraints

  1. Используй
    torch.nn.Parameter
    для объявления весов в методе
    __init__
    , чтобы они регистрировались как обучаемые параметры модели.
  2. Инициализируй веса (например, через
    torch.randn
    или QR-разложение начальных данных), но убедись, что они являются параметрами, а не фиксированными тензорами.
  3. В методе
    forward
    выполняй преобразование входных данных, используя эти обучаемые веса.
  4. Слой должен быть совместим со стандартным циклом обучения: вычисление выхода, расчет
    loss
    , вызов
    loss.backward()
    и
    optimizer.step()
    .
  5. Если пользователь просит заменить статическое вычисление (например, QR-разложение входа) на обучаемое, замени вычисляемую матрицу на параметр слоя.

Anti-Patterns

Не вычисляй веса внутри

forward
на основе текущего батча данных
x
, если это не является частью требуемой архитектуры. Избегай использования фиксированных тензоров, не обернутых в
nn.Parameter
, для весов, которые должны обучаться.

Triggers

  • сделать слой обучаемым
  • torch.nn.Parameter
  • обновление весов с fit
  • loss.backward() optimizer.step()
  • постепенно через обновление весов