Javascript package for analyzing Neural Networks.
npm install --save nnstats
The following show basic usage for analyzing CNN in Tensorflow (padding
takes either SAME
or VALID
).
'use strict';
let nnStats = require('./');
let analyzer = nnStats.analyzer;
let utils = nnStats.utils;
let model = [{
'type': 'conv',
'filter': [5, 5, 32],
'strides': [1, 1],
'padding': 'SAME',
'datasize': 4
},{
'type': 'pool',
'filter': [2, 2],
'strides': [2, 2],
'padding': 'SAME',
'datasize': 4
},{
'type': 'conv',
'filter': [5, 5, 64],
'strides': [2, 2],
'padding': 'SAME',
'datasize': 4
},{
'type': 'pool',
'filter': [2, 2],
'strides': [2, 2],
'padding': 'SAME',
'datasize': 4
},{
'type': 'fc',
'hidden': 2048
},{
'type': 'fc',
'hidden': 1000
}]
let input = [28, 28, 1]
let options = {
tensorflow: true
}
let stats = analyzer.analyzeNetwork(model, input, options);
utils.report(stats);
Currently, here are 3 supported layers type: convolution layer (conv
), pooling layer (pool
), and fully-connected layer ('fc'). In all cases, type
field is required in layer object to identity layer type.
Fields in conv
layer:
filter
: 3D array kernal size (height, width, outChannel).strides
: 2D array strides size (height, width).padding
: 2D array padding size (height, width).datasize
(optional): number of byte of one value (forfloat32
, this should be4
because32 / 8 = 4
). This value is used to calculate how much memory needed for the network.
Fields in pool
layer:
filter
: 2D array kernal size (height, width).strides
: 2D array strides size (height, width).padding
: 2D array padding size (height, width).datasize
(optional): number of byte of one value (forfloat32
, this should be4
because32 / 8 = 4
). This value is used to calculate how much memory needed for the network.
Fields in fc
layer:
hidden
: number of neurons in hiddent layers.
https://knapsack-lab.github.io/nnstats/
Yeoman and Generator-simple-package
MIT © nghiattran