Open-Deep-ML / DML-OpenProblem

Other
60 stars 21 forks source link

DML-OpenProblem

DML-OpenProblem is an open-source repository of problems focused on linear algebra, machine learning, and deep learning. The problems are designed to be solved from scratch, providing a robust learning experience. This project powers the website Deep-ML.

Table of Contents

Installation

To get started with DML-OpenProblem, clone the repository and install the necessary dependencies.

git clone https://github.com/yourusername/DML-OpenProblem.git
cd DML-OpenProblem
pip install -r requirements.txt

Usage

You can use the repository to create, edit, and solve problems related to linear algebra, machine learning, and deep learning. The problems are structured in directories, each containing relevant files such as learn.html for the learning section and solution.py for the solution code.

Running the Streamlit App

To launch the Streamlit application for editing and viewing problems, use the following command:

streamlit run app.py

Features

Project Structure

DML-OpenProblem/
│
├── Problems/
│   ├── 1_matrix_times_vector/
│   │   ├── learn.html
│   │   └── solution.py
│   ├── 2_transpose_matrix/
│   │   ├── learn.html
│   │   └── solution.py
│   └── ... (additional problem directories)
│
├── app.py
├── requirements.txt
└── README.md

Contributing

We welcome contributions to improve DML-OpenProblem and deep-ml.com. If you have a new problem to add or improvements to existing problems, please fork the repository and submit a pull request. All contributions will be displayed on deep-ml.com. For example, check out this problem: Divide Dataset Based on Feature Threshold. A helpfull tool to work on the learn section and know what it would look like on the front end is https://openproblem-r4vsjwuthdl9a3qzrd4p3m.streamlit.app/.

Steps to Contribute

  1. Fork the repository.
  2. Create a new branch for your feature or bugfix.
  3. Make your changes and commit them with clear and concise messages.
  4. Push your changes to your fork.
  5. Submit a pull request with a detailed description of your changes.

Steps to add a Problem

  1. create an issue, the issue should describe the problem you would like to create and use the label "New Problem"
  2. comment below the issue you would like to work on
  3. We will assighn the issue and let you know what number problem to make it

License

This project is for educational reasons only. See the LICENSE file for details.