Metadata-Version: 2.0
Name: shtu-venus
Version: 0.1
Summary: A deep learning experiment tool to help you develop and manage your project
Home-page: https://github.com/ShanghaiTechVENUS/venus/tree/master
Author: Shipeng Yan
Author-email: yanshp@shanghaitech.edu.cn
License: MIT
Description-Content-Type: UNKNOWN
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.6.0
Requires-Dist: easydict


### Installation
* Install Hyperopt(Don't install by pip. The Hyperopt version in pip is too old. Install it from source.)
    - git clone https://github.com/hyperopt/hyperopt.git
    - python setup.py install
    - sudo apt-get install mongodb-server
* install torchnet
### Designs
A deep-learning project usually consists of data loading, model building, model training/testing phases.
Also we need some auxiliary functions such as autosave/load, visualization, auto hyperparameter optimization and some debug tools, etc. to help us. 

#### Optimizing hyperparameters
* Available libraries: Hyperopt, HPOlib2, neupy



# torchnet_Venus
The base framework for deep learning based on pytorch, torchnet, etc.


## TODO
[TODO Issue](https://github.com/ShanghaiTechVENUS/torchnet_Venus/issues/1)
## Credits

Primarily referenced tnt of pytorch:  [Torchnet @pytorch](https://github.com/pytorch/tnt)

Many thanks to [@pytorch](https://github.com/pytorch).


# Code Structure: a lib that helps us to do some debugs, tune parameters, visualize, config
Wish the lib to be a wrapper, but users can also use the modules separately.

* debug utilities

## Recently
* base
* initializer    
* visual
* hyperopt: tune hyper parameters
* optimizer: multistep learner
* config
* autosave, autoload: If unexpected interruption or active keyboard interruption happens to the program, then will save the checkpoint and parameters automatically.
* utils
    - seed initialization
    - weight initialization


## Long-term goal
* profiler
* common dataloader
* search structure
* tnt such as engine, meter
* autoselect idle graphic card


# Class graph
config 

Engine: Tune network parameters
    - autosave
    - train
    - test
    - load_test
    - load_train

StructureSearcher     
Hyperopt            ->         Engine             -> config
                                        -> visual


DataLoader

Should be a template or a library?
Flexibility should be the first.
Utilities follows.


