diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 6d54f36..a3be0c9 100644 Binary files a/.doctrees/environment.pickle and b/.doctrees/environment.pickle differ diff --git a/.doctrees/python-api/tensorcircuit.doctree b/.doctrees/python-api/tensorcircuit.doctree index 7ceb52f..298c5c1 100644 Binary files a/.doctrees/python-api/tensorcircuit.doctree and b/.doctrees/python-api/tensorcircuit.doctree differ diff --git a/_downloads/138be0ba05114133a20190b9e95fa3df/05_common_transformations.zip b/_downloads/138be0ba05114133a20190b9e95fa3df/05_common_transformations.zip index 3ec4f0a..180ad53 100644 Binary files a/_downloads/138be0ba05114133a20190b9e95fa3df/05_common_transformations.zip and b/_downloads/138be0ba05114133a20190b9e95fa3df/05_common_transformations.zip differ diff --git a/_downloads/27c13291b8b1ed33e81ba0da09023ff5/02_construct_simple_pc.zip b/_downloads/27c13291b8b1ed33e81ba0da09023ff5/02_construct_simple_pc.zip index a0454f2..7d69430 100644 Binary files a/_downloads/27c13291b8b1ed33e81ba0da09023ff5/02_construct_simple_pc.zip and b/_downloads/27c13291b8b1ed33e81ba0da09023ff5/02_construct_simple_pc.zip differ diff --git a/_downloads/662999063954282841dc90b8945f85ce/tutorials_jupyter.zip b/_downloads/662999063954282841dc90b8945f85ce/tutorials_jupyter.zip index a398712..01cf305 100644 Binary files a/_downloads/662999063954282841dc90b8945f85ce/tutorials_jupyter.zip and b/_downloads/662999063954282841dc90b8945f85ce/tutorials_jupyter.zip differ diff --git a/_downloads/6c76237d839fcdac5c542e5e0b563307/04_query_pc.zip b/_downloads/6c76237d839fcdac5c542e5e0b563307/04_query_pc.zip index 383ff9d..728bc8d 100644 Binary files a/_downloads/6c76237d839fcdac5c542e5e0b563307/04_query_pc.zip and b/_downloads/6c76237d839fcdac5c542e5e0b563307/04_query_pc.zip differ diff --git a/_downloads/763344228ae6bc253ed1a6cf586aa30d/tutorials_python.zip b/_downloads/763344228ae6bc253ed1a6cf586aa30d/tutorials_python.zip index cdb30c8..5272ca4 100644 Binary files a/_downloads/763344228ae6bc253ed1a6cf586aa30d/tutorials_python.zip and b/_downloads/763344228ae6bc253ed1a6cf586aa30d/tutorials_python.zip differ diff --git a/_downloads/a398e0b6ad427b76aa1e83a10664efce/01_train_pc.zip b/_downloads/a398e0b6ad427b76aa1e83a10664efce/01_train_pc.zip index 0400c30..9f3ea02 100644 Binary files a/_downloads/a398e0b6ad427b76aa1e83a10664efce/01_train_pc.zip and b/_downloads/a398e0b6ad427b76aa1e83a10664efce/01_train_pc.zip differ diff --git a/_downloads/d53424265b3faf11303f2bcbe1bdab7b/03_construct_hmm.zip b/_downloads/d53424265b3faf11303f2bcbe1bdab7b/03_construct_hmm.zip index 5fca490..f586c01 100644 Binary files a/_downloads/d53424265b3faf11303f2bcbe1bdab7b/03_construct_hmm.zip and b/_downloads/d53424265b3faf11303f2bcbe1bdab7b/03_construct_hmm.zip differ diff --git a/python-api/tensorcircuit.html b/python-api/tensorcircuit.html index 9b293b4..8ea1866 100644 --- a/python-api/tensorcircuit.html +++ b/python-api/tensorcircuit.html @@ -115,7 +115,7 @@

pyjuice.TensorCircuit
-forward(inputs: Tensor, input_layer_fn: str | Callable | None = None, cache: dict | None = None, return_cache: bool = False, record_cudagraph: bool = False, apply_cudagraph: bool = True, force_use_bf16: bool = False, force_use_fp32: bool = False, propagation_alg: str | Sequence[str] | None = None, **kwargs)
+forward(inputs: Tensor, input_layer_fn: str | Callable | None = None, cache: dict | None = None, return_cache: bool = False, record_cudagraph: bool = False, apply_cudagraph: bool = True, force_use_bf16: bool = False, force_use_fp32: bool = False, propagation_alg: str | Sequence[str] | None = None, _inner_layers_only: bool = False, **kwargs)

Forward evaluation of the PC.

Parameters:
@@ -129,7 +129,7 @@

pyjuice.TensorCircuit
-backward(inputs: Tensor | None = None, ll_weights: Tensor | None = None, compute_param_flows: bool = True, flows_memory: float = 1.0, input_layer_fn: str | Callable | None = None, cache: dict | None = None, return_cache: bool = False, record_cudagraph: bool = False, apply_cudagraph: bool = True, allow_modify_flows: bool = True, propagation_alg: str | Sequence[str] = 'LL', logspace_flows: bool = False, negate_pflows: bool = False, **kwargs)
+backward(inputs: Tensor | None = None, ll_weights: Tensor | None = None, compute_param_flows: bool = True, flows_memory: float = 1.0, input_layer_fn: str | Callable | None = None, cache: dict | None = None, return_cache: bool = False, record_cudagraph: bool = False, apply_cudagraph: bool = True, allow_modify_flows: bool = True, propagation_alg: str | Sequence[str] = 'LL', logspace_flows: bool = False, negate_pflows: bool = False, _inner_layers_only: bool = False, **kwargs)

Backward evaluation of the PC that computes node flows as well as parameter flows.

Parameters:
diff --git a/searchindex.js b/searchindex.js index 8c47558..601fd46 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"API": [[8, "api"]], "Adjust block sizes": [[5, "adjust-block-sizes"]], "Clone a PC": [[5, "clone-a-pc"]], "Computation times": [[7, null], [38, null]], "Compute conditional probabilities": [[4, "compute-conditional-probabilities"]], "Compute marginal probabilities": [[4, "compute-marginal-probabilities"]], "Construct Simple PCs": [[2, null]], "Construct an HMM": [[3, null]], "Create the PC": [[1, "create-the-pc"]], "Generate a PC": [[4, "generate-a-pc"]], "Getting started": [[8, "getting-started"]], "IO": [[35, "io"]], "Input Distributions": [[34, "input-distributions"]], "Input nodes": [[2, "input-nodes"]], "Installation": [[0, null]], "Load the MNIST Dataset": [[1, "load-the-mnist-dataset"]], "Merge PCs": [[5, "merge-pcs"]], "Methods": [[34, "methods"]], "Nodes": [[34, "nodes"]], "PC Compilation": [[35, "pc-compilation"]], "PC Creation": [[35, "pc-creation"]], "PC Structural Transformation Functions": [[5, null]], "PC Structure Transformation": [[35, "pc-structure-transformation"]], "Product nodes": [[2, "product-nodes"]], "Query a PC": [[4, null]], "Sum nodes": [[2, "sum-nodes"]], "Train a PC": [[1, null]], "Train the PC": [[1, "train-the-pc"]], "Tutorials": [[6, null]], "Welcome to PyJuice\u2019s documentation!": [[8, null]], "pyjuice": [[35, null]], "pyjuice.TensorCircuit": [[37, null]], "pyjuice.blockify": [[9, null]], "pyjuice.compile": [[10, null]], "pyjuice.deepcopy": [[11, null]], "pyjuice.inputs": [[12, null]], "pyjuice.load": [[13, null]], "pyjuice.merge": [[14, null]], "pyjuice.multiply": [[15, null]], "pyjuice.nodes": [[34, null]], "pyjuice.nodes.InputNodes": [[16, null]], "pyjuice.nodes.ProdNodes": [[17, null]], "pyjuice.nodes.SumNodes": [[18, null]], "pyjuice.nodes.distributions.Bernoulli": [[19, null]], "pyjuice.nodes.distributions.Categorical": [[20, null]], "pyjuice.nodes.distributions.DiscreteLogistic": [[21, null]], "pyjuice.nodes.distributions.Gaussian": [[22, null]], "pyjuice.nodes.distributions.MaskedCategorical": [[23, null]], "pyjuice.nodes.foldup_aggregate": [[24, null]], "pyjuice.nodes.foreach": [[25, null]], "pyjuice.save": [[26, null]], "pyjuice.set_block_size": [[27, null]], "pyjuice.structures": [[36, null]], "pyjuice.structures.HCLT": [[28, null]], "pyjuice.structures.HMM": [[29, null]], "pyjuice.structures.PD": [[30, null]], "pyjuice.structures.RAT_SPN": [[31, null]], "pyjuice.summate": [[32, null]], "pyjuice.unblockify": [[33, null]]}, "docnames": ["getting-started/installation", "getting-started/tutorials/01_train_pc", "getting-started/tutorials/02_construct_simple_pc", "getting-started/tutorials/03_construct_hmm", "getting-started/tutorials/04_query_pc", "getting-started/tutorials/05_common_transformations", "getting-started/tutorials/index", "getting-started/tutorials/sg_execution_times", "index", "python-api/generated/pyjuice.blockify", "python-api/generated/pyjuice.compile", "python-api/generated/pyjuice.deepcopy", "python-api/generated/pyjuice.inputs", "python-api/generated/pyjuice.load", "python-api/generated/pyjuice.merge", "python-api/generated/pyjuice.multiply", "python-api/generated/pyjuice.nodes.InputNodes", "python-api/generated/pyjuice.nodes.ProdNodes", "python-api/generated/pyjuice.nodes.SumNodes", "python-api/generated/pyjuice.nodes.distributions.Bernoulli", "python-api/generated/pyjuice.nodes.distributions.Categorical", "python-api/generated/pyjuice.nodes.distributions.DiscreteLogistic", "python-api/generated/pyjuice.nodes.distributions.Gaussian", "python-api/generated/pyjuice.nodes.distributions.MaskedCategorical", "python-api/generated/pyjuice.nodes.foldup_aggregate", "python-api/generated/pyjuice.nodes.foreach", "python-api/generated/pyjuice.save", "python-api/generated/pyjuice.set_block_size", "python-api/generated/pyjuice.structures.HCLT", "python-api/generated/pyjuice.structures.HMM", "python-api/generated/pyjuice.structures.PD", "python-api/generated/pyjuice.structures.RAT_SPN", "python-api/generated/pyjuice.summate", "python-api/generated/pyjuice.unblockify", "python-api/nodes", "python-api/pyjuice", "python-api/structures", "python-api/tensorcircuit", "sg_execution_times"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1}, "filenames": ["getting-started/installation.rst", "getting-started/tutorials/01_train_pc.rst", "getting-started/tutorials/02_construct_simple_pc.rst", "getting-started/tutorials/03_construct_hmm.rst", "getting-started/tutorials/04_query_pc.rst", "getting-started/tutorials/05_common_transformations.rst", "getting-started/tutorials/index.rst", "getting-started/tutorials/sg_execution_times.rst", "index.rst", "python-api/generated/pyjuice.blockify.rst", "python-api/generated/pyjuice.compile.rst", "python-api/generated/pyjuice.deepcopy.rst", "python-api/generated/pyjuice.inputs.rst", "python-api/generated/pyjuice.load.rst", "python-api/generated/pyjuice.merge.rst", "python-api/generated/pyjuice.multiply.rst", "python-api/generated/pyjuice.nodes.InputNodes.rst", "python-api/generated/pyjuice.nodes.ProdNodes.rst", "python-api/generated/pyjuice.nodes.SumNodes.rst", "python-api/generated/pyjuice.nodes.distributions.Bernoulli.rst", "python-api/generated/pyjuice.nodes.distributions.Categorical.rst", "python-api/generated/pyjuice.nodes.distributions.DiscreteLogistic.rst", "python-api/generated/pyjuice.nodes.distributions.Gaussian.rst", "python-api/generated/pyjuice.nodes.distributions.MaskedCategorical.rst", "python-api/generated/pyjuice.nodes.foldup_aggregate.rst", "python-api/generated/pyjuice.nodes.foreach.rst", "python-api/generated/pyjuice.save.rst", "python-api/generated/pyjuice.set_block_size.rst", "python-api/generated/pyjuice.structures.HCLT.rst", "python-api/generated/pyjuice.structures.HMM.rst", "python-api/generated/pyjuice.structures.PD.rst", "python-api/generated/pyjuice.structures.RAT_SPN.rst", "python-api/generated/pyjuice.summate.rst", "python-api/generated/pyjuice.unblockify.rst", "python-api/nodes.rst", "python-api/pyjuice.rst", "python-api/structures.rst", "python-api/tensorcircuit.rst", "sg_execution_times.rst"], "indexentries": {"__init__() (pyjuice.nodes.distributions.bernoulli method)": [[19, "pyjuice.nodes.distributions.Bernoulli.__init__", false]], "__init__() (pyjuice.nodes.distributions.categorical method)": [[20, "pyjuice.nodes.distributions.Categorical.__init__", false]], "__init__() (pyjuice.nodes.distributions.discretelogistic method)": [[21, "pyjuice.nodes.distributions.DiscreteLogistic.__init__", false]], "__init__() (pyjuice.nodes.distributions.gaussian method)": [[22, "pyjuice.nodes.distributions.Gaussian.__init__", false]], "__init__() (pyjuice.nodes.distributions.maskedcategorical method)": [[23, "pyjuice.nodes.distributions.MaskedCategorical.__init__", false]], "__init__() (pyjuice.nodes.inputnodes method)": [[16, "pyjuice.nodes.InputNodes.__init__", false]], "__init__() (pyjuice.nodes.prodnodes method)": [[17, "pyjuice.nodes.ProdNodes.__init__", false]], "__init__() (pyjuice.nodes.sumnodes method)": [[18, "pyjuice.nodes.SumNodes.__init__", false]], "__init__() (pyjuice.set_block_size method)": [[27, "pyjuice.set_block_size.__init__", false]], "backward() (pyjuice.tensorcircuit method)": [[37, "pyjuice.TensorCircuit.backward", false]], "bernoulli (class in pyjuice.nodes.distributions)": [[19, "pyjuice.nodes.distributions.Bernoulli", false]], "blockify() (in module pyjuice)": [[9, "pyjuice.blockify", false]], "categorical (class in pyjuice.nodes.distributions)": [[20, "pyjuice.nodes.distributions.Categorical", false]], "compile() (in module pyjuice)": [[10, "pyjuice.compile", false]], "deepcopy() (in module pyjuice)": [[11, "pyjuice.deepcopy", false]], "discretelogistic (class in pyjuice.nodes.distributions)": [[21, "pyjuice.nodes.distributions.DiscreteLogistic", false]], "foldup_aggregate() (in module pyjuice.nodes)": [[24, "pyjuice.nodes.foldup_aggregate", false]], "foreach() (in module pyjuice.nodes)": [[25, "pyjuice.nodes.foreach", false]], "forward() (pyjuice.tensorcircuit method)": [[37, "pyjuice.TensorCircuit.forward", false]], "gaussian (class in pyjuice.nodes.distributions)": [[22, "pyjuice.nodes.distributions.Gaussian", false]], "hclt() (in module pyjuice.structures)": [[28, "pyjuice.structures.HCLT", false]], "hmm() (in module pyjuice.structures)": [[29, "pyjuice.structures.HMM", false]], "init_param_flows() (pyjuice.tensorcircuit method)": [[37, "pyjuice.TensorCircuit.init_param_flows", false]], "inputnodes (class in pyjuice.nodes)": [[16, "pyjuice.nodes.InputNodes", false]], "inputs() (in module pyjuice)": [[12, "pyjuice.inputs", false]], "load() (in module pyjuice)": [[13, "pyjuice.load", false]], "maskedcategorical (class in pyjuice.nodes.distributions)": [[23, "pyjuice.nodes.distributions.MaskedCategorical", false]], "merge() (in module pyjuice)": [[14, "pyjuice.merge", false]], "mini_batch_em() (pyjuice.tensorcircuit method)": [[37, "pyjuice.TensorCircuit.mini_batch_em", false]], "multiply() (in module pyjuice)": [[15, "pyjuice.multiply", false]], "pd() (in module pyjuice.structures)": [[30, "pyjuice.structures.PD", false]], "prodnodes (class in pyjuice.nodes)": [[17, "pyjuice.nodes.ProdNodes", false]], "rat_spn() (in module pyjuice.structures)": [[31, "pyjuice.structures.RAT_SPN", false]], "save() (in module pyjuice)": [[26, "pyjuice.save", false]], "set_block_size (class in pyjuice)": [[27, "pyjuice.set_block_size", false]], "summate() (in module pyjuice)": [[32, "pyjuice.summate", false]], "sumnodes (class in pyjuice.nodes)": [[18, "pyjuice.nodes.SumNodes", false]], "tensorcircuit (class in pyjuice)": [[37, "pyjuice.TensorCircuit", false]], "unblockify() (in module pyjuice)": [[33, "pyjuice.unblockify", false]], "update_param_flows() (pyjuice.tensorcircuit method)": [[37, "pyjuice.TensorCircuit.update_param_flows", false]], "update_parameters() (pyjuice.tensorcircuit method)": [[37, "pyjuice.TensorCircuit.update_parameters", false]]}, "objects": {"pyjuice": [[37, 0, 1, "", "TensorCircuit"], [9, 2, 1, "", "blockify"], [10, 2, 1, "", "compile"], [11, 2, 1, "", "deepcopy"], [12, 2, 1, "", "inputs"], [13, 2, 1, "", "load"], [14, 2, 1, "", "merge"], [15, 2, 1, "", "multiply"], [26, 2, 1, "", "save"], [27, 0, 1, "", "set_block_size"], [32, 2, 1, "", "summate"], [33, 2, 1, "", "unblockify"]], "pyjuice.TensorCircuit": [[37, 1, 1, "", "backward"], [37, 1, 1, "", "forward"], [37, 1, 1, "", "init_param_flows"], [37, 1, 1, "", "mini_batch_em"], [37, 1, 1, "", "update_param_flows"], [37, 1, 1, "", "update_parameters"]], "pyjuice.nodes": [[16, 0, 1, "", "InputNodes"], [17, 0, 1, "", "ProdNodes"], [18, 0, 1, "", "SumNodes"], [24, 2, 1, "", "foldup_aggregate"], [25, 2, 1, "", "foreach"]], "pyjuice.nodes.InputNodes": [[16, 1, 1, "", "__init__"]], "pyjuice.nodes.ProdNodes": [[17, 1, 1, "", "__init__"]], "pyjuice.nodes.SumNodes": [[18, 1, 1, "", "__init__"]], "pyjuice.nodes.distributions": [[19, 0, 1, "", "Bernoulli"], [20, 0, 1, "", "Categorical"], [21, 0, 1, "", "DiscreteLogistic"], [22, 0, 1, "", "Gaussian"], [23, 0, 1, "", "MaskedCategorical"]], "pyjuice.nodes.distributions.Bernoulli": [[19, 1, 1, "", "__init__"]], "pyjuice.nodes.distributions.Categorical": [[20, 1, 1, "", "__init__"]], "pyjuice.nodes.distributions.DiscreteLogistic": [[21, 1, 1, "", "__init__"]], "pyjuice.nodes.distributions.Gaussian": [[22, 1, 1, "", "__init__"]], "pyjuice.nodes.distributions.MaskedCategorical": [[23, 1, 1, "", "__init__"]], "pyjuice.set_block_size": [[27, 1, 1, "", "__init__"]], "pyjuice.structures": [[28, 2, 1, "", "HCLT"], [29, 2, 1, "", "HMM"], [30, 2, 1, "", "PD"], [31, 2, 1, "", "RAT_SPN"]]}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "function", "Python function"]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:function"}, "terms": {"": [1, 2, 3, 5, 10, 30, 37], "0": [1, 2, 3, 4, 5, 7, 9, 10, 12, 14, 16, 17, 18, 21, 22, 27, 28, 32, 37, 38], "00": [7, 38], "000": [7, 38], "01": [1, 21, 22], "015625": 28, "01_train_pc": [1, 7], "02264": [1, 28], "02_construct_simple_pc": [2, 7], "03_construct_hmm": [3, 7], "04_query_pc": [4, 7], "05": 1, "05_common_transform": [5, 7], "1": [1, 2, 3, 4, 5, 9, 14, 15, 27, 28, 33, 37], "100": 1, "10000": 1, "1024": 3, "12": 2, "1202": 30, "128": 1, "16": 27, "1th": 2, "2": [2, 3, 4, 5, 18, 31, 32], "20": 27, "2048": 3, "2106": [1, 28], "25": [5, 9], "256": [28, 30, 31], "28": 1, "2f": 1, "3": [2, 4, 5, 30], "32": [3, 5, 9, 28], "350": 1, "3732": 30, "3d": 4, "4": [2, 4, 5, 27, 30], "4023": 3, "5": [2, 5, 7, 10, 14, 37], "512": 1, "6": [2, 4], "60000": 1, "64": [27, 28], "7": 4, "8": [2, 5, 10, 37], "9": 1, "A": [2, 16, 17, 18, 19, 20, 21, 22, 23, 37, 38], "And": 2, "By": [1, 5, 15], "For": [1, 2, 3, 4], "If": [2, 15, 32], "In": [2, 3, 4, 5], "It": [8, 15, 16, 17, 18, 32, 37], "NOT": 22, "That": 2, "The": [0, 1, 2, 3, 4, 13, 22, 26], "There": 5, "To": 5, "__init__": [16, 17, 18, 19, 20, 21, 22, 23, 27], "_no_set_meta_param": 16, "about": [2, 4], "abov": [2, 5], "accordingli": 3, "accumul": [1, 10, 37], "acycl": 1, "ad": [9, 10, 22, 37], "add": [5, 37], "addit": 1, "affect": [12, 32], "after": 3, "aggreg": 24, "aim": 8, "algorithm": 5, "align": 5, "all": [2, 3, 4, 5, 6, 15, 24, 25, 32, 38], "allow": [3, 5, 9, 10, 37], "allow_modify_flow": 37, "alpha": 29, "also": [1, 2, 4, 5], "altern": [0, 2, 4, 12, 25, 32], "although": 2, "alwai": [2, 11], "amen": 1, "an": [1, 5, 6, 7, 9, 10, 12, 15, 24, 25, 26, 32, 33, 37], "ani": [1, 2, 31, 37], "anoth": [2, 4, 5], "api": 2, "appli": 5, "apply_cudagraph": 37, "approxim": 22, "ar": [1, 2, 4, 5, 10, 22, 37], "arang": 2, "arg": [14, 15, 32], "argument": [2, 3], "arxiv": [1, 28, 30], "ask": 4, "assign": 1, "assum": [1, 2, 3, 4, 15], "atom": [10, 37], "attribut": [19, 20, 21, 22, 23], "avoid": [10, 37], "b": [4, 37], "backbon": [1, 28], "backward": [1, 37], "base": [1, 3], "basic": [1, 2], "batch": 1, "batch_siz": [1, 4, 37], "becom": 15, "befor": 1, "begin": 3, "behavior": 22, "being": 1, "below": [1, 25], "best": 5, "beta": 29, "better": [10, 37], "between": [2, 11, 30], "bin": 28, "bitset": 16, "block": [2, 3, 9, 10, 11, 12, 15, 16, 17, 18, 27, 28, 29, 30, 31, 32, 33, 37], "block_siz": [2, 3, 5, 12, 15, 16, 17, 18, 27, 28, 29, 30, 31, 32, 33], "blockifi": 5, "bool": [9, 10, 11, 15, 16, 29, 30, 33, 37], "both": [2, 3], "bottom": [24, 25], "break": 1, "built": 5, "bump": 5, "cach": [24, 37], "call": [25, 37], "callabl": [24, 25, 30, 37], "can": [0, 1, 2, 3, 4, 5, 22, 25], "case": [2, 4], "categor": [2, 3, 4, 5, 14, 23, 27, 28, 30, 31], "categori": [2, 4, 20, 21, 23], "caus": [10, 37], "cd": 0, "ch": [17, 18], "chang": [5, 12, 32], "child": [1, 2, 3, 5, 15, 17, 18, 32], "children": [2, 3, 15, 17, 32], "chow": [1, 28], "chunk": 28, "chunk_siz": 28, "circuit": 8, "circuitnod": [9, 10, 11, 12, 13, 14, 15, 17, 18, 24, 25, 26, 32, 33, 37], "circuitoptim": 1, "circuitschedul": 1, "class": [16, 17, 18, 19, 20, 21, 22, 23, 27, 28, 30, 31, 37], "clone": [0, 37], "code": [1, 2, 3, 4, 5, 6], "collaps": 5, "column": [2, 18, 32], "com": 0, "command": 0, "compact": 1, "compar": 2, "compat": 30, "compil": [1, 3, 4, 12, 26, 32, 37], "comput": [1, 24, 28, 37], "compute_param_flow": 37, "concaten": 5, "connect": [2, 5, 15, 17, 18, 30, 32], "consid": [5, 28], "consist": 4, "construct": [1, 4, 5, 6, 7, 12, 15, 27, 28, 29, 32], "consum": [10, 37], "contain": 6, "context": [3, 27], "copi": [5, 11, 33, 37], "correspond": [4, 37], "could": 5, "count": [2, 37], "cover": [1, 4], "cpu": [1, 10, 37], "creat": [2, 3, 4, 5, 11, 16, 17, 18], "crucial": [2, 3, 5], "cuda": [1, 4], "curr_x": 3, "curr_z": 3, "current": [33, 37], "custom": 37, "dag": [1, 10, 37], "data": [1, 4, 22, 28, 30], "data_shap": 30, "dataload": 1, "date": 4, "decreas": [28, 33], "deepcopi": [5, 37], "default": 15, "defin": [1, 2, 3, 4, 5, 8, 12, 15, 18, 29, 32], "demonstr": [1, 3, 4, 6], "denot": 15, "depth": [30, 31], "deriv": 3, "detach": 1, "detail": 1, "determin": 3, "deviat": [21, 22], "devic": [1, 4], "dict": [11, 24, 28, 30, 31, 37], "dictionari": [11, 24, 33], "differ": [2, 6], "dimens": [4, 30], "direct": 1, "directli": [22, 25], "disable_gpu_compil": [10, 37], "discret": 21, "disjoint": 15, "dismiss": 4, "displai": [10, 37], "dist": [1, 2, 3, 4, 5, 12, 14, 16, 27], "distribut": [1, 2, 3, 4, 5, 12, 16, 28, 30, 31], "divic": [12, 32], "divid": 28, "do": [1, 2, 4, 5, 25, 33, 37], "doe": [12, 32], "done": 4, "down": 25, "download": [1, 2, 3, 4, 5, 6], "drop_last": 1, "dry": 1, "dtype": 5, "duplic": 3, "dure": 5, "e": [0, 2, 3, 4, 5, 12, 15, 30, 32], "each": [2, 6, 12, 30, 32], "easi": 8, "easiest": 0, "easili": 5, "edg": [2, 5, 10, 15, 18, 32, 37], "edge_id": [2, 5, 15, 17, 18, 32], "effect": 2, "effici": [1, 2, 3, 5, 8], "either": 30, "els": 3, "em": [1, 37], "emiss": [3, 29], "encod": 4, "end": [1, 2, 3, 4, 5, 13, 26], "enough": 3, "ensur": 2, "entri": 4, "environ": 8, "epoch": 1, "equal": 2, "equival": [1, 5, 9, 10, 33, 37], "estim": 28, "etc": 3, "evalu": 37, "even": 5, "everi": [2, 4, 5, 10, 15, 18, 30, 32, 37], "evid": 4, "exampl": [1, 2, 3, 4, 5, 6, 7, 14, 25, 27, 38], "except": 5, "execut": [7, 38], "exist": [2, 3], "explor": 6, "f": 1, "fact": [2, 4], "fals": [1, 4, 10, 11, 15, 16, 30, 37], "familiar": 2, "featur": [2, 6], "fed": 2, "feed": 4, "feel": 6, "file": [7, 13, 26, 38], "final": 2, "first": [2, 14, 15, 32], "float": [1, 9, 10, 21, 22, 28, 37], "flow": [1, 10, 37], "flows_memori": [1, 37], "fname": [13, 26], "follow": [0, 1, 2, 3, 4, 5, 8], "foral": 4, "forc": [10, 37], "force_gpu_compil": [10, 37], "force_use_bf16": 37, "force_use_fp32": 37, "forward": [1, 37], "four": 4, "fraction": [5, 9, 10, 37], "free": 6, "friendli": 1, "from": [0, 1, 2, 3, 7, 12, 13, 31, 37, 38], "full": [1, 2, 3, 4, 5], "full_mask": 23, "fulli": [2, 5, 18, 32], "func": [24, 25], "function": [2, 3, 4, 6, 7, 22, 24, 25, 37], "g": [2, 3, 4, 30], "galleri": [1, 2, 3, 4, 5, 6, 38], "gamma": 29, "gener": [1, 2, 3, 5, 6, 9, 30, 31], "get": [2, 7], "git": 0, "github": 0, "given": [1, 4, 15, 32], "go": [1, 2, 3, 4, 5], "goal": [1, 2], "gpu": [1, 4, 9, 10, 28, 37], "gradient": [1, 10, 37], "graph": 1, "group": [5, 10, 37], "h": 30, "ha": [2, 4, 5], "handi": 3, "have": [2, 3, 4, 5, 12, 15, 32], "hclt": 1, "here": 2, "hidden": [1, 28, 29], "hide": 1, "high": [5, 9], "higher": [10, 37], "hmm": [6, 7], "homogen": 29, "how": [1, 3, 4, 5, 6, 10, 37], "howev": [2, 3], "http": [1, 28, 30, 31], "i": [0, 1, 2, 3, 4, 5, 8, 12, 15, 16, 17, 18, 22, 25, 32, 37], "i00": [5, 14], "i01": [5, 14], "i10": [5, 14], "i11": [5, 14], "id": [2, 12], "ident": 14, "imag": 30, "img": [1, 2, 3, 4, 5], "implement": 5, "import": [1, 2, 3, 4, 5], "increas": 5, "independ": 5, "indic": [2, 4], "infer": 8, "influenc": 4, "inform": 28, "inhomogen": 29, "init": 29, "init_param_flow": [1, 37], "init_paramet": [4, 5, 22], "initi": [3, 22, 37], "input": [1, 3, 4, 5, 9, 11, 14, 16, 27, 28, 30, 31, 32, 33, 37], "input_dist": [28, 30, 31], "input_layer_fn": [30, 37], "input_node_param": [28, 30, 31], "input_node_typ": [28, 30, 31], "inputnod": [1, 12, 15, 32], "instal": 8, "instanc": 1, "instruct": 8, "int": [9, 10, 11, 12, 16, 17, 18, 20, 21, 23, 27, 28, 29, 30, 31, 32, 33, 37], "integ": 30, "interv": 30, "introduc": 2, "ipynb": [1, 2, 3, 4, 5], "item": 1, "iter": 25, "ith": [15, 17, 18, 32], "its": [1, 2], "j": [2, 15, 17, 18, 32], "jl": 0, "jpc": [13, 26], "jth": [15, 17, 18, 32], "juic": [0, 1, 2, 3, 4, 5], "jupyt": [1, 2, 3, 4, 5, 6], "just": [1, 33], "k": 3, "keep_zero_param": 37, "kernel": 1, "keys_to_copi": 33, "keyword": 2, "kwarg": [12, 15, 16, 17, 18, 24, 32, 37], "larg": [2, 3, 5], "larger": 2, "last": 4, "latent": [1, 28, 29, 30, 31], "launch": 1, "layer": [10, 37], "layer_sparsity_tol": [10, 37], "learn": [2, 3, 5, 6], "len": 1, "length": 29, "less": [10, 37], "let": [1, 2, 3, 5], "leverag": [1, 3], "librari": [6, 8], "likelihood": [1, 37], "line": 2, "list": [2, 3, 12, 15, 32], "liu": [1, 28], "ll": [1, 4, 37], "ll_weight": 37, "log": [1, 37], "logist": 21, "logspace_flow": 37, "long": 5, "look": 8, "loop": 1, "lower": [10, 37], "lr": 1, "m": [2, 4, 5], "m00": 14, "m01": 14, "mai": 4, "manag": [3, 27], "mani": [10, 37], "manipul": 5, "manual": [1, 5], "map": 11, "markov": 29, "mask": [4, 23], "mask_mod": 23, "math": 2, "mathbf": [1, 4], "mathrm": 4, "matrix": [15, 17, 18, 32], "max_block_s": 11, "max_cdf_power_of_2": 3, "max_num_partit": [10, 37], "max_prod_block_conn": 30, "max_split_depth": 30, "max_target_block_s": [5, 9], "max_tied_ns_per_parflow_block": [10, 37], "maximum": [5, 9, 10, 11, 30, 37], "mb": [7, 38], "mean": [1, 2, 3, 22], "mem": [7, 38], "member": 37, "memori": [10, 28, 37], "mention": 5, "method": [1, 16, 17, 18, 19, 20, 21, 22, 23], "milestone_step": 1, "min": 3, "min_sigma": 22, "min_std": 21, "mini": 1, "mini_batch_em": [1, 37], "minimum": 21, "miss": 4, "missing_mask": 4, "mlr": 31, "model": [1, 3, 26, 29], "modul": [1, 10, 37], "move": [1, 4], "ms0": 5, "ms00": 5, "ms01": 5, "ms1": 5, "ms2": 5, "mu": 22, "multi_linear": 1, "multipl": [2, 5], "multipli": [2, 3, 4, 5, 14, 17, 27, 37], "multivari": 12, "must": 3, "mutual": 28, "n": [1, 2, 3, 4, 5, 10, 25, 38], "n0": 14, "n1": 14, "n_new": 14, "name": [13, 26], "ndarrai": 17, "necessari": [2, 3, 5], "need": [1, 2, 4, 30], "neg": 2, "negate_pflow": 37, "neither": 5, "network": 1, "neural": 1, "new": 3, "new_n": 5, "new_ns1": 5, "new_ns2": 5, "new_ns3": 5, "new_param": 37, "ni": 27, "ni0": [2, 4, 5], "ni1": [2, 4, 5], "ni2": 5, "ni3": 5, "nn": [1, 10, 37], "node": [1, 3, 4, 5, 8, 10, 12, 13, 14, 15, 27, 28, 30, 31, 32, 33, 37], "nodes1": [15, 32], "none": [2, 3, 10, 11, 12, 15, 16, 17, 18, 22, 24, 28, 29, 30, 31, 32, 33, 37], "nor": 5, "note": [1, 2, 3, 5, 15, 22, 25, 32], "notebook": [1, 2, 3, 4, 5, 6], "now": 1, "ns0": 5, "ns1": [5, 14], "ns2": 5, "ns_input": 3, "ns_sum": 3, "num_bin": 28, "num_cat": [2, 3, 4, 5, 14, 20, 21, 23, 27, 28, 30, 31], "num_categori": 4, "num_child_node_vector": 2, "num_emit": [3, 29], "num_lat": [1, 3, 28, 29, 30, 31], "num_nod": [4, 12, 27, 32], "num_node_block": [2, 3, 5, 12, 14, 15, 16, 17, 18, 27, 32], "num_piec": 31, "num_repetit": 31, "num_root": 37, "num_root_n": 28, "num_target_var": 4, "num_var": [4, 31, 37], "number": [2, 3, 10, 12, 16, 17, 18, 20, 21, 23, 28, 30, 31, 32, 37], "numpi": 1, "object": [5, 12, 15, 24, 32], "observ": 4, "one": 4, "onli": [1, 2, 3], "oper": [10, 37], "optim": 1, "option": [1, 5, 10, 11, 12, 15, 16, 17, 18, 24, 29, 30, 32, 33, 37], "order": 5, "org": [1, 28, 30], "origin": [3, 5, 11, 37], "origin_ns_onli": 37, "our": 8, "out": [1, 4, 28], "output": [1, 2, 4, 5, 15], "overhead": 1, "p": [1, 3, 4], "packag": [2, 3, 5], "pair": [2, 5], "parallel": 3, "param": [12, 16, 18, 37], "paramet": [1, 2, 3, 4, 5, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 37], "parent": [2, 5], "partial": 2, "partit": [10, 37], "pass": [1, 22], "pattern": 2, "pc": [3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 24, 25, 26, 27, 29, 30, 32, 33, 37], "pdf": [1, 28, 30, 31], "peharz20a": 31, "per": 24, "perform": [1, 37], "perturb": 22, "pip": 0, "pipelin": 1, "png": [1, 2, 3, 4, 5], "point": 30, "pointer": 1, "pose": 2, "posit": 2, "possibl": [5, 9], "potenti": [9, 10, 37], "power": 2, "practic": 5, "prepar": 4, "press": 31, "previou": 4, "print": [1, 27], "probabilist": [4, 8], "probabl": 3, "proce": [1, 2, 4], "procedur": 5, "proceed": 31, "prod_domin": 30, "prodnod": [1, 15, 32], "prodnodesch": 15, "product": [1, 15, 17, 30], "progress": [10, 37], "project": 6, "propagation_alg": 37, "properli": 5, "properti": 33, "provid": [2, 5, 8], "pseudo": [5, 10, 37], "pseudocount": [1, 37], "py": [1, 2, 3, 4, 5, 7], "pyjuic": [0, 1, 2, 3, 4, 5, 6], "python": [1, 2, 3, 4, 5, 6, 8], "pytorch": 1, "queri": [6, 7], "quickli": 1, "quotient": 4, "random": 31, "rang": [1, 3, 9, 21, 23], "readi": 1, "record_cudagraph": [1, 37], "recurs": 33, "redund": 2, "region": 14, "remain": [3, 5, 14, 15, 32], "repeat": 2, "repres": [4, 10, 16, 17, 18, 19, 20, 21, 22, 23], "represent": 1, "requir": [1, 2, 15, 32], "rescal": 37, "reshap": 1, "respect": [1, 2, 4], "restrict": 2, "return": [4, 9, 10, 11, 12, 13, 15, 32, 33], "return_cach": 37, "reus": [3, 30], "rev_rang": 23, "revers": 25, "root": [1, 5, 10, 24, 25, 28, 37], "root_n": [9, 11, 24, 25, 33, 37], "run": [0, 1, 5, 28], "safe": 1, "sai": 4, "same": [2, 3, 4, 5, 10, 11, 12, 15, 32, 37], "sampl": [4, 28], "scalabl": 8, "schedul": 1, "scope": [5, 16, 31], "search": 9, "second": [2, 5], "see": 25, "seemingli": 2, "semant": [12, 32], "separ": 4, "seq_length": [3, 29], "sequenc": [12, 16, 17, 18, 29, 30, 33, 37], "set": [1, 2, 3, 4, 5, 10, 12, 15, 16, 18, 27, 32, 37], "set_block_s": [3, 5], "shall": 2, "shape": [2, 4, 30], "share": [10, 37], "shortcut": 2, "should": [2, 4, 9, 12, 13, 23, 26, 27, 32], "show": 2, "showcas": 6, "shuffl": 1, "sigma": [22, 28], "similar": [1, 2, 4], "similarli": [1, 4], "simpl": [4, 5, 6, 7], "simplic": 1, "simultan": [4, 5], "sinc": [2, 4, 5], "singl": 5, "size": [1, 2, 3, 4, 9, 11, 12, 15, 16, 17, 18, 27, 28, 29, 30, 31, 32, 33, 37], "small": [10, 37], "so": [1, 2, 3], "soft": 4, "some": 5, "someth": 25, "sourc": [0, 1, 2, 3, 4, 5, 6], "space": [28, 29, 30, 31], "spars": [10, 37], "sparse_edg": 15, "sparsity_toler": [5, 9], "specif": [1, 2, 3, 4, 25], "specifi": [1, 2, 3, 4, 5, 15, 22, 30], "speed": [12, 32], "sphinx": [1, 2, 3, 4, 5, 6], "sphinx_gallery_thumbnail_path": [1, 2, 3, 4, 5], "split": [30, 31], "split_interv": 30, "split_point": 30, "spn": 31, "stall": [10, 37], "standard": [21, 22], "start": [1, 2, 3, 5, 7], "statement": 25, "std": 22, "step": [1, 37], "step_siz": [1, 37], "step_size_resc": 37, "store": [1, 24], "str": [13, 23, 26, 30, 33, 37], "string": 37, "structur": [1, 3, 6, 7, 8], "structure_typ": 30, "sub": 31, "subclass": [12, 15, 32, 37], "subset": 4, "suggest": 2, "sum": [1, 3, 5, 18, 30, 32], "sum_domin": 30, "summat": [2, 3, 4, 5, 14, 18, 27], "sumnod": [1, 15, 32], "sumnodesch": 32, "support": 8, "t": [2, 3], "t0": 1, "t1": 1, "t2": 1, "take": [2, 5, 8], "target": [27, 33], "target_var": 4, "tensor": [2, 4, 5, 12, 15, 16, 17, 18, 28, 29, 31, 32, 37], "tensorcircuit": [8, 26], "tensordataset": 1, "test_ll": 1, "text": 4, "th": [2, 15, 17], "thei": [2, 5], "therefor": [1, 2], "thi": [1, 2, 3, 4, 5, 6, 22, 30, 37], "throughout": 1, "ti": [3, 5, 10, 11, 37], "tie": [5, 11, 30], "tie_homogeneous_param": 30, "tie_param": [3, 5, 11], "time": [1, 2], "togeth": 14, "top": 25, "topolog": 1, "torch": [1, 2, 3, 4, 5, 10, 16, 28, 29, 37], "torchvis": 1, "total": [7, 12, 32, 38], "train": [4, 6, 7, 8], "train_data": 1, "train_dataset": 1, "train_ll": 1, "train_load": 1, "transform": [3, 6, 7], "transit": [3, 29], "travers": [24, 25], "tree": [1, 28], "true": [1, 3, 4, 5, 9, 10, 15, 25, 29, 33, 37], "try": [2, 5, 37], "tupl": [21, 30], "tutori": [1, 2, 3, 4, 5, 7, 8], "tutorials_jupyt": 6, "tutorials_python": 6, "two": [2, 4, 5], "type": [10, 23, 28, 30, 31], "u": [2, 3, 5], "uncompil": 26, "unconnect": 5, "under": 2, "union": [12, 15, 16, 26, 30, 32, 37], "unless": 15, "up": [24, 25], "updat": 37, "update_param_flow": 37, "update_paramet": 37, "updated_param": 37, "us": [1, 2, 3, 4, 5, 6, 8, 9, 10, 22, 25, 28, 37], "usag": [5, 6], "use_cuda": 9, "user": 1, "util": [1, 3], "v115": 31, "val": [1, 4], "val_rang": 21, "valid_data": 1, "valid_dataset": 1, "valid_load": 1, "valu": [4, 10, 21, 22, 37], "var": [2, 3, 12, 27], "var_map": [5, 11], "variabl": [1, 2, 3, 4, 5, 11, 12, 15, 16, 28, 31, 32], "variat": 28, "variou": 6, "vector": [1, 2, 3, 5, 12, 15, 16, 17, 18, 32], "verbos": [10, 37], "via": [0, 25], "w": [4, 30], "wai": [0, 1], "want": [3, 4], "we": [1, 2, 3, 4, 5, 15], "weight": 37, "welcom": 6, "well": 37, "what": 5, "when": [2, 9, 28], "whenev": 5, "where": [2, 15], "whether": [10, 11, 29, 30, 33, 37], "which": [1, 2, 3, 4], "while": [1, 5], "why": 4, "within": [5, 10, 37], "without": 1, "wonder": 4, "x": [1, 4, 28], "x_": 3, "x_1": 4, "x_2": 4, "you": [0, 2, 5, 22], "your": 6, "z_": 3, "zero": [1, 9, 37], "zero_grad": 1, "zero_param_mask": 18, "zerol": [1, 37], "zip": [1, 2, 3, 4, 5, 6]}, "titles": ["Installation", "Train a PC", "Construct Simple PCs", "Construct an HMM", "Query a PC", "PC Structural Transformation Functions", "Tutorials", "Computation times", "Welcome to PyJuice\u2019s documentation!", "pyjuice.blockify", "pyjuice.compile", "pyjuice.deepcopy", "pyjuice.inputs", "pyjuice.load", "pyjuice.merge", "pyjuice.multiply", "pyjuice.nodes.InputNodes", "pyjuice.nodes.ProdNodes", "pyjuice.nodes.SumNodes", "pyjuice.nodes.distributions.Bernoulli", "pyjuice.nodes.distributions.Categorical", "pyjuice.nodes.distributions.DiscreteLogistic", "pyjuice.nodes.distributions.Gaussian", "pyjuice.nodes.distributions.MaskedCategorical", "pyjuice.nodes.foldup_aggregate", "pyjuice.nodes.foreach", "pyjuice.save", "pyjuice.set_block_size", "pyjuice.structures.HCLT", "pyjuice.structures.HMM", "pyjuice.structures.PD", "pyjuice.structures.RAT_SPN", "pyjuice.summate", "pyjuice.unblockify", "pyjuice.nodes", "pyjuice", "pyjuice.structures", "pyjuice.TensorCircuit", "Computation times"], "titleterms": {"": 8, "adjust": 5, "an": 3, "api": 8, "bernoulli": 19, "block": 5, "blockifi": 9, "categor": 20, "clone": 5, "compil": [10, 35], "comput": [4, 7, 38], "condit": 4, "construct": [2, 3], "creat": 1, "creation": 35, "dataset": 1, "deepcopi": 11, "discretelogist": 21, "distribut": [19, 20, 21, 22, 23, 34], "document": 8, "foldup_aggreg": 24, "foreach": 25, "function": 5, "gaussian": 22, "gener": 4, "get": 8, "hclt": 28, "hmm": [3, 29], "input": [2, 12, 34], "inputnod": 16, "instal": 0, "io": 35, "load": [1, 13], "margin": 4, "maskedcategor": 23, "merg": [5, 14], "method": 34, "mnist": 1, "multipli": 15, "node": [2, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 34], "pc": [1, 2, 4, 5, 35], "pd": 30, "probabl": 4, "prodnod": 17, "product": 2, "pyjuic": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37], "queri": 4, "rat_spn": 31, "save": 26, "set_block_s": 27, "simpl": 2, "size": 5, "start": 8, "structur": [5, 28, 29, 30, 31, 35, 36], "sum": 2, "summat": 32, "sumnod": 18, "tensorcircuit": 37, "time": [7, 38], "train": 1, "transform": [5, 35], "tutori": 6, "unblockifi": 33, "welcom": 8}}) \ No newline at end of file +Search.setIndex({"alltitles": {"API": [[8, "api"]], "Adjust block sizes": [[5, "adjust-block-sizes"]], "Clone a PC": [[5, "clone-a-pc"]], "Computation times": [[7, null], [38, null]], "Compute conditional probabilities": [[4, "compute-conditional-probabilities"]], "Compute marginal probabilities": [[4, "compute-marginal-probabilities"]], "Construct Simple PCs": [[2, null]], "Construct an HMM": [[3, null]], "Create the PC": [[1, "create-the-pc"]], "Generate a PC": [[4, "generate-a-pc"]], "Getting started": [[8, "getting-started"]], "IO": [[35, "io"]], "Input Distributions": [[34, "input-distributions"]], "Input nodes": [[2, "input-nodes"]], "Installation": [[0, null]], "Load the MNIST Dataset": [[1, "load-the-mnist-dataset"]], "Merge PCs": [[5, "merge-pcs"]], "Methods": [[34, "methods"]], "Nodes": [[34, "nodes"]], "PC Compilation": [[35, "pc-compilation"]], "PC Creation": [[35, "pc-creation"]], "PC Structural Transformation Functions": [[5, null]], "PC Structure Transformation": [[35, "pc-structure-transformation"]], "Product nodes": [[2, "product-nodes"]], "Query a PC": [[4, null]], "Sum nodes": [[2, "sum-nodes"]], "Train a PC": [[1, null]], "Train the PC": [[1, "train-the-pc"]], "Tutorials": [[6, null]], "Welcome to PyJuice\u2019s documentation!": [[8, null]], "pyjuice": [[35, null]], "pyjuice.TensorCircuit": [[37, null]], "pyjuice.blockify": [[9, null]], "pyjuice.compile": [[10, null]], "pyjuice.deepcopy": [[11, null]], "pyjuice.inputs": [[12, null]], "pyjuice.load": [[13, null]], "pyjuice.merge": [[14, null]], "pyjuice.multiply": [[15, null]], "pyjuice.nodes": [[34, null]], "pyjuice.nodes.InputNodes": [[16, null]], "pyjuice.nodes.ProdNodes": [[17, null]], "pyjuice.nodes.SumNodes": [[18, null]], "pyjuice.nodes.distributions.Bernoulli": [[19, null]], "pyjuice.nodes.distributions.Categorical": [[20, null]], "pyjuice.nodes.distributions.DiscreteLogistic": [[21, null]], "pyjuice.nodes.distributions.Gaussian": [[22, null]], "pyjuice.nodes.distributions.MaskedCategorical": [[23, null]], "pyjuice.nodes.foldup_aggregate": [[24, null]], "pyjuice.nodes.foreach": [[25, null]], "pyjuice.save": [[26, null]], "pyjuice.set_block_size": [[27, null]], "pyjuice.structures": [[36, null]], "pyjuice.structures.HCLT": [[28, null]], "pyjuice.structures.HMM": [[29, null]], "pyjuice.structures.PD": [[30, null]], "pyjuice.structures.RAT_SPN": [[31, null]], "pyjuice.summate": [[32, null]], "pyjuice.unblockify": [[33, null]]}, "docnames": ["getting-started/installation", "getting-started/tutorials/01_train_pc", "getting-started/tutorials/02_construct_simple_pc", "getting-started/tutorials/03_construct_hmm", "getting-started/tutorials/04_query_pc", "getting-started/tutorials/05_common_transformations", "getting-started/tutorials/index", "getting-started/tutorials/sg_execution_times", "index", "python-api/generated/pyjuice.blockify", "python-api/generated/pyjuice.compile", "python-api/generated/pyjuice.deepcopy", "python-api/generated/pyjuice.inputs", "python-api/generated/pyjuice.load", "python-api/generated/pyjuice.merge", "python-api/generated/pyjuice.multiply", "python-api/generated/pyjuice.nodes.InputNodes", "python-api/generated/pyjuice.nodes.ProdNodes", "python-api/generated/pyjuice.nodes.SumNodes", "python-api/generated/pyjuice.nodes.distributions.Bernoulli", "python-api/generated/pyjuice.nodes.distributions.Categorical", "python-api/generated/pyjuice.nodes.distributions.DiscreteLogistic", "python-api/generated/pyjuice.nodes.distributions.Gaussian", "python-api/generated/pyjuice.nodes.distributions.MaskedCategorical", "python-api/generated/pyjuice.nodes.foldup_aggregate", "python-api/generated/pyjuice.nodes.foreach", "python-api/generated/pyjuice.save", "python-api/generated/pyjuice.set_block_size", "python-api/generated/pyjuice.structures.HCLT", "python-api/generated/pyjuice.structures.HMM", "python-api/generated/pyjuice.structures.PD", "python-api/generated/pyjuice.structures.RAT_SPN", "python-api/generated/pyjuice.summate", "python-api/generated/pyjuice.unblockify", "python-api/nodes", "python-api/pyjuice", "python-api/structures", "python-api/tensorcircuit", "sg_execution_times"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1}, "filenames": ["getting-started/installation.rst", "getting-started/tutorials/01_train_pc.rst", "getting-started/tutorials/02_construct_simple_pc.rst", "getting-started/tutorials/03_construct_hmm.rst", "getting-started/tutorials/04_query_pc.rst", "getting-started/tutorials/05_common_transformations.rst", "getting-started/tutorials/index.rst", "getting-started/tutorials/sg_execution_times.rst", "index.rst", "python-api/generated/pyjuice.blockify.rst", "python-api/generated/pyjuice.compile.rst", "python-api/generated/pyjuice.deepcopy.rst", "python-api/generated/pyjuice.inputs.rst", "python-api/generated/pyjuice.load.rst", "python-api/generated/pyjuice.merge.rst", "python-api/generated/pyjuice.multiply.rst", "python-api/generated/pyjuice.nodes.InputNodes.rst", "python-api/generated/pyjuice.nodes.ProdNodes.rst", "python-api/generated/pyjuice.nodes.SumNodes.rst", "python-api/generated/pyjuice.nodes.distributions.Bernoulli.rst", "python-api/generated/pyjuice.nodes.distributions.Categorical.rst", "python-api/generated/pyjuice.nodes.distributions.DiscreteLogistic.rst", "python-api/generated/pyjuice.nodes.distributions.Gaussian.rst", "python-api/generated/pyjuice.nodes.distributions.MaskedCategorical.rst", "python-api/generated/pyjuice.nodes.foldup_aggregate.rst", "python-api/generated/pyjuice.nodes.foreach.rst", "python-api/generated/pyjuice.save.rst", "python-api/generated/pyjuice.set_block_size.rst", "python-api/generated/pyjuice.structures.HCLT.rst", "python-api/generated/pyjuice.structures.HMM.rst", "python-api/generated/pyjuice.structures.PD.rst", "python-api/generated/pyjuice.structures.RAT_SPN.rst", "python-api/generated/pyjuice.summate.rst", "python-api/generated/pyjuice.unblockify.rst", "python-api/nodes.rst", "python-api/pyjuice.rst", "python-api/structures.rst", "python-api/tensorcircuit.rst", "sg_execution_times.rst"], "indexentries": {"__init__() (pyjuice.nodes.distributions.bernoulli method)": [[19, "pyjuice.nodes.distributions.Bernoulli.__init__", false]], "__init__() (pyjuice.nodes.distributions.categorical method)": [[20, "pyjuice.nodes.distributions.Categorical.__init__", false]], "__init__() (pyjuice.nodes.distributions.discretelogistic method)": [[21, "pyjuice.nodes.distributions.DiscreteLogistic.__init__", false]], "__init__() (pyjuice.nodes.distributions.gaussian method)": [[22, "pyjuice.nodes.distributions.Gaussian.__init__", false]], "__init__() (pyjuice.nodes.distributions.maskedcategorical method)": [[23, "pyjuice.nodes.distributions.MaskedCategorical.__init__", false]], "__init__() (pyjuice.nodes.inputnodes method)": [[16, "pyjuice.nodes.InputNodes.__init__", false]], "__init__() (pyjuice.nodes.prodnodes method)": [[17, "pyjuice.nodes.ProdNodes.__init__", false]], "__init__() (pyjuice.nodes.sumnodes method)": [[18, "pyjuice.nodes.SumNodes.__init__", false]], "__init__() (pyjuice.set_block_size method)": [[27, "pyjuice.set_block_size.__init__", false]], "backward() (pyjuice.tensorcircuit method)": [[37, "pyjuice.TensorCircuit.backward", false]], "bernoulli (class in pyjuice.nodes.distributions)": [[19, "pyjuice.nodes.distributions.Bernoulli", false]], "blockify() (in module pyjuice)": [[9, "pyjuice.blockify", false]], "categorical (class in pyjuice.nodes.distributions)": [[20, "pyjuice.nodes.distributions.Categorical", false]], "compile() (in module pyjuice)": [[10, "pyjuice.compile", false]], "deepcopy() (in module pyjuice)": [[11, "pyjuice.deepcopy", false]], "discretelogistic (class in pyjuice.nodes.distributions)": [[21, "pyjuice.nodes.distributions.DiscreteLogistic", false]], "foldup_aggregate() (in module pyjuice.nodes)": [[24, "pyjuice.nodes.foldup_aggregate", false]], "foreach() (in module pyjuice.nodes)": [[25, "pyjuice.nodes.foreach", false]], "forward() (pyjuice.tensorcircuit method)": [[37, "pyjuice.TensorCircuit.forward", false]], "gaussian (class in pyjuice.nodes.distributions)": [[22, "pyjuice.nodes.distributions.Gaussian", false]], "hclt() (in module pyjuice.structures)": [[28, "pyjuice.structures.HCLT", false]], "hmm() (in module pyjuice.structures)": [[29, "pyjuice.structures.HMM", false]], "init_param_flows() (pyjuice.tensorcircuit method)": [[37, "pyjuice.TensorCircuit.init_param_flows", false]], "inputnodes (class in pyjuice.nodes)": [[16, "pyjuice.nodes.InputNodes", false]], "inputs() (in module pyjuice)": [[12, "pyjuice.inputs", false]], "load() (in module pyjuice)": [[13, "pyjuice.load", false]], "maskedcategorical (class in pyjuice.nodes.distributions)": [[23, "pyjuice.nodes.distributions.MaskedCategorical", false]], "merge() (in module pyjuice)": [[14, "pyjuice.merge", false]], "mini_batch_em() (pyjuice.tensorcircuit method)": [[37, "pyjuice.TensorCircuit.mini_batch_em", false]], "multiply() (in module pyjuice)": [[15, "pyjuice.multiply", false]], "pd() (in module pyjuice.structures)": [[30, "pyjuice.structures.PD", false]], "prodnodes (class in pyjuice.nodes)": [[17, "pyjuice.nodes.ProdNodes", false]], "rat_spn() (in module pyjuice.structures)": [[31, "pyjuice.structures.RAT_SPN", false]], "save() (in module pyjuice)": [[26, "pyjuice.save", false]], "set_block_size (class in pyjuice)": [[27, "pyjuice.set_block_size", false]], "summate() (in module pyjuice)": [[32, "pyjuice.summate", false]], "sumnodes (class in pyjuice.nodes)": [[18, "pyjuice.nodes.SumNodes", false]], "tensorcircuit (class in pyjuice)": [[37, "pyjuice.TensorCircuit", false]], "unblockify() (in module pyjuice)": [[33, "pyjuice.unblockify", false]], "update_param_flows() (pyjuice.tensorcircuit method)": [[37, "pyjuice.TensorCircuit.update_param_flows", false]], "update_parameters() (pyjuice.tensorcircuit method)": [[37, "pyjuice.TensorCircuit.update_parameters", false]]}, "objects": {"pyjuice": [[37, 0, 1, "", "TensorCircuit"], [9, 2, 1, "", "blockify"], [10, 2, 1, "", "compile"], [11, 2, 1, "", "deepcopy"], [12, 2, 1, "", "inputs"], [13, 2, 1, "", "load"], [14, 2, 1, "", "merge"], [15, 2, 1, "", "multiply"], [26, 2, 1, "", "save"], [27, 0, 1, "", "set_block_size"], [32, 2, 1, "", "summate"], [33, 2, 1, "", "unblockify"]], "pyjuice.TensorCircuit": [[37, 1, 1, "", "backward"], [37, 1, 1, "", "forward"], [37, 1, 1, "", "init_param_flows"], [37, 1, 1, "", "mini_batch_em"], [37, 1, 1, "", "update_param_flows"], [37, 1, 1, "", "update_parameters"]], "pyjuice.nodes": [[16, 0, 1, "", "InputNodes"], [17, 0, 1, "", "ProdNodes"], [18, 0, 1, "", "SumNodes"], [24, 2, 1, "", "foldup_aggregate"], [25, 2, 1, "", "foreach"]], "pyjuice.nodes.InputNodes": [[16, 1, 1, "", "__init__"]], "pyjuice.nodes.ProdNodes": [[17, 1, 1, "", "__init__"]], "pyjuice.nodes.SumNodes": [[18, 1, 1, "", "__init__"]], "pyjuice.nodes.distributions": [[19, 0, 1, "", "Bernoulli"], [20, 0, 1, "", "Categorical"], [21, 0, 1, "", "DiscreteLogistic"], [22, 0, 1, "", "Gaussian"], [23, 0, 1, "", "MaskedCategorical"]], "pyjuice.nodes.distributions.Bernoulli": [[19, 1, 1, "", "__init__"]], "pyjuice.nodes.distributions.Categorical": [[20, 1, 1, "", "__init__"]], "pyjuice.nodes.distributions.DiscreteLogistic": [[21, 1, 1, "", "__init__"]], "pyjuice.nodes.distributions.Gaussian": [[22, 1, 1, "", "__init__"]], "pyjuice.nodes.distributions.MaskedCategorical": [[23, 1, 1, "", "__init__"]], "pyjuice.set_block_size": [[27, 1, 1, "", "__init__"]], "pyjuice.structures": [[28, 2, 1, "", "HCLT"], [29, 2, 1, "", "HMM"], [30, 2, 1, "", "PD"], [31, 2, 1, "", "RAT_SPN"]]}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "function", "Python function"]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:function"}, "terms": {"": [1, 2, 3, 5, 10, 30, 37], "0": [1, 2, 3, 4, 5, 7, 9, 10, 12, 14, 16, 17, 18, 21, 22, 27, 28, 32, 37, 38], "00": [7, 38], "000": [7, 38], "01": [1, 21, 22], "015625": 28, "01_train_pc": [1, 7], "02264": [1, 28], "02_construct_simple_pc": [2, 7], "03_construct_hmm": [3, 7], "04_query_pc": [4, 7], "05": 1, "05_common_transform": [5, 7], "1": [1, 2, 3, 4, 5, 9, 14, 15, 27, 28, 33, 37], "100": 1, "10000": 1, "1024": 3, "12": 2, "1202": 30, "128": 1, "16": 27, "1th": 2, "2": [2, 3, 4, 5, 18, 31, 32], "20": 27, "2048": 3, "2106": [1, 28], "25": [5, 9], "256": [28, 30, 31], "28": 1, "2f": 1, "3": [2, 4, 5, 30], "32": [3, 5, 9, 28], "350": 1, "3732": 30, "3d": 4, "4": [2, 4, 5, 27, 30], "4023": 3, "5": [2, 5, 7, 10, 14, 37], "512": 1, "6": [2, 4], "60000": 1, "64": [27, 28], "7": 4, "8": [2, 5, 10, 37], "9": 1, "A": [2, 16, 17, 18, 19, 20, 21, 22, 23, 37, 38], "And": 2, "By": [1, 5, 15], "For": [1, 2, 3, 4], "If": [2, 15, 32], "In": [2, 3, 4, 5], "It": [8, 15, 16, 17, 18, 32, 37], "NOT": 22, "That": 2, "The": [0, 1, 2, 3, 4, 13, 22, 26], "There": 5, "To": 5, "__init__": [16, 17, 18, 19, 20, 21, 22, 23, 27], "_inner_layers_onli": 37, "_no_set_meta_param": 16, "about": [2, 4], "abov": [2, 5], "accordingli": 3, "accumul": [1, 10, 37], "acycl": 1, "ad": [9, 10, 22, 37], "add": [5, 37], "addit": 1, "affect": [12, 32], "after": 3, "aggreg": 24, "aim": 8, "algorithm": 5, "align": 5, "all": [2, 3, 4, 5, 6, 15, 24, 25, 32, 38], "allow": [3, 5, 9, 10, 37], "allow_modify_flow": 37, "alpha": 29, "also": [1, 2, 4, 5], "altern": [0, 2, 4, 12, 25, 32], "although": 2, "alwai": [2, 11], "amen": 1, "an": [1, 5, 6, 7, 9, 10, 12, 15, 24, 25, 26, 32, 33, 37], "ani": [1, 2, 31, 37], "anoth": [2, 4, 5], "api": 2, "appli": 5, "apply_cudagraph": 37, "approxim": 22, "ar": [1, 2, 4, 5, 10, 22, 37], "arang": 2, "arg": [14, 15, 32], "argument": [2, 3], "arxiv": [1, 28, 30], "ask": 4, "assign": 1, "assum": [1, 2, 3, 4, 15], "atom": [10, 37], "attribut": [19, 20, 21, 22, 23], "avoid": [10, 37], "b": [4, 37], "backbon": [1, 28], "backward": [1, 37], "base": [1, 3], "basic": [1, 2], "batch": 1, "batch_siz": [1, 4, 37], "becom": 15, "befor": 1, "begin": 3, "behavior": 22, "being": 1, "below": [1, 25], "best": 5, "beta": 29, "better": [10, 37], "between": [2, 11, 30], "bin": 28, "bitset": 16, "block": [2, 3, 9, 10, 11, 12, 15, 16, 17, 18, 27, 28, 29, 30, 31, 32, 33, 37], "block_siz": [2, 3, 5, 12, 15, 16, 17, 18, 27, 28, 29, 30, 31, 32, 33], "blockifi": 5, "bool": [9, 10, 11, 15, 16, 29, 30, 33, 37], "both": [2, 3], "bottom": [24, 25], "break": 1, "built": 5, "bump": 5, "cach": [24, 37], "call": [25, 37], "callabl": [24, 25, 30, 37], "can": [0, 1, 2, 3, 4, 5, 22, 25], "case": [2, 4], "categor": [2, 3, 4, 5, 14, 23, 27, 28, 30, 31], "categori": [2, 4, 20, 21, 23], "caus": [10, 37], "cd": 0, "ch": [17, 18], "chang": [5, 12, 32], "child": [1, 2, 3, 5, 15, 17, 18, 32], "children": [2, 3, 15, 17, 32], "chow": [1, 28], "chunk": 28, "chunk_siz": 28, "circuit": 8, "circuitnod": [9, 10, 11, 12, 13, 14, 15, 17, 18, 24, 25, 26, 32, 33, 37], "circuitoptim": 1, "circuitschedul": 1, "class": [16, 17, 18, 19, 20, 21, 22, 23, 27, 28, 30, 31, 37], "clone": [0, 37], "code": [1, 2, 3, 4, 5, 6], "collaps": 5, "column": [2, 18, 32], "com": 0, "command": 0, "compact": 1, "compar": 2, "compat": 30, "compil": [1, 3, 4, 12, 26, 32, 37], "comput": [1, 24, 28, 37], "compute_param_flow": 37, "concaten": 5, "connect": [2, 5, 15, 17, 18, 30, 32], "consid": [5, 28], "consist": 4, "construct": [1, 4, 5, 6, 7, 12, 15, 27, 28, 29, 32], "consum": [10, 37], "contain": 6, "context": [3, 27], "copi": [5, 11, 33, 37], "correspond": [4, 37], "could": 5, "count": [2, 37], "cover": [1, 4], "cpu": [1, 10, 37], "creat": [2, 3, 4, 5, 11, 16, 17, 18], "crucial": [2, 3, 5], "cuda": [1, 4], "curr_x": 3, "curr_z": 3, "current": [33, 37], "custom": 37, "dag": [1, 10, 37], "data": [1, 4, 22, 28, 30], "data_shap": 30, "dataload": 1, "date": 4, "decreas": [28, 33], "deepcopi": [5, 37], "default": 15, "defin": [1, 2, 3, 4, 5, 8, 12, 15, 18, 29, 32], "demonstr": [1, 3, 4, 6], "denot": 15, "depth": [30, 31], "deriv": 3, "detach": 1, "detail": 1, "determin": 3, "deviat": [21, 22], "devic": [1, 4], "dict": [11, 24, 28, 30, 31, 37], "dictionari": [11, 24, 33], "differ": [2, 6], "dimens": [4, 30], "direct": 1, "directli": [22, 25], "disable_gpu_compil": [10, 37], "discret": 21, "disjoint": 15, "dismiss": 4, "displai": [10, 37], "dist": [1, 2, 3, 4, 5, 12, 14, 16, 27], "distribut": [1, 2, 3, 4, 5, 12, 16, 28, 30, 31], "divic": [12, 32], "divid": 28, "do": [1, 2, 4, 5, 25, 33, 37], "doe": [12, 32], "done": 4, "down": 25, "download": [1, 2, 3, 4, 5, 6], "drop_last": 1, "dry": 1, "dtype": 5, "duplic": 3, "dure": 5, "e": [0, 2, 3, 4, 5, 12, 15, 30, 32], "each": [2, 6, 12, 30, 32], "easi": 8, "easiest": 0, "easili": 5, "edg": [2, 5, 10, 15, 18, 32, 37], "edge_id": [2, 5, 15, 17, 18, 32], "effect": 2, "effici": [1, 2, 3, 5, 8], "either": 30, "els": 3, "em": [1, 37], "emiss": [3, 29], "encod": 4, "end": [1, 2, 3, 4, 5, 13, 26], "enough": 3, "ensur": 2, "entri": 4, "environ": 8, "epoch": 1, "equal": 2, "equival": [1, 5, 9, 10, 33, 37], "estim": 28, "etc": 3, "evalu": 37, "even": 5, "everi": [2, 4, 5, 10, 15, 18, 30, 32, 37], "evid": 4, "exampl": [1, 2, 3, 4, 5, 6, 7, 14, 25, 27, 38], "except": 5, "execut": [7, 38], "exist": [2, 3], "explor": 6, "f": 1, "fact": [2, 4], "fals": [1, 4, 10, 11, 15, 16, 30, 37], "familiar": 2, "featur": [2, 6], "fed": 2, "feed": 4, "feel": 6, "file": [7, 13, 26, 38], "final": 2, "first": [2, 14, 15, 32], "float": [1, 9, 10, 21, 22, 28, 37], "flow": [1, 10, 37], "flows_memori": [1, 37], "fname": [13, 26], "follow": [0, 1, 2, 3, 4, 5, 8], "foral": 4, "forc": [10, 37], "force_gpu_compil": [10, 37], "force_use_bf16": 37, "force_use_fp32": 37, "forward": [1, 37], "four": 4, "fraction": [5, 9, 10, 37], "free": 6, "friendli": 1, "from": [0, 1, 2, 3, 7, 12, 13, 31, 37, 38], "full": [1, 2, 3, 4, 5], "full_mask": 23, "fulli": [2, 5, 18, 32], "func": [24, 25], "function": [2, 3, 4, 6, 7, 22, 24, 25, 37], "g": [2, 3, 4, 30], "galleri": [1, 2, 3, 4, 5, 6, 38], "gamma": 29, "gener": [1, 2, 3, 5, 6, 9, 30, 31], "get": [2, 7], "git": 0, "github": 0, "given": [1, 4, 15, 32], "go": [1, 2, 3, 4, 5], "goal": [1, 2], "gpu": [1, 4, 9, 10, 28, 37], "gradient": [1, 10, 37], "graph": 1, "group": [5, 10, 37], "h": 30, "ha": [2, 4, 5], "handi": 3, "have": [2, 3, 4, 5, 12, 15, 32], "hclt": 1, "here": 2, "hidden": [1, 28, 29], "hide": 1, "high": [5, 9], "higher": [10, 37], "hmm": [6, 7], "homogen": 29, "how": [1, 3, 4, 5, 6, 10, 37], "howev": [2, 3], "http": [1, 28, 30, 31], "i": [0, 1, 2, 3, 4, 5, 8, 12, 15, 16, 17, 18, 22, 25, 32, 37], "i00": [5, 14], "i01": [5, 14], "i10": [5, 14], "i11": [5, 14], "id": [2, 12], "ident": 14, "imag": 30, "img": [1, 2, 3, 4, 5], "implement": 5, "import": [1, 2, 3, 4, 5], "increas": 5, "independ": 5, "indic": [2, 4], "infer": 8, "influenc": 4, "inform": 28, "inhomogen": 29, "init": 29, "init_param_flow": [1, 37], "init_paramet": [4, 5, 22], "initi": [3, 22, 37], "input": [1, 3, 4, 5, 9, 11, 14, 16, 27, 28, 30, 31, 32, 33, 37], "input_dist": [28, 30, 31], "input_layer_fn": [30, 37], "input_node_param": [28, 30, 31], "input_node_typ": [28, 30, 31], "inputnod": [1, 12, 15, 32], "instal": 8, "instanc": 1, "instruct": 8, "int": [9, 10, 11, 12, 16, 17, 18, 20, 21, 23, 27, 28, 29, 30, 31, 32, 33, 37], "integ": 30, "interv": 30, "introduc": 2, "ipynb": [1, 2, 3, 4, 5], "item": 1, "iter": 25, "ith": [15, 17, 18, 32], "its": [1, 2], "j": [2, 15, 17, 18, 32], "jl": 0, "jpc": [13, 26], "jth": [15, 17, 18, 32], "juic": [0, 1, 2, 3, 4, 5], "jupyt": [1, 2, 3, 4, 5, 6], "just": [1, 33], "k": 3, "keep_zero_param": 37, "kernel": 1, "keys_to_copi": 33, "keyword": 2, "kwarg": [12, 15, 16, 17, 18, 24, 32, 37], "larg": [2, 3, 5], "larger": 2, "last": 4, "latent": [1, 28, 29, 30, 31], "launch": 1, "layer": [10, 37], "layer_sparsity_tol": [10, 37], "learn": [2, 3, 5, 6], "len": 1, "length": 29, "less": [10, 37], "let": [1, 2, 3, 5], "leverag": [1, 3], "librari": [6, 8], "likelihood": [1, 37], "line": 2, "list": [2, 3, 12, 15, 32], "liu": [1, 28], "ll": [1, 4, 37], "ll_weight": 37, "log": [1, 37], "logist": 21, "logspace_flow": 37, "long": 5, "look": 8, "loop": 1, "lower": [10, 37], "lr": 1, "m": [2, 4, 5], "m00": 14, "m01": 14, "mai": 4, "manag": [3, 27], "mani": [10, 37], "manipul": 5, "manual": [1, 5], "map": 11, "markov": 29, "mask": [4, 23], "mask_mod": 23, "math": 2, "mathbf": [1, 4], "mathrm": 4, "matrix": [15, 17, 18, 32], "max_block_s": 11, "max_cdf_power_of_2": 3, "max_num_partit": [10, 37], "max_prod_block_conn": 30, "max_split_depth": 30, "max_target_block_s": [5, 9], "max_tied_ns_per_parflow_block": [10, 37], "maximum": [5, 9, 10, 11, 30, 37], "mb": [7, 38], "mean": [1, 2, 3, 22], "mem": [7, 38], "member": 37, "memori": [10, 28, 37], "mention": 5, "method": [1, 16, 17, 18, 19, 20, 21, 22, 23], "milestone_step": 1, "min": 3, "min_sigma": 22, "min_std": 21, "mini": 1, "mini_batch_em": [1, 37], "minimum": 21, "miss": 4, "missing_mask": 4, "mlr": 31, "model": [1, 3, 26, 29], "modul": [1, 10, 37], "move": [1, 4], "ms0": 5, "ms00": 5, "ms01": 5, "ms1": 5, "ms2": 5, "mu": 22, "multi_linear": 1, "multipl": [2, 5], "multipli": [2, 3, 4, 5, 14, 17, 27, 37], "multivari": 12, "must": 3, "mutual": 28, "n": [1, 2, 3, 4, 5, 10, 25, 38], "n0": 14, "n1": 14, "n_new": 14, "name": [13, 26], "ndarrai": 17, "necessari": [2, 3, 5], "need": [1, 2, 4, 30], "neg": 2, "negate_pflow": 37, "neither": 5, "network": 1, "neural": 1, "new": 3, "new_n": 5, "new_ns1": 5, "new_ns2": 5, "new_ns3": 5, "new_param": 37, "ni": 27, "ni0": [2, 4, 5], "ni1": [2, 4, 5], "ni2": 5, "ni3": 5, "nn": [1, 10, 37], "node": [1, 3, 4, 5, 8, 10, 12, 13, 14, 15, 27, 28, 30, 31, 32, 33, 37], "nodes1": [15, 32], "none": [2, 3, 10, 11, 12, 15, 16, 17, 18, 22, 24, 28, 29, 30, 31, 32, 33, 37], "nor": 5, "note": [1, 2, 3, 5, 15, 22, 25, 32], "notebook": [1, 2, 3, 4, 5, 6], "now": 1, "ns0": 5, "ns1": [5, 14], "ns2": 5, "ns_input": 3, "ns_sum": 3, "num_bin": 28, "num_cat": [2, 3, 4, 5, 14, 20, 21, 23, 27, 28, 30, 31], "num_categori": 4, "num_child_node_vector": 2, "num_emit": [3, 29], "num_lat": [1, 3, 28, 29, 30, 31], "num_nod": [4, 12, 27, 32], "num_node_block": [2, 3, 5, 12, 14, 15, 16, 17, 18, 27, 32], "num_piec": 31, "num_repetit": 31, "num_root": 37, "num_root_n": 28, "num_target_var": 4, "num_var": [4, 31, 37], "number": [2, 3, 10, 12, 16, 17, 18, 20, 21, 23, 28, 30, 31, 32, 37], "numpi": 1, "object": [5, 12, 15, 24, 32], "observ": 4, "one": 4, "onli": [1, 2, 3], "oper": [10, 37], "optim": 1, "option": [1, 5, 10, 11, 12, 15, 16, 17, 18, 24, 29, 30, 32, 33, 37], "order": 5, "org": [1, 28, 30], "origin": [3, 5, 11, 37], "origin_ns_onli": 37, "our": 8, "out": [1, 4, 28], "output": [1, 2, 4, 5, 15], "overhead": 1, "p": [1, 3, 4], "packag": [2, 3, 5], "pair": [2, 5], "parallel": 3, "param": [12, 16, 18, 37], "paramet": [1, 2, 3, 4, 5, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 37], "parent": [2, 5], "partial": 2, "partit": [10, 37], "pass": [1, 22], "pattern": 2, "pc": [3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 24, 25, 26, 27, 29, 30, 32, 33, 37], "pdf": [1, 28, 30, 31], "peharz20a": 31, "per": 24, "perform": [1, 37], "perturb": 22, "pip": 0, "pipelin": 1, "png": [1, 2, 3, 4, 5], "point": 30, "pointer": 1, "pose": 2, "posit": 2, "possibl": [5, 9], "potenti": [9, 10, 37], "power": 2, "practic": 5, "prepar": 4, "press": 31, "previou": 4, "print": [1, 27], "probabilist": [4, 8], "probabl": 3, "proce": [1, 2, 4], "procedur": 5, "proceed": 31, "prod_domin": 30, "prodnod": [1, 15, 32], "prodnodesch": 15, "product": [1, 15, 17, 30], "progress": [10, 37], "project": 6, "propagation_alg": 37, "properli": 5, "properti": 33, "provid": [2, 5, 8], "pseudo": [5, 10, 37], "pseudocount": [1, 37], "py": [1, 2, 3, 4, 5, 7], "pyjuic": [0, 1, 2, 3, 4, 5, 6], "python": [1, 2, 3, 4, 5, 6, 8], "pytorch": 1, "queri": [6, 7], "quickli": 1, "quotient": 4, "random": 31, "rang": [1, 3, 9, 21, 23], "readi": 1, "record_cudagraph": [1, 37], "recurs": 33, "redund": 2, "region": 14, "remain": [3, 5, 14, 15, 32], "repeat": 2, "repres": [4, 10, 16, 17, 18, 19, 20, 21, 22, 23], "represent": 1, "requir": [1, 2, 15, 32], "rescal": 37, "reshap": 1, "respect": [1, 2, 4], "restrict": 2, "return": [4, 9, 10, 11, 12, 13, 15, 32, 33], "return_cach": 37, "reus": [3, 30], "rev_rang": 23, "revers": 25, "root": [1, 5, 10, 24, 25, 28, 37], "root_n": [9, 11, 24, 25, 33, 37], "run": [0, 1, 5, 28], "safe": 1, "sai": 4, "same": [2, 3, 4, 5, 10, 11, 12, 15, 32, 37], "sampl": [4, 28], "scalabl": 8, "schedul": 1, "scope": [5, 16, 31], "search": 9, "second": [2, 5], "see": 25, "seemingli": 2, "semant": [12, 32], "separ": 4, "seq_length": [3, 29], "sequenc": [12, 16, 17, 18, 29, 30, 33, 37], "set": [1, 2, 3, 4, 5, 10, 12, 15, 16, 18, 27, 32, 37], "set_block_s": [3, 5], "shall": 2, "shape": [2, 4, 30], "share": [10, 37], "shortcut": 2, "should": [2, 4, 9, 12, 13, 23, 26, 27, 32], "show": 2, "showcas": 6, "shuffl": 1, "sigma": [22, 28], "similar": [1, 2, 4], "similarli": [1, 4], "simpl": [4, 5, 6, 7], "simplic": 1, "simultan": [4, 5], "sinc": [2, 4, 5], "singl": 5, "size": [1, 2, 3, 4, 9, 11, 12, 15, 16, 17, 18, 27, 28, 29, 30, 31, 32, 33, 37], "small": [10, 37], "so": [1, 2, 3], "soft": 4, "some": 5, "someth": 25, "sourc": [0, 1, 2, 3, 4, 5, 6], "space": [28, 29, 30, 31], "spars": [10, 37], "sparse_edg": 15, "sparsity_toler": [5, 9], "specif": [1, 2, 3, 4, 25], "specifi": [1, 2, 3, 4, 5, 15, 22, 30], "speed": [12, 32], "sphinx": [1, 2, 3, 4, 5, 6], "sphinx_gallery_thumbnail_path": [1, 2, 3, 4, 5], "split": [30, 31], "split_interv": 30, "split_point": 30, "spn": 31, "stall": [10, 37], "standard": [21, 22], "start": [1, 2, 3, 5, 7], "statement": 25, "std": 22, "step": [1, 37], "step_siz": [1, 37], "step_size_resc": 37, "store": [1, 24], "str": [13, 23, 26, 30, 33, 37], "string": 37, "structur": [1, 3, 6, 7, 8], "structure_typ": 30, "sub": 31, "subclass": [12, 15, 32, 37], "subset": 4, "suggest": 2, "sum": [1, 3, 5, 18, 30, 32], "sum_domin": 30, "summat": [2, 3, 4, 5, 14, 18, 27], "sumnod": [1, 15, 32], "sumnodesch": 32, "support": 8, "t": [2, 3], "t0": 1, "t1": 1, "t2": 1, "take": [2, 5, 8], "target": [27, 33], "target_var": 4, "tensor": [2, 4, 5, 12, 15, 16, 17, 18, 28, 29, 31, 32, 37], "tensorcircuit": [8, 26], "tensordataset": 1, "test_ll": 1, "text": 4, "th": [2, 15, 17], "thei": [2, 5], "therefor": [1, 2], "thi": [1, 2, 3, 4, 5, 6, 22, 30, 37], "throughout": 1, "ti": [3, 5, 10, 11, 37], "tie": [5, 11, 30], "tie_homogeneous_param": 30, "tie_param": [3, 5, 11], "time": [1, 2], "togeth": 14, "top": 25, "topolog": 1, "torch": [1, 2, 3, 4, 5, 10, 16, 28, 29, 37], "torchvis": 1, "total": [7, 12, 32, 38], "train": [4, 6, 7, 8], "train_data": 1, "train_dataset": 1, "train_ll": 1, "train_load": 1, "transform": [3, 6, 7], "transit": [3, 29], "travers": [24, 25], "tree": [1, 28], "true": [1, 3, 4, 5, 9, 10, 15, 25, 29, 33, 37], "try": [2, 5, 37], "tupl": [21, 30], "tutori": [1, 2, 3, 4, 5, 7, 8], "tutorials_jupyt": 6, "tutorials_python": 6, "two": [2, 4, 5], "type": [10, 23, 28, 30, 31], "u": [2, 3, 5], "uncompil": 26, "unconnect": 5, "under": 2, "union": [12, 15, 16, 26, 30, 32, 37], "unless": 15, "up": [24, 25], "updat": 37, "update_param_flow": 37, "update_paramet": 37, "updated_param": 37, "us": [1, 2, 3, 4, 5, 6, 8, 9, 10, 22, 25, 28, 37], "usag": [5, 6], "use_cuda": 9, "user": 1, "util": [1, 3], "v115": 31, "val": [1, 4], "val_rang": 21, "valid_data": 1, "valid_dataset": 1, "valid_load": 1, "valu": [4, 10, 21, 22, 37], "var": [2, 3, 12, 27], "var_map": [5, 11], "variabl": [1, 2, 3, 4, 5, 11, 12, 15, 16, 28, 31, 32], "variat": 28, "variou": 6, "vector": [1, 2, 3, 5, 12, 15, 16, 17, 18, 32], "verbos": [10, 37], "via": [0, 25], "w": [4, 30], "wai": [0, 1], "want": [3, 4], "we": [1, 2, 3, 4, 5, 15], "weight": 37, "welcom": 6, "well": 37, "what": 5, "when": [2, 9, 28], "whenev": 5, "where": [2, 15], "whether": [10, 11, 29, 30, 33, 37], "which": [1, 2, 3, 4], "while": [1, 5], "why": 4, "within": [5, 10, 37], "without": 1, "wonder": 4, "x": [1, 4, 28], "x_": 3, "x_1": 4, "x_2": 4, "you": [0, 2, 5, 22], "your": 6, "z_": 3, "zero": [1, 9, 37], "zero_grad": 1, "zero_param_mask": 18, "zerol": [1, 37], "zip": [1, 2, 3, 4, 5, 6]}, "titles": ["Installation", "Train a PC", "Construct Simple PCs", "Construct an HMM", "Query a PC", "PC Structural Transformation Functions", "Tutorials", "Computation times", "Welcome to PyJuice\u2019s documentation!", "pyjuice.blockify", "pyjuice.compile", "pyjuice.deepcopy", "pyjuice.inputs", "pyjuice.load", "pyjuice.merge", "pyjuice.multiply", "pyjuice.nodes.InputNodes", "pyjuice.nodes.ProdNodes", "pyjuice.nodes.SumNodes", "pyjuice.nodes.distributions.Bernoulli", "pyjuice.nodes.distributions.Categorical", "pyjuice.nodes.distributions.DiscreteLogistic", "pyjuice.nodes.distributions.Gaussian", "pyjuice.nodes.distributions.MaskedCategorical", "pyjuice.nodes.foldup_aggregate", "pyjuice.nodes.foreach", "pyjuice.save", "pyjuice.set_block_size", "pyjuice.structures.HCLT", "pyjuice.structures.HMM", "pyjuice.structures.PD", "pyjuice.structures.RAT_SPN", "pyjuice.summate", "pyjuice.unblockify", "pyjuice.nodes", "pyjuice", "pyjuice.structures", "pyjuice.TensorCircuit", "Computation times"], "titleterms": {"": 8, "adjust": 5, "an": 3, "api": 8, "bernoulli": 19, "block": 5, "blockifi": 9, "categor": 20, "clone": 5, "compil": [10, 35], "comput": [4, 7, 38], "condit": 4, "construct": [2, 3], "creat": 1, "creation": 35, "dataset": 1, "deepcopi": 11, "discretelogist": 21, "distribut": [19, 20, 21, 22, 23, 34], "document": 8, "foldup_aggreg": 24, "foreach": 25, "function": 5, "gaussian": 22, "gener": 4, "get": 8, "hclt": 28, "hmm": [3, 29], "input": [2, 12, 34], "inputnod": 16, "instal": 0, "io": 35, "load": [1, 13], "margin": 4, "maskedcategor": 23, "merg": [5, 14], "method": 34, "mnist": 1, "multipli": 15, "node": [2, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 34], "pc": [1, 2, 4, 5, 35], "pd": 30, "probabl": 4, "prodnod": 17, "product": 2, "pyjuic": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37], "queri": 4, "rat_spn": 31, "save": 26, "set_block_s": 27, "simpl": 2, "size": 5, "start": 8, "structur": [5, 28, 29, 30, 31, 35, 36], "sum": 2, "summat": 32, "sumnod": 18, "tensorcircuit": 37, "time": [7, 38], "train": 1, "transform": [5, 35], "tutori": 6, "unblockifi": 33, "welcom": 8}}) \ No newline at end of file