Home Reference Source Test

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();