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

Add CNN class for MNIST in cnn.py and import it in main.py #133

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 adds a new Convolutional Neural Network (CNN) class in cnn.py to handle the MNIST dataset. The CNN class is imported into main.py to replace the existing Net class. The CNN class consists of two convolutional layers followed by two fully connected layers. The input to the model is reshaped appropriately before being passed through the model.

Summary of Changes

  • Created a new file, cnn.py, in the src directory.
  • Added the CNN class definition in cnn.py, which inherits from nn.Module and implements the forward pass of the network.
  • Modified main.py to import the CNN class from cnn.py and instantiate it instead of the Net class.
  • Reshaped the input to the model in the forward method of the CNN class to match the new architecture.

Please review and merge this PR. Thank you!

Fixes #9.


🎉 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/cnn.py
Sandbox logs for https://github.com/sweepai/evals/commit/c61a1ec1a65fa5d0b560ced81a6c8a9d1b0e8819
pip install -r requirements.txt 1/6 ✓
Looking in links: https://download.pytorch.org/whl/torch_stable.html
DEPRECATION: The HTML index page being used (https://download.pytorch.org/whl/torch_stable.html) is not a proper HTML 5 document. This is in violation of PEP 503 which requires these pages to be well-formed HTML 5 documents. Please reach out to the owners of this index page, and ask them to update this index page to a valid HTML 5 document. pip 22.2 will enforce this behaviour change. Discussion can be found at https://github.com/pypa/pip/issues/10825
Collecting annotated-types==0.6.0
  Downloading annotated_types-0.6.0-py3-none-any.whl (12 kB)
Collecting anyio==3.7.1
  Downloading anyio-3.7.1-py3-none-any.whl (80 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 80.9/80.9 KB 2.4 MB/s eta 0:00:00
Collecting astroid==3.0.1
  Downloading astroid-3.0.1-py3-none-any.whl (275 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 275.2/275.2 KB 15.0 MB/s eta 0:00:00
Collecting certifi==2022.12.7
  Downloading certifi-2022.12.7-py3-none-any.whl (155 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 155.3/155.3 KB 19.2 MB/s eta 0:00:00
Collecting charset-normalizer==2.1.1
  Downloading charset_normalizer-2.1.1-py3-none-any.whl (39 kB)
Requirement already satisfied: click==8.1.7 in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 7)) (8.1.7)
Collecting dill==0.3.7
  Downloading dill-0.3.7-py3-none-any.whl (115 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 115.3/115.3 KB 19.2 MB/s eta 0:00:00
Collecting exceptiongroup==1.1.3
  Downloading exceptiongroup-1.1.3-py3-none-any.whl (14 kB)
Collecting fastapi==0.104.0
  Downloading fastapi-0.104.0-py3-none-any.whl (92 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 92.9/92.9 KB 11.2 MB/s eta 0:00:00
Collecting filelock==3.9.0
  Downloading filelock-3.9.0-py3-none-any.whl (9.7 kB)
Collecting fsspec==2023.4.0
  Downloading fsspec-2023.4.0-py3-none-any.whl (153 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 154.0/154.0 KB 22.8 MB/s eta 0:00:00
Collecting h11==0.14.0
  Downloading h11-0.14.0-py3-none-any.whl (58 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 58.3/58.3 KB 7.3 MB/s eta 0:00:00
Requirement already satisfied: idna==3.4 in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 14)) (3.4)
Collecting iniconfig==2.0.0
  Downloading iniconfig-2.0.0-py3-none-any.whl (5.9 kB)
Requirement already satisfied: isort==5.12.0 in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 16)) (5.12.0)
Collecting Jinja2==3.1.2
  Downloading Jinja2-3.1.2-py3-none-any.whl (133 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.1/133.1 KB 25.7 MB/s eta 0:00:00
Collecting MarkupSafe==2.1.2
  Downloading MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (25 kB)
Collecting mccabe==0.7.0
  Downloading mccabe-0.7.0-py2.py3-none-any.whl (7.3 kB)
Collecting mpmath==1.3.0
  Downloading mpmath-1.3.0-py3-none-any.whl (536 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 KB 50.4 MB/s eta 0:00:00
Collecting networkx==3.0
  Downloading networkx-3.0-py3-none-any.whl (2.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.0/2.0 MB 62.1 MB/s eta 0:00:00
Collecting numpy==1.24.1
  Downloading numpy-1.24.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 17.3/17.3 MB 58.3 MB/s eta 0:00:00
Requirement already satisfied: packaging==23.2 in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 23)) (23.2)
Collecting Pillow==9.3.0
  Downloading Pillow-9.3.0-cp310-cp310-manylinux_2_28_x86_64.whl (3.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3/3.3 MB 94.2 MB/s eta 0:00:00
Requirement already satisfied: platformdirs==3.11.0 in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 25)) (3.11.0)
Collecting pluggy==1.3.0
  Downloading pluggy-1.3.0-py3-none-any.whl (18 kB)
Collecting pydantic==2.4.2
  Downloading pydantic-2.4.2-py3-none-any.whl (395 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 395.8/395.8 KB 50.9 MB/s eta 0:00:00
Collecting pydantic_core==2.10.1
  Downloading pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.0/2.0 MB 68.3 MB/s eta 0:00:00
Collecting pylint==3.0.2
  Downloading pylint-3.0.2-py3-none-any.whl (510 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 510.6/510.6 KB 47.8 MB/s eta 0:00:00
Collecting pytest==7.4.2
  Downloading pytest-7.4.2-py3-none-any.whl (324 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 324.5/324.5 KB 39.2 MB/s eta 0:00:00
Collecting requests==2.28.1
  Downloading requests-2.28.1-py3-none-any.whl (62 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.8/62.8 KB 11.3 MB/s eta 0:00:00
Collecting sniffio==1.3.0
  Downloading sniffio-1.3.0-py3-none-any.whl (10 kB)
Collecting starlette==0.27.0
  Downloading starlette-0.27.0-py3-none-any.whl (66 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 67.0/67.0 KB 11.5 MB/s eta 0:00:00
Collecting sympy==1.12
  Downloading sympy-1.12-py3-none-any.whl (5.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.7/5.7 MB 97.6 MB/s eta 0:00:00
Requirement already satisfied: tomli==2.0.1 in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 35)) (2.0.1)
Requirement already satisfied: tomlkit==0.12.1 in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 36)) (0.12.1)
Collecting torch==2.1.0+cpu
  Downloading https://download.pytorch.org/whl/cpu/torch-2.1.0%2Bcpu-cp310-cp310-linux_x86_64.whl (184.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 184.9/184.9 MB 12.8 MB/s eta 0:00:00
Collecting torchaudio==2.1.0+cpu
  Downloading https://download.pytorch.org/whl/cpu/torchaudio-2.1.0%2Bcpu-cp310-cp310-linux_x86_64.whl (1.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 77.5 MB/s eta 0:00:00
Collecting torchvision==0.16.0+cpu
  Downloading https://download.pytorch.org/whl/cpu/torchvision-0.16.0%2Bcpu-cp310-cp310-linux_x86_64.whl (1.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 62.0 MB/s eta 0:00:00
Requirement already satisfied: typing_extensions==4.8.0 in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 40)) (4.8.0)
Collecting urllib3==1.26.13
  Downloading urllib3-1.26.13-py2.py3-none-any.whl (140 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 140.6/140.6 KB 20.6 MB/s eta 0:00:00
Collecting uvicorn==0.23.2
  Downloading uvicorn-0.23.2-py3-none-any.whl (59 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 59.5/59.5 KB 11.3 MB/s eta 0:00:00
Installing collected packages: mpmath, urllib3, sympy, sniffio, pydantic_core, pluggy, Pillow, numpy, networkx, mccabe, MarkupSafe, iniconfig, h11, fsspec, filelock, exceptiongroup, dill, charset-normalizer, certifi, astroid, annotated-types, uvicorn, requests, pytest, pylint, pydantic, Jinja2, anyio, torch, starlette, torchvision, torchaudio, fastapi
  Attempting uninstall: urllib3
    Found existing installation: urllib3 2.0.7
    Uninstalling urllib3-2.0.7:
      Successfully uninstalled urllib3-2.0.7
  Attempting uninstall: filelock
    Found existing installation: filelock 3.12.4
    Uninstalling filelock-3.12.4:
      Successfully uninstalled filelock-3.12.4
  Attempting uninstall: charset-normalizer
    Found existing installation: charset-normalizer 3.3.1
    Uninstalling charset-normalizer-3.3.1:
      Successfully uninstalled charset-normalizer-3.3.1
  Attempting uninstall: certifi
    Found existing installation: certifi 2023.7.22
    Uninstalling certifi-2023.7.22:
      Successfully uninstalled certifi-2023.7.22
  Attempting uninstall: requests
    Found existing installation: requests 2.31.0
    Uninstalling requests-2.31.0:
      Successfully uninstalled requests-2.31.0
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
virtualenv 20.24.6 requires filelock<4,>=3.12.2, but you have filelock 3.9.0 which is incompatible.
Successfully installed Jinja2-3.1.2 MarkupSafe-2.1.2 Pillow-9.3.0 annotated-types-0.6.0 anyio-3.7.1 astroid-3.0.1 certifi-2022.12.7 charset-normalizer-2.1.1 dill-0.3.7 exceptiongroup-1.1.3 fastapi-0.104.0 filelock-3.9.0 fsspec-2023.4.0 h11-0.14.0 iniconfig-2.0.0 mccabe-0.7.0 mpmath-1.3.0 networkx-3.0 numpy-1.24.1 pluggy-1.3.0 pydantic-2.4.2 pydantic_core-2.10.1 pylint-3.0.2 pytest-7.4.2 requests-2.28.1 sniffio-1.3.0 starlette-0.27.0 sympy-1.12 torch-2.1.0+cpu torchaudio-2.1.0+cpu torchvision-0.16.0+cpu urllib3-1.26.13 uvicorn-0.23.2
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
trunk init 2/6 ✓
⡿ Downloading Trunk 1.17.1...
⡿ Downloading Trunk 1.17.1...
⢿ Downloading Trunk 1.17.1...
⣻ Downloading Trunk 1.17.1...
⣽ Downloading Trunk 1.17.1...
⣾ Downloading Trunk 1.17.1...
⣷ Downloading Trunk 1.17.1...
✔ Downloading Trunk 1.17.1... done
⡿ Verifying Trunk sha256...
✔ Verifying Trunk sha256... done
⡿ Unpacking Trunk...
✔ Unpacking Trunk... done


✔ 13 linters were enabled (.trunk/trunk.yaml)
  actionlint 1.6.26 (2 github-workflow files)
  bandit 1.7.5 (2 python files)
  black 23.9.1 (2 python files)
  checkov 3.0.12 (5 yaml files)
  git-diff-check (12 files)
  isort 5.12.0 (2 python files) (created .isort.cfg)
  markdownlint 0.37.0 (1 markdown file) (created .markdownlint.yaml)
  osv-scanner 1.4.2 (1 lockfile file)
  prettier 3.0.3 (1 markdown, 5 yaml files)
  ruff 0.1.3 (2 python files) (created ruff.toml)
  trivy 0.46.0 (5 yaml files)
  trufflehog 3.60.4 (12 files)
  yamllint 1.32.0 (5 yaml files) (created .yamllint.yaml)
Next Steps
 1. Read documentation
    Our documentation can be found at https://docs.trunk.io
 2. Get help and give feedback
    Join the Trunk community at https://slack.trunk.io
trunk fmt src/cnn.py || exit 0 3/6 ✓
 ✔ Formatted src/cnn.py
Re-checking autofixed files...


Checked 1 file
✔ No issues
trunk check --fix --print-failures src/cnn.py 4/6 ✓
 ✔ Auto-fixed src/cnn.py
Re-checking autofixed files...


Checked 1 file
✔ No issues
if [[ $(echo "src/cnn.py" | grep 'test.*\.py$') ]]; then PYTHONPATH=. python src/cnn.py; else exit 0; fi 5/6 ✓
(nothing was outputted)
if [[ "src/cnn.py" == *test*.py ]]; then PYTHONPATH=. pytest src/cnn.py; else exit 0; fi 6/6 ✓
(nothing was outputted)
  • Check src/main.py
Sandbox logs for https://github.com/sweepai/evals/commit/ab34d3027a751edc628dc41387e5822673d0dfa9
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
 42:5   high  Loop control variable `epoch` not used within loop body  ruff/B007
Checked 1 file
2 existing issues (2 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.

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: add a new cnn class that defines AND trains the cnn to handle mnist in cnn.py and import it to main.py
0 participants