Skip to content
/ catseye Public

Neural network library written in C and Javascript

Notifications You must be signed in to change notification settings

yui0/catseye

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cat's Eye

Neural network library written in C and Javascript

Features

  • Lightweight and minimalistic:
    • Header only
    • Just include catseye.h and write your model in c. There is nothing to install.
    • Small dependency & simple implementation
  • Fast: [under construction]
    • OpenCL support (GPGPU)
    • OpenGL support (GPGPU)
    • SSE, AVX support (But gcc and clang support SIMD...)
    • OpenMP support
    • Support half precision floats (16bit)
  • Supported networks:
    • Activation functions
      • sigmoid
      • softmax
      • tanh, scaled tanh (1.7519 * tanh(2/3x))
      • ReLU, Leaky ReLU, ELU, RReLU
      • abs
      • identity
    • Loss functions
      • cross-entropy, mean-squared-error
    • Optimization algorithms
      • SGD (stochastic gradient descent) with/without L2 normalization
      • Momentum SGD
      • AdaGrad
      • RMSProp
      • Adam
    • Layer types
      • linear (mlp)
      • convolution
      • convolution 1d
      • deconvolution
      • Sub-Pixel Convolution (Pixel Shuffler)
      • max pooling
      • average pooling
      • global average pooling (GAP)
      • batch normalization
      • concat
      • shortcut
  • Loader formats:

Usage

Just include header files in your project.

for more information, see example/

$ dnf install ghostscript ocl-icd-devel
$ cd example
$ make
$ ./sin

Demo

Open In Colab

Question

  • Neural Network Always Produces Same/Similar Outputs for Any Input
    • Scale down the problem to manageable size.
    • Make sure you have enough hidden units.
    • Change the activation function and its parameters.
    • Change learning algorithm parameters.

Refrences