Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor training loop from script to class #134

Closed
wants to merge 4 commits into from

Conversation

sweep-nightly[bot]
Copy link

@sweep-nightly sweep-nightly bot commented Oct 28, 2023

Description

This PR refactors the training loop from a script to a class in order to improve code organization and reusability. It introduces a new Trainer class in the src/trainer.py file that encapsulates the training loop logic. The Trainer class takes the model, dataloader, and optimizer as inputs and provides a train method to train the model.

Summary of Changes

  • Created a new file src/trainer.py to define the Trainer class.
  • Modified src/main.py to import and use the Trainer class.
  • Replaced the existing training loop in src/main.py with a call to the train method of the Trainer instance.

Fixes #6.


🎉 Latest improvements to Sweep:

  • Sweep can now passively improve your repository! Check out Rules to learn more.

💡 To get Sweep to edit this pull request, you can:

  • Comment below, and Sweep can edit the entire PR
  • Comment on a file, Sweep will only modify the commented file
  • Edit the original issue to get Sweep to recreate the PR from scratch

@sweep-nightly
Copy link
Author

sweep-nightly bot commented Oct 28, 2023

Sandbox Executions

  • Check src/trainer.py
Sandbox logs for https://github.com/sweepai/evals/commit/198424f4ca8d266a11db1d9ff527bddf86e0b106
trunk fmt src/trainer.py || exit 0 1/4 ✓
 ✔ Formatted src/trainer.py
Re-checking autofixed files...


Checked 1 file
✔ No issues
Run trunk upgrade to upgrade 1 linter
trunk check --fix --print-failures src/trainer.py 2/4 ✓
 ✔ Auto-fixed src/trainer.py
Re-checking autofixed files...


Checked 1 file
✔ No issues
if [[ $(echo "src/trainer.py" | grep 'test.*\.py$') ]]; then PYTHONPATH=. python src/trainer.py; else exit 0; fi 3/4 ✓
(nothing was outputted)
if [[ "src/trainer.py" == *test*.py ]]; then PYTHONPATH=. pytest src/trainer.py; else exit 0; fi 4/4 ✓
(nothing was outputted)
  • Check src/main.py
Sandbox logs for https://github.com/sweepai/evals/commit/8d9efe394a4d15351d0dc9fef61cfd12d62bb386
trunk fmt src/main.py || exit 0 1/4 ✓
 ✔ Formatted src/main.py
Re-checking autofixed files...

 ✔ Formatted src/main.py
Re-checking autofixed files...


Checked 1 file
✔ No issues
Run trunk upgrade to upgrade 1 linter
trunk check --fix --print-failures src/main.py 2/4 ✓
 ✔ Auto-fixed src/main.py
Re-checking autofixed files...


  ISSUES  
src/main.py:1:17
 1:17  high  `numpy` imported but unused  ruff/F401
Checked 1 file
1 existing issue (1 auto-fixable)
if [[ $(echo "src/main.py" | grep 'test.*\.py$') ]]; then PYTHONPATH=. python src/main.py; else exit 0; fi 3/4 ✓
(nothing was outputted)
if [[ "src/main.py" == *test*.py ]]; then PYTHONPATH=. pytest src/main.py; else exit 0; fi 4/4 ✓
(nothing was outputted)

@sweep-nightly
Copy link
Author

sweep-nightly bot commented Oct 28, 2023

Apply Sweep Rules to your PR?

  • Apply: All docstrings and comments should be up to date.
  • Apply: Code should be properly formatted and indented.
  • Apply: Variable and function names should be descriptive and follow a consistent naming convention.
  • Apply: Imports should be organized and grouped together.
  • Apply: There should be no unused imports or variables.
  • Apply: Code should be properly commented and include docstrings for functions and classes.

@sweep-nightly sweep-nightly bot added the sweep label Oct 28, 2023
@sweep-nightly sweep-nightly bot closed this Oct 28, 2023
@sweep-nightly sweep-nightly bot deleted the sweep/refactor-training-loop_24 branch October 28, 2023 22:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Sweep: refactor the training loop from a script to a class in main.py
0 participants