# 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.

- Skill: `ecnu-icalk/pytorch-accuracy-calculation-conversion-crossentropy-to-mse` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/pytorch-accuracy-calculation-conversion-crossentropy-to-mse`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/pytorch-accuracy-calculation-conversion-crossentropy-to-mse/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/pytorch-accuracy-calculation-conversion-crossentropy-to-mse

---


# 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

