Home Reference Source Test

packages/causality-models/src/model.mixins.js

const ModelMixins = (BasePipelineClass)=> class extends BasePipelineClass{
    get LossModel(){
        if(!this.netModel){
            throw Error('netModel is not set');
        }
        return this.netModel.Loss;
    }

    get FitModel(){
        if(!this.netModel){
            throw Error('netModel is not set');
        }
        return this.netModel.Fit;
    }
    
    get OneHotPredictModel(){
        if(!this.netModel){
            throw Error('netModel is not set');
        }
        return this.netModel.OneHotPredict;
    }

    get PredictModel(){
        if(!this.netModel){
            throw Error('netModel is not set');
        }
        return this.netModel.Predict;
    }

    get EncodeModel(){
        if(!this.netModel){
            throw Error('netModel is not set');
        }
        return this.netModel.Encode;
    }

    get DecodeModel(){
        if(!this.netModel){
            throw Error('netModel is not set');
        }
        return this.netModel.Decode;
    }


    get Model(){
        if(!this.netModel){
            throw Error('netModel is not set');
        }
        return this.netModel;
    }
    

    set Model(model){        
        this.netModel = model;
    }

    setByConfig(pipelineConfig){
        if(super.setByConfig){
            super.setByConfig(pipelineConfig);
        }
        this.Logger.groupBegin('set Model by config');
        const { Model } = pipelineConfig.Net;
        if(!Model){
            throw Error(`Model is not set in ${JSON.stringlify(pipelineConfig)}`);
        }
        Model.LayerRunner = this.LayerRunner;
        this.Model = Model;
        this.Logger.groupEnd();
    }
};

export default ModelMixins;