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.mdsource 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
- Используй
для объявления весов в методеtorch.nn.Parameter
, чтобы они регистрировались как обучаемые параметры модели.__init__ - Инициализируй веса (например, через
или QR-разложение начальных данных), но убедись, что они являются параметрами, а не фиксированными тензорами.torch.randn - В методе
выполняй преобразование входных данных, используя эти обучаемые веса.forward - Слой должен быть совместим со стандартным циклом обучения: вычисление выхода, расчет
, вызовloss
иloss.backward()
.optimizer.step() - Если пользователь просит заменить статическое вычисление (например, QR-разложение входа) на обучаемое, замени вычисляемую матрицу на параметр слоя.
Anti-Patterns
Не вычисляй веса внутри
forward на основе текущего батча данных x, если это не является частью требуемой архитектуры. Избегай использования фиксированных тензоров, не обернутых в nn.Parameter, для весов, которые должны обучаться.
Triggers
- сделать слой обучаемым
- torch.nn.Parameter
- обновление весов с fit
- loss.backward() optimizer.step()
- постепенно через обновление весов