项目作者: akshaykurmi

项目描述 :
Deep Learning Algorithms implemented from scratch using Numpy
高级语言: Python
项目地址: git://github.com/akshaykurmi/neural-networks-from-scratch.git
创建时间: 2019-08-19T14:05:25Z
项目社区:https://github.com/akshaykurmi/neural-networks-from-scratch

开源协议:MIT License

下载


Neural Networks From Scratch

A pure Numpy deep learning framework with a modular Keras-like API.

Usage

The following is a simple example of multi-class classification on the Iris Flower dataset.
Checkout the examples directory for more.

  1. from nnfs.datasets import IrisFlowers
  2. from nnfs.activations import ReLU, Softmax
  3. from nnfs.losses import CategoricalCrossentropy
  4. from nnfs.optimizers import Momentum
  5. from nnfs.initializers import RandomUniform, Zeros
  6. from nnfs.metrics import CategoricalAccuracy
  7. from nnfs.layers import Dense, Dropout
  8. from nnfs.models import FeedForwardNetwork
  9. from nnfs.utils.data import split_data
  10. from nnfs.utils.preprocessing import OneHotEncoder, normalize
  11. dataset = IrisFlowers()
  12. dataset.download_data()
  13. X, y = dataset.load_data()
  14. ohe = OneHotEncoder()
  15. y = ohe.fit_transform(y)
  16. X = X.to_numpy()
  17. X_train, y_train, X_test, y_test = split_data(X, y, ratio=0.8)
  18. X_train, X_test = normalize(X_train, X_test)
  19. model = FeedForwardNetwork()
  20. model.add(Dense(units=64,
  21. activation=ReLU(),
  22. weights_initializer=RandomUniform(),
  23. bias_initializer=Zeros(),
  24. input_shape=(4,)))
  25. model.add(Dropout(0.3))
  26. model.add(Dense(units=3,
  27. activation=Softmax(),
  28. weights_initializer=RandomUniform(),
  29. bias_initializer=Zeros()))
  30. model.compile(optimizer=Momentum(learning_rate=0.001, nesterov=True, clip_value=0.05),
  31. loss=CategoricalCrossentropy(),
  32. metrics=[CategoricalAccuracy()]
  33. model.fit(X_train, y_train, batch_size=32, epochs=1000, verbosity=0)
  34. loss, metrics = model.evaluate(X_test, y_test, batch_size=32)
  35. print("Test Loss :", loss)
  36. print("Test Metrics :", metrics)

Components Included

Category Components
Layers Dense
Dropout
Convolution 2D
MaxPooling 2D
Flatten
Activations ReLU
Sigmoid
Softmax
Optimizers Stochastic Gradient Descent
SGD with Momentum
Losses Mean Squared Error
Categorical Crossentropy
Weight Initializers Zeros, Ones, Constant
Random Normal, Random Uniform
He Normal, He Uniform
Glorot Normal, Glorot Uniform
Metrics Categorical Accuracy
Datasets Synthetic - Moons, Spirals
MNIST Handwritten Digits
Wine Quality
Iris Flower