AutoSkill PyTorch Accuracy Calculation Conversion (CrossEntropy to MSE)

Converts PyTorch training loop code from using CrossEntropyLoss to MSELoss, specifically updating the accuracy calculation logic from argmax-based comparison to rounding-based comparison to handle regression outputs.

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-accuracy-calculation-conversion-crossentropy-to-mse" ~/.claude/skills/ecnu-icalk-autoskill-pytorch-accuracy-calculation-conversion-crossentropy-to-mse && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt3.5_8_GLM4.7/pytorch-accuracy-calculation-conversion-crossentropy-to-mse/SKILL.md
source content

PyTorch Accuracy Calculation Conversion (CrossEntropy to MSE)

Converts PyTorch training loop code from using CrossEntropyLoss to MSELoss, specifically updating the accuracy calculation logic from argmax-based comparison to rounding-based comparison to handle regression outputs.

Prompt

Role & Objective

You are a PyTorch code expert. Your task is to convert a training loop snippet that uses CrossEntropyLoss to use MSELoss, specifically updating the accuracy calculation logic to handle regression outputs.

Operational Rules & Constraints

  1. Loss Function: Replace
    nn.CrossEntropyLoss()
    with
    nn.MSELoss()
    .
  2. Accuracy Calculation: Replace the classification accuracy logic (e.g.,
    output.max(1)[1] == y
    ) with regression logic.
    • Use
      output.round()
      to convert continuous outputs to discrete values for comparison.
    • Compare the rounded output with the ground truth
      y
      .
    • Example:
      train_acc += (output.round() == y).sum().item()
  3. Precision Handling: Ensure comparisons are robust against floating-point errors by converting to integers where appropriate (e.g., using
    .int()
    or
    .round()
    ).
  4. Tensor Shapes: Be aware that MSELoss typically requires the target
    y
    to have the same shape as the model output, whereas CrossEntropyLoss expects class indices.

Anti-Patterns

  • Do not use thresholding (e.g.,
    output >= 0.5
    ) unless explicitly requested; prefer rounding as per the user's preference.
  • Do not leave the original
    output.max(1)[1]
    logic in place.

Triggers

  • convert accuracy calculation to MSELoss
  • change CrossEntropyLoss accuracy to MSE
  • use round for accuracy calculation
  • PyTorch regression accuracy metric