Exploration of Machine Learning concepts and popular Python frameworks to explore supervised learnings, basic models, and neural networks.
(CPR E 487 at Iowa State University): Our deliverables will consist of a modified Lab 1 Jupyter notebook using PyTorch. Additionally, we will also benchmark against TensorFlow in several key areas in a writeup presentation for the final demo:
- Usability
- Ease of use of the API
- Clarity and usefulness of API documentation
- Any lab 1 activities that could not be implemented in PyTorch
- Training accuracy
- Train a given model using a different number of epochs and report the number that achieved the highest validation accuracy
- Training time/performance
- What hardware acceleration options do the frameworks support?
- How much training time did each framework require to achieve its best validation accuracy?
- Resource utilization
- Memory utilization and how each framework may lend itself to a given selection of hardware (embedded, etc.)
Read entire project report: 487-report.pdf
My playground using the Scikit-Learn machine learning library for Python, following Google's Machine Learning Recipes by Josh Gordon. I desired to develop a fundamental understanding of machine learning and how it implements into source code to solve problems.
Guide: https://pytorch.org/get-started/locally/
python -m venv venv
.\venv\Scripts\activate
for Windows orsource venv/bin/activate
for Unixpython -m pip install --upgrade pip
pip install -r ./pytorch/requirements.txt
or./tensorflow/requirements.txt
or./scikit-learn/requirements.txt
Follow instructions from here: https://pytorch.org/tutorials/beginner/basics/intro.html
Use the ./pytorch/tutorial directory of notebooks to get started:
- Intro
- Quickstart
- Tensors
- Datasets & DataLoaders
- Transforms
- Build Model
- Autograd
- Optimization
- Save & Load Model
- Scikit-Learn Documentation
- Google Developers ML Recipes
- Neural Networks Playground
- Unity 3D ML Agents
Using the PyTorch Profiler This generates a trace.json file that can be imported into various viewers, the most prominent being Perfetto UI.
Addtitionally, we can directly print inference times in the program using a built-in PyTorch method.