nnstats
Package for calculating statistics for Neural Networks.
Installation
npm install --save nnstatsUsage
Basic usage
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);Model layout
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 be4because32 / 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 be4because32 / 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.
Created with
Yeoman and Generator-simple-package
License
MIT © nghiattran