keras-style deep network package for classification and prediction


Keywords
deep, network, learning, DBN, SAE, classification, convolutional-neural-networks, deep-belief-network, deep-learning, deep-neural-networks, keras-layer, prediction, stacked-autoencoder, stacked-denoising-autoencoders, stacked-sparse-autoencoder, tensorflow, tsne-plot
License
MIT
Install
pip install deepfree==0.1.0

Documentation

deepfree

Keras-style deep network package for classification and prediction.

install

pip install --upgrade numpy h5py
pip install --upgrade deepfree

feature

fast learning

The main framework of the program relies on Model in core._model and Layer in core._layer, which can import directly through 'from deepfree import Model, Layer'. You can quickly build and train the model by using them flexibly. In addition, the constructed DBN and SAE can be employed directly, which are inherited from Model.

stacking blocks

By calling Model.add_layer(['a Layer of a list of Layer']), you can build the model like stack the blocks. There are a set of Layer can be selected, such as phvariable, maxpooling2d,flatten,concatenate, Dense, Conv2D.

flexible setting

You can set the model's parameters listed in base._attribute when first building model (DBN(para=...), SAE(para=...), Model(para=...)) or training it (Model.training(para=...)). If you do not set a value, the default value in base._attribute will be applied.

results display

'loss & test accuracy - epoch' curve and 'prediction - epoch' curve will be generated automatically. Furthermore, real label -> predicted label count result and t-SNE visualization image can be obtained by calling Model.plot_label_cnt and Model.plot_tSNE, respectively.

example

A simple DNN can be constructed and trained as:

from deepfree import Model
from deepfree import phvariable,Dense
model = Model()
model.struct = [784, 100 ,10]
model.input = phvariable(model.struct[0])('input')
model.label = phvariable(model.struct[-1])('label')
        
for i in range(len(model.struct)-2):
    model.add_layer(Dense(model.struct[i+1], 
                         activation = model.next_hidden_activation(), 
                         is_dropout = True))
model.add_layer(Dense(model.struct[-1], activation = model.output_func))
model.training(dataset = ...,data_path = ...)

plot

The running result can be find in 'result' folder.

  • loss & test accuracy - epoch curve:
  • prediction - epoch curve:
  • real label -> predicted label count result:
  • t-SNE visualization:

blog

Github, zhihu, CSDN, PyPI
QQ Group:640571839