项目作者: sharnam19

项目描述 :
Library which can be used to build feed forward NN, Convolutional Nets, Linear Regression, and Logistic Regression Models.
高级语言: Python
项目地址: git://github.com/sharnam19/Networks.git
创建时间: 2017-09-28T02:35:52Z
项目社区:https://github.com/sharnam19/Networks

开源协议:

下载


Networks - A Machine/Deep Learning Library

Machine Learning and Deep Learning Models from Scratch.\
This Library allows users to create the following models:
1) Feed-Forward Neural Networks
2) Convolution Neural Networks
3) Linear Regression
4) Logistic Regression

Without having to write any backpropagation code.

To install the Networks Library

  1. pip install networks

Layers in the Library & their Parameters in Add function

Activation Layers

1. Relu Layer

  1. No Params
### 2. Sigmoid Layer
  1. No Params
### 3. Tanh Layer
  1. No Params
### 4. Leaky Relu Layer
  1. No Params

Normalization Layers

1. Batch Normalization Layer

  1. batch_params={
  2. 'mode':'train'/'test',
  3. 'momentum':0.9,
  4. 'eps':1e-8
  5. }
### 2. Spatial Batch Normalization Layer
  1. batch_params={
  2. 'mode':'train'/'test',
  3. 'momentum':0.9,
  4. 'eps':1e-8
  5. }

Convolution Layers

1. Max Pooling Layer

  1. pooling_params={
  2. 'pooling_height':2,
  3. 'pooling_width':2,
  4. 'pooling_stride_height':2,
  5. 'pooling_stride_width':2
  6. }
### 2. Convolution Layer
  1. num_kernels=64,
  2. kernel_h=3,
  3. kernel_w=3,
  4. convolution_params={
  5. 'stride':1
  6. }
### 3. Padding Layer
  1. padding_h=2,
  2. padding_w=2

Loss Layers

1. Softmax Loss Layer

  1. No params
### 2. SVM Loss Layer
  1. No params
### 3. Mean Squared Error Layer
  1. No params
### 4. Cross Entropy Loss Layer
  1. No params

Fully Connected Layer

1. Affine Layer

  1. affine_out = 64
### 2. Flatten Layer
  1. No params

Example Usage

  1. from networks.network import network
  2. model = network(input_shape=(64,1,50,50),initialization="xavier2",
  3. update_params={
  4. 'alpha':1e-3,
  5. 'method':'adam',
  6. 'epoch':100,
  7. 'reg':0.01,
  8. 'reg_type':'L2',
  9. 'offset':1e-7
  10. })

To Add Padding Layer

  1. model.add("padding",padding_h=3,padding_w=3)

To Add Convolution Layer

  1. model.add("convolution",num_kernels=64,kernel_h=3,kernel_w=3,
  2. convolution_params:{
  3. 'stride':1
  4. })
### To Add Relu Layer
  1. model.add("relu")

To Add Pooling Layer

  1. model.add("pooling",pooling_params={
  2. "pooling_height":2,
  3. "pooling_width":2,
  4. "pooling_stride_height":2,
  5. 'pooling_stide_width':2
  6. })

To Add Batch Normalization Layer

  1. model.add("batch_normalization",
  2. batch_params={'mode':'train'/'test','momentum':0.9,'eps':1e-8})

To Add Spatial Batch Normalization Layer

  1. model.add("spatial_batch",
  2. batch_params={'mode':'train'/'test','momentum':0.9,'eps':1e-8})

To Add a Flatten Layer

  1. model.add("flatten")

To Add Affine Layer

  1. model.add("affine",affine_out=128)

To Add Softmax Loss Layer

  1. model.add("softmax")

To Add SVM Loss Layer

  1. model.add("svm")

To Add MSE Loss Layer

  1. model.add("mse")

To Add Cross Entropy Loss Layer

  1. model.add("cross_entropy")

To Save Model

  1. model.save("model.json")

To Load Model

  1. model = network.load("model.json")

To Train Model

  1. model.train(X,y)

To Get Accuracy & Loss After Training

  1. accuracy,loss = model.test(validX,validY)

To Predict

  1. predictions = model.predict(X)