YoungToolkit

A Toolkit for a series of Young projects


License
Apache-2.0
Install
pip install YoungToolkit==0.1.3.1

Documentation

YoungToolkit

A Toolkit for a series of Young projects, these modules are very practical, basic, simple and easy to use, so you can import this package wherever you need to use it.

Usage

from yoolkit.some_module import *

See Full Documentation for more details.

Table of Contents

visualizing

This module is a encapsulation of the client side of visdom, note that the visdom server API adheres to the Plotly convention of data and layout objects.

Visualizing Server

If you have not host a server of the visdom for yourself, please follow the instructions below.

export VISDOM_USERNAME="Jason"
export VISDOM_PASSWORD="123456"
export VISDOM_COOKIE="Guest_Visdom_Cookie"

function start_visdom {
    VISDOM_USE_ENV_CREDENTIALS=1 visdom -port 6789 -enable_login -force_new_cookie;
}

export -f start_visdom

nohup bash -c start_visdom > visdom.log 2>&1 &

or you can download the start and stop scripts for convenience.

Visualizing Client
  1. Setup visualizing client for the server you host (assume your host ip is 127.0.0.1):
from yoolkit.visualizing import setup_visualizer
visualizer = setup_visualizer(
    'Demo',
    server='127.0.0.1',
    port=6789,
    username="Jason",
    password="123456",
    logging_path="demo.log",
    offline=False,
    overwrite=True
)
  1. Open connection:
visualizer.open()
  1. Draw! Your paintings can be found at http://127.0.0.1:6789.
import numpy
heat = numpy.arange(25).reshape((5,5))
visualizer.visualize(
    'heatmap',
    'demo_heatmap_5_5',
    'Demo 5*5 matrix heatmap',
    X=heat,
    opts={
        'colormap': 'Viridis',
    }
)

In method visualizer.visualize(), No.1 argument visualize_type is one of a methods of visdom like line, heatmap, mesh, etc., No.2 and No.3 arugment is visualize_name and visualize_title, all other keyword arguments is determined by visualize_type (refer to visdom for more detailed usage documentation).

  1. Close connection:
visualizer.close()

After you close the connection between client and server, the server will remove the paintings that you have drawn. Don't worry about that, all the paintings are saved in the logging file demo.log which is defined in step 1.

  1. Replay a logging file:
visualizer.replay_log('some_other.log')

Installation

Three different installation methods are shown bellow:

  1. Install YoungToolkit or youngtoolkit from PyPI:
pip install YoungToolkit

or

pip install youngtoolkit
  1. Install YoungToolkit from sources:
git clone https://github.com/Jason-Young-AI/YoungToolkit.git
cd YoungToolkit
python setup.py install
  1. Develop YoungToolkit locally:
git clone https://github.com/Jason-Young-AI/YoungToolkit.git
cd YoungToolkit
python setup.py build develop

Installation with NVIDIA related functions supports

Support IO for PyTorch Tensors

Append [nv-io] to the package name YoungToolkit durning the installation, like:

pip install YoungToolkit[nv-io]

Support Tracking of the GPU memory (PyTorch)

Append [nv-track] to the package name YoungToolkit durning the installation.

pip install YoungToolkit[nv-track]

NOTE: I refer to project(Oldpan/Pytorch-Memory-Utils) to implement this part yoolkit.tracker

Support all features

Append [full] to the package name YoungToolkit durning the installation.

pip install YoungToolkit[full]

NOTATION : If you are using zsh as your shell environment, please escape the square brackets or quote the argument like pip install 'YoungToolkit[xxx]'. (Here is a more detailed explanation)