Home Reference Source Test

packages/causality/src/causalNet.js

import { DataSourceMixins } from 'causal-net.datasets';
import { PreprocessingMixins, causalNetPreprocessingStream } from 'causal-net.preprocessing';
import { TrainerMixins, EvaluatorMixins } from 'causal-net.optimizers';
import { ModelMixins } from 'causal-net.models';
import { causalNetRunner, LayerRunnerMixins } from 'causal-net.layer';
import { Tensor } from 'causal-net.core';
import { platform } from 'causal-net.utils';
import { causalNetDeployment, DeploymentMixins } from 'causal-net.deployment';
import { termLogger, LoggerMixins } from 'causal-net.log';
import { default as functor } from './functor';
import { EnsembleTrainerMixins, EnsembleModelMixins, EnsembleDeploymentMixins } from './Ensemble/index';

/**
 * The CausalNet class is the prebuilt pipeline with methods for 
 * processing data/train/evaluate/deploy/ensemble deploy
 * { mixWith: [ 
 *         DataSourceMixins,
 *         PreprocessingMixins,
 *         LayerRunnerMixins, 
 *         ModelMixins, 
 *         EvaluatorMixins,
 *         TrainerMixins, 
 *         LoggerMixins,
 *         DeploymentMixins,
 *         EnsembleTrainerMixins,
 *         EnsembleModelMixins, 
 *         EnsembleDeploymentMixins ] }
 * @class CausalNet
 * @extends {Tensor}
 * @example
 * [EXAMPLE ../examples/causalNet/ensemble.logisticRegression.babel.js]
 */
class CausalNet extends platform.mixWith(Tensor, [ 
        DataSourceMixins,
        PreprocessingMixins,
        LayerRunnerMixins, 
        ModelMixins, 
        EvaluatorMixins,
        TrainerMixins, 
        LoggerMixins,
        DeploymentMixins,
        EnsembleTrainerMixins,
        EnsembleModelMixins, 
        EnsembleDeploymentMixins ]){
    /**
     *Creates an instance of CausalNet.
     * @param { Functor } functor
     * @param { Log } logger
     * @param { Functor } streamPreprocessing
     * @param { Tensor } netParameters
     * @param { Tensor } netRunner
     * @param { Event } streamDeployment
     * @memberof CausalNet
     */
    constructor( functor, logger, streamPreprocessing, netRunner, streamDeployment){
        super();
        this.F = functor;
        this.R = this.F.CoreFunctor;
        this.Logger = logger;
        this.Preprocessing = streamPreprocessing;
        this.LayerRunner = netRunner;        
        this.Deployment = streamDeployment;
    }
}

export default new  CausalNet(  functor, 
                                termLogger, 
                                causalNetPreprocessingStream, 
                                causalNetRunner, 
                                causalNetDeployment );