packages/causality-layer/src/CausalNetLayers/causalNetLayers.js
import { Tensor as BaseTensor } from 'causal-net.core';
import { platform } from 'causal-net.utils';
import { default as DenseMixins } from './dense.mixins';
import { default as ConvolutionalMixins } from './convolution.mixins';
/**
* This class provides common used layers which can be accessed via **causalNetLayers** instance.
* { mixWith: [ LayerMixins, DenseMixins ] }
* @class CausalNetLayers
* @extends BaseTensor
* @example
* [EXAMPLE ../examples/dense.layer.js]
*/
class CausalNetLayers extends platform.mixWith(BaseTensor,
[ DenseMixins, ConvolutionalMixins ] ){
constructor(){
super();
this.layerNames = [];
}
nameGenerator(layerType){
const layerIdx = this.layerNames.length;
let newName = layerType + '/' + layerIdx;
this.layerNames.push(newName);
return newName;
}
custom({Net, Parameters={}, name=null}){
if(!name){
name = this.nameGenerator('custom');
}
return { Name: name, Type: 'Layer', Config: {name}, Parameters, Net };
}
}
export default new CausalNetLayers();