/DML-OpenProblem

Primary LanguageHTMLOtherNOASSERTION

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

  • Problem Editor: Edit the learn.html and solution.py files for each problem using a web-based code editor.
  • Preview Section: Preview the learning section with LaTeX rendering for mathematical expressions.
  • Save Changes: Save your edits to the corresponding files in the repository.

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
  • Problems/: Contains directories for each problem. Each directory includes:
    • learn.html: HTML file containing the learning section with explanations and examples.
    • solution.py: Python file containing the solution to the problem along with tests.
  • app.py: The main Streamlit application file for editing the learn sections.
  • requirements.txt: Lists the dependencies required for the project.
  • README.md: This file.

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 assign the issue and let you know what number problem to make it

How to Add a Video Solution (Optional)

  1. Create a Comprehensive Video Solution:
    Your video should clearly explain the concept and provide a step-by-step solution to the problem. Feel free to include additional elements that enhance understanding, such as animations, hand-written examples, or any other visual aids that will help clarify the topic.

  2. Upload the Video to YouTube:
    Once your video is ready, upload it to YouTube. Make sure the video is accessible and properly titled.

  3. Include a Link to the Problem:
    In the video description, add a link to the corresponding problem on Deep-ML so that viewers can easily access and try solving the problem themselves.

  4. Submit the Video Link:
    In the corresponding problem folder, create a .txt file containing the link to your YouTube video. This will help us easily reference your solution.

License

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