コード例 #1
0
ファイル: model.py プロジェクト: hanbman/pymc3
    def flatten(self, vars=None):
        """Flattens model's input and returns:
            FlatView with
            * input vector variable
            * replacements `input_var -> vars`
            * view {variable: VarMap}

        Parameters
        ----------
        vars : list of variables or None
            if None, then all model.free_RVs are used for flattening input

        Returns
        -------
        flat_view
        """
        if vars is None:
            vars = self.free_RVs
        order = ArrayOrdering(vars)
        inputvar = tt.vector('flat_view', dtype=theano.config.floatX)
        inputvar.tag.test_value = flatten_list(vars).tag.test_value
        replacements = {
            self.named_vars[name]: inputvar[slc].reshape(shape).astype(dtype)
            for name, slc, shape, dtype in order.vmap
        }
        view = {vm.var: vm for vm in order.vmap}
        flat_view = FlatView(inputvar, replacements, view)
        return flat_view
コード例 #2
0
ファイル: model.py プロジェクト: mmargenot/pymc3
    def flatten(self, vars=None, order=None, inputvar=None):
        """Flattens model's input and returns:

        FlatView with
            * input vector variable
            * replacements ``input_var -> vars``
            * view `{variable: VarMap}`

        Parameters
        ----------
        vars : list of variables or None
            if None, then all model.free_RVs are used for flattening input
        order : ArrayOrdering
            Optional, use predefined ordering
        inputvar : tt.vector
            Optional, use predefined inputvar

        Returns
        -------
        flat_view
        """
        if vars is None:
            vars = self.free_RVs
        if order is None:
            order = ArrayOrdering(vars)
        if inputvar is None:
            inputvar = tt.vector('flat_view', dtype=theano.config.floatX)
            if theano.config.compute_test_value != 'off':
                if vars:
                    inputvar.tag.test_value = flatten_list(vars).tag.test_value
                else:
                    inputvar.tag.test_value = np.asarray([], inputvar.dtype)
        replacements = {self.named_vars[name]: inputvar[slc].reshape(shape).astype(dtype)
                        for name, slc, shape, dtype in order.vmap}
        view = {vm.var: vm for vm in order.vmap}
        flat_view = FlatView(inputvar, replacements, view)
        return flat_view