Giter Site home page Giter Site logo

saikhu / docker-guide-for-ai-model-development-and-deployment Goto Github PK

View Code? Open in Web Editor NEW
9.0 2.0 1.0 7.13 MB

This repo gives a start for the docker.

Home Page: https://saikhu.github.io/Docker-Guide-for-AI-Model-Development-and-Deployment/

License: MIT License

Dockerfile 19.74% Python 45.69% HTML 17.02% Shell 17.55%

docker-guide-for-ai-model-development-and-deployment's Introduction

Docker Guide for AI Model Development and Deployment

This repo is divided into two parts:

  1. The theoretical concept of the Docker and
  2. Examples to get started with Docker.

The following is theoretical concepts of the Docker with hands-ons commands.

Chapter 1: Understanding Docker Containers

1.1 What are Docker Containers?

Docker containers are lightweight, standalone, executable packages that include everything needed to run a piece of software, including the code, runtime, system tools, system libraries, and settings. Containers are isolated from each other and the host system, yet they share the OS kernel of the host machine, which makes them more efficient than traditional virtual machines.

1.2 What is the difference between a container and VM?

Containers and virtual machines have similar resource isolation and allocation benefits, but function differently because containers virtualize the operating system instead of hardware. Containers are more portable and efficient.

alt text for screen readers

Containers are an abstraction at the app layer that packages code and dependencies together. Multiple containers can run on the same machine and share the OS kernel with other containers, each running as isolated processes in user space. Containers take up less space than VMs (container images are typically tens of MBs in size), can handle more applications and require fewer VMs and Operating systems.

Virtual machines (VMs) are an abstraction of physical hardware turning one server into many servers. The hypervisor allows multiple VMs to run on a single machine. Each VM includes a full copy of an operating system, the application, necessary binaries and libraries – taking up tens of GBs. VMs can also be slow to boot.

1.3 Benefits of Docker Containers in AI

  • Reproducibility: Docker ensures that AI models and applications run the same way regardless of where they are deployed.
  • Isolation: Different AI projects can run in separate containers without interfering with each other.
  • Scalability: Easily scale AI applications across containers.
  • Resource Efficiency: Containers use resources more efficiently than VMs, allowing more resources to be dedicated to AI processing.
  • Portability: AI applications in Docker containers can be easily moved between different machines and cloud environments.

1.3 How Docker Containers Work

  • Images and Containers: A Docker image is a lightweight, standalone, and executable software package that includes everything needed to run an application. When an image is run, it becomes a container.
  • Docker Engine: The Docker Engine is a client-server application with a server that is a type of long-running program called a daemon process, a REST API which specifies interfaces that programs can use to talk to and instruct the Docker daemon, and a command-line interface (CLI) client.

1.4 Docker and AI Development

  • Consistent AI Development Environments: Ensure that all developers in a team are working in the same environment.
  • Experimentation and Testing: Quickly spin up and tear down different environments for experimentation without affecting the host system.

1.5 Key Docker Concepts for AI

  • Dockerfile: A script containing a series of instructions to build a Docker image.
  • Volumes: Used to persist data generated by and used by Docker containers.
  • Networking: Connects your Docker containers to each other and to the outside world.

This is a basic outline for Chapter 1. For the complete guide, you would need to continue with detailed content for each subsequent chapter, incorporating code snippets, best practices, and real-world examples, especially those relevant to AI and machine learning.


Chapter 2: Setting Up Docker

This chapter provides a comprehensive guide on installing Docker and introduces some basic Docker commands essential for AI and machine learning applications.

2.1 Installation Guide for Different Operating Systems

2.1.1 Installing Docker on Linux

  1. Ubuntu: Use apt-get to install Docker.

  2. or follow the given commands for the Linux installation (same installation given in bash file sudo ./docker_install.sh) or execute the following commands one by one.

    # Uuninstall all conflicting packages
    for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
    
    # Add Docker's official GPG key:
    sudo apt-get update
    sudo apt-get install ca-certificates curl gnupg
    sudo install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    sudo chmod a+r /etc/apt/keyrings/docker.gpg
    
    # Add the repository to Apt sources:
    echo \
    "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
    "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
    sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt-get update
    
    # Install the latest version,
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
    # Verify that the Docker Engine installation
    sudo docker run hello-world

    At the end you should see the output like this:

    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    
    To generate this message, Docker took the following steps:
    1. The Docker client contacted the Docker daemon.
    2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
        (amd64)
    3. The Docker daemon created a new container from that image which runs the
        executable that produces the output you are currently reading.
    4. The Docker daemon streamed that output to the Docker client, which sent it
        to your terminal.
    
    To try something more ambitious, you can run an Ubuntu container with:
    $ docker run -it ubuntu bash
    
    Share images, automate workflows, and more with a free Docker ID:
    https://hub.docker.com/
    
    For more examples and ideas, visit:
    https://docs.docker.com/get-started/

(Optional) Configure your Linux host machine to work better with Docker: post-installation steps

Note: Reboot the machine after installation of Docker.

Note: Always check for the latest installation instructions on the Docker website for Linux distributions.

2.1.2 Installing Docker on Windows

Docker Desktop for Windows is available for Windows 10 and later. It includes Docker Engine, Docker CLI client, Docker Compose, and Docker Machine. Installation involves downloading the installer from the Docker website and following the setup wizard.

2.1.3 Installing Docker on macOS

Docker Desktop for Mac is available and similar to the Windows installation. Download the installer from Docker's website and drag the Docker icon to the Applications folder.

2.2 Verifying Installation

After installation, verify Docker installation:

docker --version
# If you get an error, please try: sudo docker --version

2.3 Basic Docker Commands

2.3.1 docker pull

Used to pull an image or a repository from a Docker registry. Example: Pulling the latest Ubuntu image.

docker pull ubuntu:latest

2.3.2 docker run

Runs a command in a new container. Example: Running an Ubuntu container and accessing its bash shell.

docker run -it ubuntu /bin/bash

The -it switch attaches an interactive terminal.

2.3.3 docker images

List all locally stored Docker images.

docker images

2.3.4 docker ps

Show running containers and the one that is already stoped. Use docker ps -a to show all containers.

docker ps -a 

Example:

(base) usman@saikhu:~/docker-tutorial$ docker ps -a 
CONTAINER ID   IMAGE         COMMAND    CREATED          STATUS                      PORTS     NAMES
bc1099595dbb   hello-world   "/hello"   17 seconds ago   Exited (0) 16 seconds ago             nostalgic_mclaren
14ca7573c4d0   hello-world   "/hello"   44 minutes ago   Exited (0) 44 minutes ago             awesome_taussig

2.3.5 docker stop

Stop a running container you can use the CONTAINER_ID or Name of the container.

docker stop [CONTAINER_ID]

2.3.6 docker rm

Remove one or more containers.

docker rm [CONTAINER_ID]

2.3.7 docker rmi

Remove one or more images.

docker rmi [IMAGE_ID]

This chapter provides the basics for getting Docker set up on different operating systems and introduces some essential commands. For AI applications, it is crucial to understand these basics to build and manage Docker environments efficiently. Future chapters will delve into more specific uses of Docker in the context of AI and machine learning.


Chapter 3: Docker in AI Model Development

In this chapter, we explore the application of Docker in the field of Artificial Intelligence (AI), particularly in model development and ensuring reproducibility.

3.1 Use Cases of Docker in AI

Docker's flexibility and portability make it a valuable tool in various AI development scenarios. Some key use cases include:

3.1.1 Development and Testing

  • Isolated Development Environments: Docker containers provide isolated environments for developing AI models, ensuring that dependencies and configurations do not conflict with other projects.
  • Consistent Testing Environments: Ensures that tests for AI models run in a consistent environment, reducing the "it works on my machine" problem.

3.1.2 Continuous Integration and Deployment

  • CI/CD Pipelines: Containers can be integrated into CI/CD pipelines, allowing for automated testing and deployment of AI models.

3.1.3 Experimentation and Research

  • Rapid Prototyping: Quickly spin up different environments to experiment with various AI algorithms and frameworks.
  • Collaboration: Share containerized environments with other researchers or developers to ensure everyone works in the same environment.

3.2 Creating Reproducible AI Environments

Reproducibility is crucial in AI model development. Docker assists in creating environments that can be replicated across various machines and platforms.

3.2.1 Dockerfiles for AI Environments

  • Defining Environments: Use Dockerfiles to define the environment needed for your AI project, including specific libraries, frameworks, and configurations.
  • Version Control: Dockerfiles can be version-controlled to keep track of changes in the environment.

3.2.2 Sharing and Collaboration

  • Easy Sharing: Share Docker images with team members or publicly, ensuring that anyone can replicate your AI environment.
  • Consistent Collaboration: When working in teams, Docker ensures that all team members are using the same environment, avoiding compatibility issues.

3.2.3 Reproducible Research

  • Academic and Research Settings: Share your Dockerized AI environment alongside your research papers or projects for others to reproduce your results easily.

This chapter highlights the significant role Docker plays in AI model development, particularly in creating isolated, consistent, and reproducible environments. The next chapters will delve into more technical aspects of Docker usage, specifically tailored for AI and machine learning workflows.


Chapter 4: Docker Images for AI

Chapter 4 dives into the specifics of creating and managing Docker images tailored for AI projects. It covers the creation of custom Docker images and the fundamentals of Dockerfiles in the context of AI.

4.1 Creating Custom Docker Images for AI Projects

Custom Docker images are essential for tailoring environments to the specific needs of AI projects. Here's how to create and manage them effectively.

4.1.1 Understanding Base Images

  • Choosing the Right Base Image: Start with a base image that closely matches your AI project's environment requirements (e.g., Python, R, CUDA for GPU support).

4.1.2 Adding Necessary Dependencies

  • Installing Libraries and Frameworks: Customize your Docker image by adding AI libraries and frameworks like TensorFlow, PyTorch, Scikit-learn, etc.

4.1.3 Optimizing for Performance

  • Efficient Layering: Structure your Dockerfile to optimize for caching and reduce image sizes.
  • Minimizing Image Size: Remove unnecessary files and tools from the final image.

4.1.4 Building and Testing the Image

  • Building the Image: Use docker build to create your image.
  • Testing: Ensure that the image works as expected for your AI application.

4.2 Dockerfile Basics: Writing a Dockerfile for AI Environments

A Dockerfile is a text document containing all the commands a user could call on the command line to assemble an image. Here’s how to craft one for AI applications.

4.2.1 Structure of a Dockerfile

  • FROM: Specify the base image.
  • RUN: Run commands to install software.
  • COPY/ADD: Add files from your local file system into the Docker image.
  • CMD/ENTRYPOINT: Define what command gets executed when the container starts.

4.2.2 Best Practices

  • Layering: Order commands to leverage Docker's caching mechanism.
  • Cleanup: Remove unnecessary files and packages to keep the image size small.
  • Documentation: Comment your Dockerfile to explain why each command is needed.

4.2.3 Example Dockerfile for an AI Project

This is the template for the better understanding check the examples.

# Use an official Python runtime as a parent image
FROM python:3.8-slim

# Set the working directory in the container
WORKDIR /usr/src/app

# Copy the current directory contents into the container at /usr/src/app
COPY . .

# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Make port 80 available to the world outside this container
EXPOSE 80

# Define environment variable
ENV NAME World

# Run app.py when the container launches
CMD ["python", "app.py"]

Chapter 5: Data Management in Docker

In this chapter, we explore how to manage data in Docker, which is crucial for AI and machine learning projects. This includes methods for attaching datasets to Docker containers and strategies for managing data volumes.

5.1 Attaching Datasets to Docker Containers

Effective data management is key in AI projects, and Docker facilitates this by enabling datasets to be attached to containers.

5.1.1 Using Bind Mounts

  • Description: Bind mounts are a way to attach specific files or directories from the host machine to a container.
  • Use Case: Ideal for development, allowing real-time reflection of code or data changes.

5.1.2 Using Docker Volumes

  • Description: Docker volumes are the preferred way of persisting data generated by and used by Docker containers.
  • Use Case: Best suited for production, where data needs to be preserved independently of the container lifecycle.

5.1.3 Example

Attaching a dataset using a Docker volume:

docker run -v /path/to/dataset:/path/in/container -it image_name

5.2 Data Volume Management in Docker

Managing data volumes effectively is crucial for maintaining data integrity and accessibility in Dockerized AI environments.

5.2.1 Creating and Managing Volumes

Creating Volumes: Create new volumes with docker volume create. Inspecting Volumes: Get detailed information about a volume with docker volume inspect. Listing Volumes: List all volumes with docker volume ls.

5.2.2 Volume Backup and Migration

Backing Up: Backup data in Docker volumes by copying it to a host or another container. Migration: Move volumes between hosts using backup and restore methods.

5.2.3 Cleaning Up Volumes

Removing Unused Volumes: Clean up unused volumes with docker volume prune to free up space. This chapter highlights the importance of efficient data management in Docker, particularly for AI and machine learning projects where data plays a critical role. Subsequent chapters will delve into advanced Docker functionalities and their applications in AI workflows.

Chapter 6: Leveraging GPUs in Docker for AI

This chapter addresses the integration of GPUs with Docker for AI purposes, introducing the NVIDIA Docker Toolkit and providing a guide on configuring Docker to utilize GPUs.

6.1 Introduction to NVIDIA Docker Toolkit

Utilizing GPUs in Docker containers is essential for AI and machine learning tasks that require heavy computation, such as training deep learning models.

6.1.1 What is the NVIDIA Docker Toolkit?

  • Description: The NVIDIA Docker Toolkit allows for the easy deployment of GPU-accelerated applications in Docker containers.
  • Components: It includes NVIDIA Container Runtime, a modified version of Docker that provides GPU support.

6.1.2 Benefits for AI

  • Performance: Enables GPU-accelerated computing in Docker, crucial for AI and deep learning tasks.
  • Portability: Ensures AI applications can utilize GPUs across different environments without complex configurations.

6.2 Setting Up Docker to Use GPUs

Setting up Docker to use GPUs involves installing the NVIDIA Docker Toolkit and configuring your Docker environment.

6.2.1 Installation of NVIDIA Docker Toolkit

Prerequisites: Ensure you have NVIDIA drivers installed on your host machine.

Install the Toolkit: On Linux, use the package manager to install nvidia-docker2 and restart the Docker daemon.

sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker

6.2.2 Verifying the Setup

Test: Run a test container to verify that Docker can access the GPUs.

docker run --rm --gpus all nvidia/cuda:11.0.3-devel-ubuntu20.04 nvidia-smi

6.2.3 Using GPUs in Docker Containers

Specifying GPUs: When running a container, use the --gpus flag to specify GPU access.

docker run --rm --gpus all -it your_ai_image

This chapter provided an overview of how to integrate GPU support in Docker for AI and machine learning applications. The knowledge gained here is crucial for developing and deploying high-performance AI models. The next chapters will explore Docker orchestration and advanced deployment strategies.


Chapter 7: Docker Compose and Orchestration

Chapter 7 delves into Docker Compose and orchestration, key aspects for managing and deploying multi-container Docker applications, particularly relevant in complex AI projects.

7.1 Using Docker Compose for AI Projects

Docker Compose is a tool for defining and running multi-container Docker applications. It uses a YAML file to configure application services, networks, and volumes.

7.1.1 Introduction to Docker Compose

  • Purpose: Simplifies the deployment of multi-container applications.
  • YAML Configuration: Define all your application services, networks, and volumes in a single file.

7.1.2 Setting Up a Docker Compose File

  • Compose File: The docker-compose.yml file describes your application services and how they are interconnected.

  • Example: A simple Compose file for an AI application with a database might look like this:

    version: '3'
    services:
      ai-app:
        image: ai-model-image
        ports:
          - "5000:5000"
      database:
        image: postgres
        environment:
          POSTGRES_PASSWORD: example

7.1.3 Running and Managing Services

  • Starting Services: Use docker-compose up to start your application.
  • Stopping Services: Use docker-compose down to stop and remove the containers, networks, and volumes.

7.2 Basics of Docker Orchestration

  • Orchestration in Docker refers to the automatic arrangement, coordination, and management of complex computer systems, middleware, and services.

7.2.1 Why Orchestration?

  • Scaling: Manage the scaling of multiple containers.
  • Resilience: Automatically replace containers that fail, ensuring high availability.

7.2.2 Docker Swarm

  • Introduction: Docker Swarm is a native clustering and orchestration tool for Docker.
  • Usage: It turns a pool of Docker hosts into a single, virtual Docker host.

7.2.3 Kubernetes

  • Introduction: An open-source platform for automating deployment, scaling, and operations of application containers.
  • Integration with Docker: Docker containers can be managed and scaled effectively using Kubernetes.

This chapter covered the essentials of Docker Compose and orchestration, crucial for managing complex AI applications. Understanding these tools is vital for efficiently deploying and scaling AI models and applications. The subsequent chapters will focus on advanced deployment strategies and best practices in Docker environments.

Chapter 8: Deploying AI Models with Docker

Chapter 8 explores the deployment of AI models using Docker, outlining strategies for effectively containerizing and deploying these models in production environments.

8.1 Deployment Strategies

Effective deployment strategies are crucial for ensuring the scalability, reliability, and performance of AI applications.

8.1.1 Microservices Architecture

  • Concept: Decompose an application into smaller, independently deployable services.
  • Benefits: Enhances scalability and makes it easier to update and maintain different parts of the application.

8.1.2 Blue-Green Deployment

  • Methodology: Maintain two identical production environments, only one of which serves live production traffic at any time.
  • Advantage: Facilitates easy rollback and reduces downtime during updates.

8.1.3 Canary Deployment

  • Approach: Gradually roll out changes to a small subset of users before rolling them out to the entire infrastructure.
  • Benefit: Reduces the risk of deploying new versions, allowing for monitoring and error detection.

8.2 Containerizing AI Models for Production

Containerization plays a vital role in the consistent and efficient deployment of AI models.

8.2.1 Creating Docker Images for AI Models

  • Process: Package the AI model, its dependencies, and the runtime environment into a Docker image.
  • Best Practices: Include only necessary files, minimize the number of layers, and ensure security best practices.

8.2.2 Managing Data and State

  • Considerations: AI models often require access to large datasets or need to maintain state.
  • Solutions: Utilize Docker volumes for data persistence and state management.

8.2.3 Monitoring and Logging

  • Importance: Effective monitoring and logging are essential for maintaining the health and performance of deployed AI models.
  • Implementation: Integrate logging mechanisms into the AI application and use Docker's logging capabilities.

This chapter provided insights into deploying AI models using Docker, covering essential strategies and practices for containerizing and managing AI models in production environments. The upcoming chapters will delve into best practices for optimizing Docker container performance and security considerations.


Chapter 9: Best Practices and Performance Optimization

In Chapter 9, we discuss best practices for using Docker, particularly in AI and machine learning projects, and explore strategies for optimizing Docker container performance.

9.1 Best Practices in Docker Usage

Adhering to best practices in Docker ensures efficient, secure, and maintainable AI applications.

9.1.1 Container Security

  • Principles: Follow the principle of least privilege. Run containers with the minimum permissions they need.
  • Scanning for Vulnerabilities: Regularly scan your Docker images for vulnerabilities using tools like Clair or Trivy.

9.1.2 Efficient Image Building

  • Layering: Optimize the layering of Docker images by grouping commands to reduce the number of layers.
  • Caching: Utilize Docker's caching mechanism effectively by organizing Dockerfile instructions properly.

9.1.3 Keeping Containers Stateless

  • Concept: Design containers to be stateless and ephemeral.
  • Benefits: Simplifies deployment, scaling, and provides flexibility in managing containers.

9.2 Performance Optimization

Optimizing Docker containers is crucial for AI applications that demand high computational resources.

9.2.1 Resource Allocation

  • CPU and Memory Limits: Set appropriate CPU and memory limits for containers to ensure efficient resource utilization.
  • Example:
    docker run -it --cpus="1.5" --memory="4g" my-ai-app

9.2.2 Optimizing for Specific Hardware

GPU Usage: For AI tasks, ensure that Docker containers are optimized to use GPUs effectively. Network Performance: Optimize network settings to enhance the performance of distributed AI applications.

9.2.3 Logging and Monitoring

Implementation: Implement logging and monitoring to track the performance and health of AI applications. Tools: Use tools like Prometheus and Grafana for monitoring containerized applications.

This chapter covered essential best practices and performance optimization techniques for Docker, particularly focusing on AI and machine learning applications. The knowledge shared here is crucial for developing efficient, secure, and scalable AI applications using Docker. The final chapter will focus on advanced topics and future trends in Docker usage for AI.


Chapter 10: Advanced Topics and Future Trends in Docker for AI

Chapter 10 delves into advanced topics in Docker usage and explores future trends, particularly pertaining to AI and machine learning applications.

10.1 Docker Swarm and Kubernetes in AI

Understanding orchestration tools like Docker Swarm and Kubernetes is essential for managing complex, scalable AI applications.

10.1.1 Docker Swarm in AI

  • Overview: Docker Swarm provides native clustering functionality for Docker containers, turning a group of Docker hosts into a single, virtual Docker host.
  • AI Use Case: Ideal for AI applications that require scalability and high availability.

10.1.2 Kubernetes in AI

  • Overview: An open-source platform for automating deployment, scaling, and operations of application containers across clusters of hosts.
  • AI Use Case: Kubernetes is well-suited for complex AI workflows, providing robust scaling, self-healing, and deployment features.

10.2 Continuous Integration/Continuous Deployment (CI/CD) with Docker

CI/CD pipelines are crucial for the rapid development and deployment of AI models.

10.2.1 Building CI/CD Pipelines

  • Automated Testing and Deployment: Implement CI/CD pipelines to automate the testing and deployment of AI applications.
  • Docker Integration: Use Docker containers to ensure consistency across development, testing, and production environments.

10.3 Future Trends in Docker and AI

Staying abreast of future trends is crucial for leveraging Docker effectively in the evolving field of AI.

10.3.1 Increased Cloud Integration

  • Trend: Enhanced integration of Docker with cloud platforms, offering more seamless deployment and scalability options.

10.3.2 Enhanced Security Features

  • Prediction: Continued focus on improving the security aspects of Docker, especially in AI applications dealing with sensitive data.

10.3.3 Edge Computing and IoT

  • Outlook: Growing use of Docker in edge computing and IoT applications, where AI models are deployed closer to the data source for real-time processing.

This chapter provided insights into advanced Docker functionalities and emerging trends, equipping you with the knowledge to stay ahead in the rapidly evolving landscape of Docker in AI and machine learning. As the field continues to grow, staying updated with these trends and advancements will be key to success.


Resources and Further Reading

This section lists essential resources and further reading materials to deepen your understanding and skills in Docker, especially in the context of AI and machine learning.

Official Docker Documentation

NVIDIA Docker Toolkit Documentation

  • NVIDIA Docker Overview: Detailed documentation on the NVIDIA Docker Toolkit for leveraging GPUs in Docker. NVIDIA Docker GitHub
  • NVIDIA Container Toolkit Guide: A guide for setting up and using the NVIDIA Container Toolkit. NVIDIA Container Toolkit

Tutorials and Courses

  • Docker Tutorials for Beginners: A series of tutorials to get started with Docker. Docker Tutorials
  • AI with Docker: Courses and tutorials specifically focused on using Docker for AI and machine learning projects.
  • Interactive Learning Platforms: Platforms like Coursera, Udemy, and Pluralsight offer courses on Docker, ranging from beginner to advanced levels.

Community and Forums

  • Docker Community Forums: Engage with the Docker community for discussions and troubleshooting. Docker Forums
  • Stack Overflow: A valuable resource for finding solutions to specific Docker-related issues. Stack Overflow - Docker Tag

The resources provided here are intended to assist in furthering your knowledge and proficiency in using Docker, particularly in the realm of AI and machine learning. Continuous learning and engagement with the community are key to staying updated with the latest trends and best practices.

docker-guide-for-ai-model-development-and-deployment's People

Contributors

saikhu avatar

Stargazers

Nguyen KY avatar  avatar 김태양_T6044 avatar Sardor Juraev avatar  avatar Huynh Thai Hoa avatar  avatar Baydadaev Shokhrukh avatar Sayed Nadim avatar

Watchers

Kostas Georgiou avatar  avatar

Forkers

jipyeong-lee

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.