From 0926cbe947b58172d1510ad73f2f815dc8bb5261 Mon Sep 17 00:00:00 2001 From: joserapa98 Date: Sun, 14 Apr 2024 02:01:37 +0200 Subject: [PATCH] Update docs --- docs/_build/doctest/output.txt | 184 +++++++----------- docs/_build/doctrees/environment.pickle | Bin 854109 -> 860400 bytes docs/_build/doctrees/models.doctree | Bin 1144309 -> 1158080 bytes .../_modules/tensorkrowch/models/mps.html | 160 ++++++++++++++- docs/_build/html/genindex.html | 2 + docs/_build/html/models.html | 52 ++++- docs/_build/html/objects.inv | Bin 2680 -> 2683 bytes docs/_build/html/searchindex.js | 2 +- 8 files changed, 277 insertions(+), 123 deletions(-) diff --git a/docs/_build/doctest/output.txt b/docs/_build/doctest/output.txt index 61d6320..3a24cc5 100644 --- a/docs/_build/doctest/output.txt +++ b/docs/_build/doctest/output.txt @@ -1,12 +1,12 @@ -Results of doctest builder run on 2024-04-14 00:34:19 +Results of doctest builder run on 2024-04-14 01:59:36 ===================================================== -Document: operations +Document: embeddings -------------------- 1 items passed all tests: - 186 tests in default -186 tests in 1 items. -186 passed and 0 failed. + 35 tests in default +35 tests in 1 items. +35 passed and 0 failed. Test passed. Document: models @@ -17,68 +17,26 @@ Document: models 115 passed and 0 failed. Test passed. -Document: embeddings +Document: operations -------------------- 1 items passed all tests: - 35 tests in default -35 tests in 1 items. -35 passed and 0 failed. + 186 tests in default +186 tests in 1 items. +186 passed and 0 failed. Test passed. Document: components -------------------- ********************************************************************** File "../tensorkrowch/components.py", line ?, in default -Failed example: - node.set_tensor(init_method='randn', mean=1., std=2., device='cuda') -Exception raised: - Traceback (most recent call last): - File "/home/jose/anaconda3/envs/test_tk/lib/python3.10/doctest.py", line 1350, in __run - exec(compile(example.source, filename, "single", - File "", line 1, in - node.set_tensor(init_method='randn', mean=1., std=2., device='cuda') - File "/home/jose/VSCodeProjects/tensorkrowch/tensorkrowch/components.py", line 1448, in set_tensor - self._unrestricted_set_tensor(tensor=tensor, - File "/home/jose/VSCodeProjects/tensorkrowch/tensorkrowch/components.py", line 1364, in _unrestricted_set_tensor - tensor = self.make_tensor( - File "/home/jose/VSCodeProjects/tensorkrowch/tensorkrowch/components.py", line 1253, in make_tensor - return self._make_randn_tensor(shape, device=device, **kwargs) - File "/home/jose/VSCodeProjects/tensorkrowch/tensorkrowch/components.py", line 1205, in _make_randn_tensor - return torch.randn(shape, device=device) * std + mean - File "/home/jose/anaconda3/envs/test_tk/lib/python3.10/site-packages/torch/cuda/__init__.py", line 302, in _lazy_init - torch._C._cuda_init() - RuntimeError: Unexpected error from cudaGetDeviceCount(). Did you run some cuda functions before calling NumCudaDevices() that might have already set an error? Error 804: forward compatibility was attempted on non supported HW -********************************************************************** -File "../tensorkrowch/components.py", line ?, in default -Failed example: - torch.equal(node.tensor, torch.zeros(node.shape, device='cuda')) -Exception raised: - Traceback (most recent call last): - File "/home/jose/anaconda3/envs/test_tk/lib/python3.10/doctest.py", line 1350, in __run - exec(compile(example.source, filename, "single", - File "", line 1, in - torch.equal(node.tensor, torch.zeros(node.shape, device='cuda')) - File "/home/jose/anaconda3/envs/test_tk/lib/python3.10/site-packages/torch/cuda/__init__.py", line 302, in _lazy_init - torch._C._cuda_init() - RuntimeError: Unexpected error from cudaGetDeviceCount(). Did you run some cuda functions before calling NumCudaDevices() that might have already set an error? Error 804: forward compatibility was attempted on non supported HW -********************************************************************** -File "../tensorkrowch/components.py", line ?, in default -Failed example: - node.device -Expected: - device(type='cuda', index=0) -Got: - device(type='cpu') -********************************************************************** -File "../tensorkrowch/components.py", line ?, in default Failed example: node.tensor Expected: tensor([[-0.2799, -0.4383, -0.8387], [ 1.6225, -0.3370, -1.2316]]) Got: - tensor([[-0.2140, 0.8589, 1.3626], - [ 2.0270, -0.3952, -0.2620]]) + tensor([[ 0.2628, -0.6672, -0.9051], + [-0.6796, -0.4245, -0.5780]]) ********************************************************************** File "../tensorkrowch/components.py", line ?, in default Failed example: @@ -86,7 +44,7 @@ Failed example: Expected: tensor(-1.5029) Got: - tensor(3.3773) + tensor(-2.9916) ********************************************************************** File "../tensorkrowch/components.py", line ?, in default Failed example: @@ -94,7 +52,7 @@ Failed example: Expected: tensor([ 1.3427, -0.7752, -2.0704]) Got: - tensor([1.8130, 0.4637, 1.1006]) + tensor([-0.4168, -1.0916, -1.4831]) ********************************************************************** File "../tensorkrowch/components.py", line ?, in default Failed example: @@ -103,8 +61,8 @@ Expected: tensor([[ 1.4005, -0.0521, -1.2091], [ 1.9844, 0.3513, -0.5920]]) Got: - tensor([[ 0.7954, -0.5302, 0.4238], - [-0.9560, 1.1048, -0.6040]]) + tensor([[-0.5314, -0.7805, -0.6475], + [-0.1279, 0.7409, 0.5816]]) ********************************************************************** File "../tensorkrowch/components.py", line ?, in default Failed example: @@ -112,7 +70,7 @@ Failed example: Expected: tensor(0.3139) Got: - tensor(0.0390) + tensor(-0.1275) ********************************************************************** File "../tensorkrowch/components.py", line ?, in default Failed example: @@ -120,7 +78,7 @@ Failed example: Expected: tensor([ 1.6925, 0.1496, -0.9006]) Got: - tensor([-0.0803, 0.2873, -0.0901]) + tensor([-0.3296, -0.0198, -0.0330]) ********************************************************************** File "../tensorkrowch/components.py", line ?, in default Failed example: @@ -129,8 +87,8 @@ Expected: tensor([[ 0.2111, -0.9551, -0.7812], [ 0.2254, 0.3381, -0.2461]]) Got: - tensor([[-0.8081, 0.7974, 0.5201], - [-0.8739, -1.2455, -1.2520]]) + tensor([[-1.8500, -0.4944, 0.5940], + [-0.9353, -0.6008, -0.4320]]) ********************************************************************** File "../tensorkrowch/components.py", line ?, in default Failed example: @@ -138,7 +96,7 @@ Failed example: Expected: tensor(0.5567) Got: - tensor(0.9029) + tensor(0.7922) ********************************************************************** File "../tensorkrowch/components.py", line ?, in default Failed example: @@ -146,7 +104,7 @@ Failed example: Expected: tensor([0.0101, 0.9145, 0.3784]) Got: - tensor([0.0465, 1.4445, 1.2530]) + tensor([0.6468, 0.0752, 0.7255]) ********************************************************************** File "../tensorkrowch/components.py", line ?, in default Failed example: @@ -155,8 +113,8 @@ Expected: tensor([[ 1.5570, 1.8441, -0.0743], [ 0.4572, 0.7592, 0.6356]]) Got: - tensor([[-1.1420, -0.4181, -0.9147], - [-1.0355, 0.3765, -1.0369]]) + tensor([[ 1.5611, -0.1317, -1.2049], + [-0.8746, 0.7130, -1.7564]]) ********************************************************************** File "../tensorkrowch/components.py", line ?, in default Failed example: @@ -164,7 +122,7 @@ Failed example: Expected: tensor(2.6495) Got: - tensor(2.1458) + tensor(2.8748) ********************************************************************** File "../tensorkrowch/components.py", line ?, in default Failed example: @@ -172,7 +130,7 @@ Failed example: Expected: tensor([1.6227, 1.9942, 0.6399]) Got: - tensor([1.5416, 0.5626, 1.3826]) + tensor([1.7894, 0.7251, 2.1299]) ********************************************************************** File "../tensorkrowch/components.py", line ?, in default Failed example: @@ -203,17 +161,17 @@ Got: Node( name: my_node tensor: - tensor([[[-0.3790, -0.2875], - [-0.2694, -2.6073], - [ 0.9747, 0.2449], - [-0.2402, -0.0971], - [-0.6163, -0.0845]], + tensor([[[-0.2232, -0.0576], + [-2.0650, -1.6126], + [ 0.3369, -0.6012], + [-1.5875, -0.0953], + [-0.3129, 0.5625]], - [[ 1.3292, -0.5639], - [ 0.6551, -0.5135], - [ 1.4094, -0.5872], - [ 1.3754, -1.3123], - [ 0.6744, -1.2268]]]) + [[ 2.0660, -0.9154], + [ 0.0753, 0.9608], + [ 0.7278, -0.2497], + [ 0.9090, -0.5242], + [ 1.4432, 2.6149]]]) axes: [left input @@ -252,17 +210,17 @@ Got: Node( name: node tensor: - tensor([[[ 0.5618, -0.7985], - [-1.9137, -1.0750], - [ 0.2035, 0.2413], - [ 1.2439, -0.0756], - [ 0.9225, -0.0071]], + tensor([[[-0.0399, 0.5602], + [-1.3402, 1.1127], + [ 0.0795, -1.6100], + [ 2.3359, 1.8294], + [-0.2258, -0.2929]], - [[ 0.1849, -0.2401], - [-0.0954, -0.2486], - [-0.3592, -1.3031], - [ 0.0455, 0.5307], - [-1.3908, -0.9176]]]) + [[ 0.2125, -1.1086], + [-0.6906, -0.8028], + [-1.4547, 0.0981], + [-1.5869, 0.2020], + [-0.5355, -0.1357]]]) axes: [axis_0 axis_1 @@ -314,17 +272,17 @@ Got: name: my_paramnode tensor: Parameter containing: - tensor([[[-0.8812, 0.5985], - [-1.0907, 0.4343], - [ 2.1201, 0.7496], - [ 0.1640, -0.2248], - [-1.3572, 0.7016]], + tensor([[[ 1.0837, 1.7036], + [-0.8799, -0.1600], + [-0.5867, -1.7778], + [ 0.1615, 1.0249], + [ 0.1880, 1.1234]], - [[ 1.0295, 0.0301], - [ 1.1299, 1.0379], - [-0.2408, 1.4896], - [ 0.1914, -0.7828], - [ 0.5660, 1.7213]]], requires_grad=True) + [[ 0.7499, -0.7739], + [-0.5278, 1.1947], + [-0.7586, -1.4460], + [-0.1016, -0.1954], + [ 0.1579, 0.0572]]], requires_grad=True) axes: [left input @@ -365,17 +323,17 @@ Got: name: paramnode tensor: Parameter containing: - tensor([[[ 0.0967, 0.1681], - [-0.2095, -0.0135], - [ 0.4699, -0.3885], - [-1.2067, -0.5064], - [-0.7848, 0.2031]], + tensor([[[-0.7419, 0.3802], + [ 0.4183, 0.2084], + [-0.4384, -0.6852], + [-0.2616, -0.4692], + [ 0.4573, 2.0465]], - [[-0.4146, -0.5403], - [-0.1077, -0.4261], - [ 1.2183, 0.4285], - [-0.1007, -0.8319], - [-0.1851, 0.1278]]], requires_grad=True) + [[ 0.5333, 0.6722], + [-0.9125, 0.1184], + [ 0.1689, -0.0498], + [-1.2576, 0.5516], + [-0.0805, -0.2896]]], requires_grad=True) axes: [axis_0 axis_1 @@ -394,8 +352,8 @@ Expected: [ 1.3371, 1.4761, 0.6551]], requires_grad=True) Got: Parameter containing: - tensor([[-1.4677, -0.2316, 0.4469], - [-0.9964, -0.5450, -0.8290]], requires_grad=True) + tensor([[-1.4491, 0.7555, -1.2827], + [ 1.3534, -1.0071, 0.1320]], requires_grad=True) ********************************************************************** File "../tensorkrowch/components.py", line ?, in default Failed example: @@ -446,14 +404,14 @@ Got: data_0[feature] <-> nodeA[input]]) ********************************************************************** 1 items had failures: - 24 of 395 in default + 21 of 395 in default 395 tests in 1 items. -371 passed and 24 failed. -***Test Failed*** 24 failures. +374 passed and 21 failed. +***Test Failed*** 21 failures. Doctest summary =============== 731 tests - 24 failures in tests + 21 failures in tests 0 failures in setup code 0 failures in cleanup code diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index bacb9ccef7ff1574c8b2c21bbd0a5ba6a47864cb..505278e1e2f12a006a61de9a6a35a012a1897d75 100644 GIT binary patch delta 18988 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 delta 15543 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 ChN&e0 diff --git a/docs/_build/doctrees/models.doctree b/docs/_build/doctrees/models.doctree index f864f92193b300892b40a1a46200f5f7513c9240..507e800223c391c195c541d964bf6392d06f02a2 100644 GIT binary patch delta 171486 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®R0yRG&dB7>XD`&^M4szouot})g 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

>b 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 diff --git a/docs/_build/html/_modules/tensorkrowch/models/mps.html b/docs/_build/html/_modules/tensorkrowch/models/mps.html index 1239e35..4488acf 100644 --- a/docs/_build/html/_modules/tensorkrowch/models/mps.html +++ b/docs/_build/html/_modules/tensorkrowch/models/mps.html @@ -1491,6 +1491,10 @@

Source code for tensorkrowch.models.mps

         it should be ``reset`` before calling ``partial_density`` to avoid
         undesired behaviour.
         
+        Since the density matrix is computed by contracting the MPS, it means
+        one can take gradients of it with respect to the MPS tensors, if it
+        is needed.
+        
         This method may also alter the attribute :attr:`n_batches` of the
         :class:`MPS`.
         
@@ -1558,6 +1562,131 @@ 

Source code for tensorkrowch.models.mps

             result = self.forward(marginalize_output=True)
         
         return result
+ +
[docs] @torch.no_grad() + def mi(self, + middle_site: int, + renormalize: bool = False) -> Union[float, Tuple[float]]: + r""" + Computes the Mutual Information between subsystems :math:`A` and + :math:`B`, :math:`\textrm{MI}(A:B)`, where :math:`A` goes from site + 0 to ``middle_site``, and :math:`B` goes from ``middle_site + 1`` to + ``n_features - 1``. + + To compute the mutual information, the MPS is put into canonical form + with orthogonality center at ``middle_site``. Bond dimensions are not + changed if possible. Only when the bond dimension is bigger than the + physical dimension multiplied by the other bond dimension of the node, + it will be cropped to that size. + + If the MPS is not normalized, it may happen that the computation of the + mutual information fails due to errors in the Singular Value + Decompositions. To avoid this, it is recommended to set + ``renormalize = True``. In this case, the norm of each node after the + SVD is extracted in logarithmic form, and accumulated. As a result, + the function will return the tuple ``(mi, log_norm)``, which is a sort + of `scaled` mutual information. The actual mutual information could be + obtained as ``exp(log_norm) * mi``. + + Parameters + ---------- + middle_site : int + Position that separates regios :math:`A` and :math:`B`. It should + be between 0 and ``n_features - 2``. + renormalize : bool + Indicates whether nodes should be renormalized after SVD/QR + decompositions. If not, it may happen that the norm explodes as it + is being accumulated from all nodes. Renormalization aims to avoid + this undesired behavior by extracting the norm of each node on a + logarithmic scale after SVD/QR decompositions are computed. Finally, + the normalization factor is evenly distributed among all nodes of + the MPS. + + Returns + ------- + float or tuple[float, float] + """ + self.reset() + + prev_auto_stack = self._auto_stack + self.auto_stack = False + + if (middle_site < 0) or (middle_site > (self._n_features - 2)): + raise ValueError( + '`middle_site` should be between 0 and `n_features` - 2') + + log_norm = 0 + + nodes = self._mats_env[:] + if self._boundary == 'obc': + nodes[0].tensor[1:] = torch.zeros_like( + nodes[0].tensor[1:]) + nodes[-1].tensor[..., 1:] = torch.zeros_like( + nodes[-1].tensor[..., 1:]) + + for i in range(middle_site): + result1, result2 = nodes[i]['right'].svd_( + side='right', + rank=nodes[i]['right'].size()) + + if renormalize: + aux_norm = result2.norm() / sqrt(result2.shape[0]) + if not aux_norm.isinf() and (aux_norm > 0): + result2.tensor = result2.tensor / aux_norm + log_norm += aux_norm.log() + + result1 = result1.parameterize() + nodes[i] = result1 + nodes[i + 1] = result2 + + for i in range(len(nodes) - 1, middle_site, -1): + result1, result2 = nodes[i]['left'].svd_( + side='left', + rank=nodes[i]['left'].size()) + + if renormalize: + aux_norm = result1.norm() / sqrt(result1.shape[0]) + if not aux_norm.isinf() and (aux_norm > 0): + result1.tensor = result1.tensor / aux_norm + log_norm += aux_norm.log() + + result2 = result2.parameterize() + nodes[i] = result2 + nodes[i - 1] = result1 + + nodes[middle_site] = nodes[middle_site].parameterize() + + # Compute mutual information + middle_tensor = nodes[middle_site].tensor.clone() + _, s, _ = torch.linalg.svd( + middle_tensor.reshape(middle_tensor.shape[:-1].numel(), # left x input + middle_tensor.shape[-1]), # right + full_matrices=False) + + s = s[s > 0] + mutual_info = -(s * (s.log() + log_norm)).sum() + + # Rescale + if log_norm != 0: + rescale = (log_norm / len(nodes)).exp() + + if renormalize and (log_norm != 0): + for node in nodes: + node.tensor = node.tensor * rescale + + # Update variables + if self._boundary == 'obc': + self._bond_dim = [node['right'].size() for node in nodes[:-1]] + else: + self._bond_dim = [node['right'].size() for node in nodes] + self._mats_env = nodes + + self.auto_stack = prev_auto_stack + + if renormalize: + return mutual_info, log_norm + else: + return mutual_info
[docs] @torch.no_grad() def canonicalize(self, @@ -1570,11 +1699,20 @@

Source code for tensorkrowch.models.mps

         r"""
         Turns MPS into canonical form via local SVD/QR decompositions.
         
+        To specify the new bond dimensions, the arguments ``rank``,
+        ``cum_percentage`` or ``cutoff`` can be specified. These will be used
+        equally for all SVD computations.
+        
+        If none of them are specified, the bond dimensions won't be modified
+        if possible. Only when the bond dimension is bigger than the physical
+        dimension multiplied by the other bond dimension of the node, it will
+        be cropped to that size.
+        
         Parameters
         ----------
         oc : int
             Position of the orthogonality center. It should be between 0 and 
-            ``n_features -1``.
+            ``n_features - 1``.
         mode : {"svd", "svdr", "qr"}
             Indicates which decomposition should be used to split a node after
             contracting it. See more at :func:`~tensorkrowch.svd_`,
@@ -1619,9 +1757,9 @@ 

Source code for tensorkrowch.models.mps

 
         if oc is None:
             oc = self._n_features - 1
-        elif oc >= self._n_features:
-            raise ValueError(f'Orthogonality center position `oc` should be '
-                             f'between 0 and {self._n_features - 1}')
+        elif (oc < 0) or (oc >= self._n_features):
+            raise ValueError('Orthogonality center position `oc` should be '
+                             'between 0 and `n_features` - 1')
         
         log_norm = 0
         
@@ -1632,17 +1770,23 @@ 

Source code for tensorkrowch.models.mps

             nodes[-1].tensor[..., 1:] = torch.zeros_like(
                 nodes[-1].tensor[..., 1:])
         
+        # If mode is svd or svr and none of the args is provided, the ranks are
+        # kept as they were originally
+        keep_rank = False
+        if (rank is None) and (cum_percentage is None) and (cutoff is None):
+            keep_rank = True
+        
         for i in range(oc):
             if mode == 'svd':
                 result1, result2 = nodes[i]['right'].svd_(
                     side='right',
-                    rank=rank,
+                    rank=nodes[i]['right'].size() if keep_rank else rank,
                     cum_percentage=cum_percentage,
                     cutoff=cutoff)
             elif mode == 'svdr':
                 result1, result2 = nodes[i]['right'].svdr_(
                     side='right',
-                    rank=rank,
+                    rank=nodes[i]['right'].size() if keep_rank else rank,
                     cum_percentage=cum_percentage,
                     cutoff=cutoff)
             elif mode == 'qr':
@@ -1664,13 +1808,13 @@ 

Source code for tensorkrowch.models.mps

             if mode == 'svd':
                 result1, result2 = nodes[i]['left'].svd_(
                     side='left',
-                    rank=rank,
+                    rank=nodes[i]['left'].size() if keep_rank else rank,
                     cum_percentage=cum_percentage,
                     cutoff=cutoff)
             elif mode == 'svdr':
                 result1, result2 = nodes[i]['left'].svdr_(
                     side='left',
-                    rank=rank,
+                    rank=nodes[i]['left'].size() if keep_rank else rank,
                     cum_percentage=cum_percentage,
                     cutoff=cutoff)
             elif mode == 'qr':
diff --git a/docs/_build/html/genindex.html b/docs/_build/html/genindex.html
index 0887b8d..f14cfc7 100644
--- a/docs/_build/html/genindex.html
+++ b/docs/_build/html/genindex.html
@@ -778,6 +778,8 @@ 

M

    +
  • mi() (tensorkrowch.models.MPS method) +
  • move_to_network() (tensorkrowch.AbstractNode method)
  • MPO (class in tensorkrowch.models) diff --git a/docs/_build/html/models.html b/docs/_build/html/models.html index 27c7b10..89c8ec2 100644 --- a/docs/_build/html/models.html +++ b/docs/_build/html/models.html @@ -1015,6 +1015,9 @@

    MPS#reset before calling partial_density to avoid undesired behaviour.

    +

    Since the density matrix is computed by contracting the MPS, it means +one can take gradients of it with respect to the MPS tensors, if it +is needed.

    This method may also alter the attribute n_batches of the MPS.

    @@ -1036,15 +1039,62 @@

    MPS#

    +
    +
    +mi(middle_site, renormalize=False)[source]#
    +

    Computes the Mutual Information between subsystems \(A\) and +\(B\), \(\textrm{MI}(A:B)\), where \(A\) goes from site +0 to middle_site, and \(B\) goes from middle_site + 1 to +n_features - 1.

    +

    To compute the mutual information, the MPS is put into canonical form +with orthogonality center at middle_site. Bond dimensions are not +changed if possible. Only when the bond dimension is bigger than the +physical dimension multiplied by the other bond dimension of the node, +it will be cropped to that size.

    +

    If the MPS is not normalized, it may happen that the computation of the +mutual information fails due to errors in the Singular Value +Decompositions. To avoid this, it is recommended to set +renormalize = True. In this case, the norm of each node after the +SVD is extracted in logarithmic form, and accumulated. As a result, +the function will return the tuple (mi, log_norm), which is a sort +of scaled mutual information. The actual mutual information could be +obtained as exp(log_norm) * mi.

    +
    +
    Parameters
    +
      +
    • middle_site (int) – Position that separates regios \(A\) and \(B\). It should +be between 0 and n_features - 2.

    • +
    • renormalize (bool) – Indicates whether nodes should be renormalized after SVD/QR +decompositions. If not, it may happen that the norm explodes as it +is being accumulated from all nodes. Renormalization aims to avoid +this undesired behavior by extracting the norm of each node on a +logarithmic scale after SVD/QR decompositions are computed. Finally, +the normalization factor is evenly distributed among all nodes of +the MPS.

    • +
    +
    +
    Return type
    +

    float or tuple[float, float]

    +
    +
    +
    +
    canonicalize(oc=None, mode='svd', rank=None, cum_percentage=None, cutoff=None, renormalize=False)[source]#

    Turns MPS into canonical form via local SVD/QR decompositions.

    +

    To specify the new bond dimensions, the arguments rank, +cum_percentage or cutoff can be specified. These will be used +equally for all SVD computations.

    +

    If none of them are specified, the bond dimensions won’t be modified +if possible. Only when the bond dimension is bigger than the physical +dimension multiplied by the other bond dimension of the node, it will +be cropped to that size.

    Parameters
    • oc (int) – Position of the orthogonality center. It should be between 0 and -n_features -1.

    • +n_features - 1.

    • mode ({"svd", "svdr", "qr"}) – Indicates which decomposition should be used to split a node after contracting it. See more at svd_(), svdr_(), qr_(). diff --git a/docs/_build/html/objects.inv b/docs/_build/html/objects.inv index 1892eb002a96b66f3ace36a7d98596349b80f5d8..c4de50f51c30dfe8482bfc2236431fcc33833fcb 100644 GIT binary patch delta 1158 zcmV;11bO@T6#Epg1qOdIZ~^ifSL(L+=wZ8hBX2Fx)<}4FSv1mfOM#0xWTAEhHe_jH z&I=7o+tcwOAKQ3!8o{&xZgv>C_aMiN{gkYL}xx)-T6_t6`1; zS&(WDTxvTKTwXW|Y;J&-wQwt1{naCI;~NG{Om=HUNH;76atMDMNAt7-fCsWXtrwFt;21X+%MaaUHTUbE^oWrATf+_}R$kmHo z;Gl7MOwd#-Q}}_qH+6;=)R?AeGXZ$ILICSr1iV^AkSjg}y=Vd15rpps66Dbzi{Rw}388-vNC1IALMQ|hN+R@kv@n4Iks1W6H3&{D5S&^dSh+yZdV$~s1HmZ< z5<)V7HoFK`G!WdJPq33dLC^Xm#I#QW&HLFYA8v8o4RLc@V)JaomyX=xn|Qu=1!aR- zWF1Y3>!~Z?ZGHlAn=JcHz>bp@p8Gm|+h35YE4=jX+l7CAh4tx*{&Y!xz2>;C7aV4q z`ovFD&z`Of1P59mCLm_AMD5MGMCkA5Eg!Y5tJlwfu57&nEf5nBGg+ecW?drm_jB6E zGWC6}X5u}X74L)eXeT~ia(8Wa=6fe2+TIr!ecI6f?4l2@`hbuh!rO>qGV$+Vi;@7? z4{!H=c(;G3{c@o<$lny?%|r*{35C69R+Kw$$TcU(Uz0qx1;+ez=c3Oqe?Q`KEh^wtw;H&D!Xx{k^ewH`kX}$Eu6} zA@fKJo$}u{!xtm_kcn3&qvye~P4{kIA2@nrFZzGd{vHETw&Upp#Pm)Nbl}nq1OGXM zG)F5Nf7m}a-DR~ay(_A>jsNAwC^DzZ%=CvF$W4EAhUn3#88h9HYgp^s)NqfWCZp5( zam|6n?s#LdJF=-J%08esr$%4h-}a)3?mAuWniK8SWyw>yZJ__}yo#cv5k8Z)v z%f)}(m&&2Jf-_}CVF0X-RhVsc{)HX*MwdEQ_L+ls!|R*l#V_yZUZ}#p^KJE9H8C6>!;dES+e;%mH9w2JD;_4^+%bQBi*z0p?98LD?rLZMRb>3SucN$b{+ur)}X!r#Kb7ohHG>M+dLg#*2 zlaH+fpXMC+L^JV|+76?qi#b@QL1+0>Kem3q?375%NS4Z+8bzA3*_s?=b9=C^ht1E; zOeRfYCz5SthTX`dX-l^g50GuQvufIj#XQ6$-(-?a`!Sb|_!PWOwP_C~6Vf{iZ)DrF Y+1ts9%gCwBoAzQRLp{^-|GM#((2x8~VgLXD delta 1155 zcmV-}1bqAZ6!;Xd1qOfGB5T(69^L;}uhy*v+F}Q9w?!j8w-mV0K~`KxU}KLa=Dg6b z{5u^l1)}^Ri~cr1(SNR=kMk`27B>BSoeu$S_NXZ^Gl-+W6(L7~EJTh2SBxA5vLMwQ zxYTwexV&%_*xUfEPvMrP`pZDz#y1R@nCupPkZxECkHANNR#OPZ4Ny42(ujijWm3w?cvlIEP2w%~TA~kgHd%z(M2i zn4qbanD7I4Z|V#$s4-2`W&-eZg#Z?;2zc3tAeU|kdi4RawFlqUBgor6g4X`v%`4=_ z6~W5`5<(x400Mu3gir`1ltk!nO<@89A~gtBYY?1RAUL%^uyTQ*^#Z{O27*%zB!pxD z?OGA6Xdt*bpI|3_f}ZtBh-se$n)kC)KHRIi8{+2nw&vN0FCDqXH}RnE3d#nv$U2%5 z*Hc%(+x!ILHd*$YfE_0*Jok0_w!a`(S9s~&w+sCW>(hS~{pphYdd+cNFF4FJ^@*RR z9wJ>C2oAJBOhC+JiQ1cWiO}EATRv)ASFa!DT-kaDS|BDMX0k->&ALSB@8`6SW$OEW z%)|>ZD_-pA(N27YOMW;gEFz4ud6@o zB%(qmzb1KX3yk^c&PAVJ{)qm=_grxq^G)|MZ2#iXE3(m3`+H;WZmut{j#U@`L*|hd zI_1A@hHp6bArtRDM$dy|o9-pMK5+EvUG$~>JqCZIY{%0Hi0Pdk=)k2J2L5vhX^vJl z{;+>;y31-;dRJ7h4gbrHQDjb+nduKVkemMK4AG-eGiJIY*Ra;Nso@?$O-85nbC&~) z-SNg^cVtsdlzl*NPL000zwJd6-F3R$H7DAu%aqq0*9CQ-d=%@x@NhSxX8i(lT+y-mpX$h?09w6IpXVtV5i+PAizR4t;_G2y^@hNznYSSJ}CZu;3-pICTv$vBI VmyuJMH|@nthI*#u{{aBMgPFRsNxA?4 diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index 3692274..353d5d8 100644 --- a/docs/_build/html/searchindex.js +++ b/docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["api","components","contents","decompositions","embeddings","index","initializers","installation","models","operations","tutorials","tutorials/0_first_steps","tutorials/1_creating_tensor_network","tutorials/2_contracting_tensor_network","tutorials/3_memory_management","tutorials/4_types_of_nodes","tutorials/5_subclass_tensor_network","tutorials/6_mix_with_pytorch"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["api.rst","components.rst","contents.rst","decompositions.rst","embeddings.rst","index.rst","initializers.rst","installation.rst","models.rst","operations.rst","tutorials.rst","tutorials/0_first_steps.rst","tutorials/1_creating_tensor_network.rst","tutorials/2_contracting_tensor_network.rst","tutorials/3_memory_management.rst","tutorials/4_types_of_nodes.rst","tutorials/5_subclass_tensor_network.rst","tutorials/6_mix_with_pytorch.rst"],objects:{"tensorkrowch.AbstractNode":[[1,1,1,"","axes"],[1,1,1,"","axes_names"],[1,2,1,"","contract_between"],[1,2,1,"","contract_between_"],[1,1,1,"","device"],[1,2,1,"","disconnect"],[1,1,1,"","dtype"],[1,1,1,"","edges"],[1,2,1,"","get_axis"],[1,2,1,"","get_axis_num"],[1,2,1,"","get_edge"],[1,2,1,"","in_which_axis"],[1,2,1,"","is_connected_to"],[1,2,1,"","is_data"],[1,2,1,"","is_leaf"],[1,2,1,"","is_node1"],[1,2,1,"","is_resultant"],[1,2,1,"","is_virtual"],[1,2,1,"","make_tensor"],[1,2,1,"","mean"],[1,2,1,"","move_to_network"],[1,1,1,"","name"],[1,2,1,"","neighbours"],[1,1,1,"","network"],[1,2,1,"","node_ref"],[1,2,1,"","norm"],[1,2,1,"","numel"],[1,2,1,"","permute"],[1,2,1,"","permute_"],[1,1,1,"","rank"],[1,2,1,"","reattach_edges"],[1,2,1,"","reset_tensor_address"],[1,2,1,"","set_tensor"],[1,2,1,"","set_tensor_from"],[1,1,1,"","shape"],[1,2,1,"","size"],[1,2,1,"","split"],[1,2,1,"","split_"],[1,2,1,"","std"],[1,1,1,"","successors"],[1,2,1,"","sum"],[1,1,1,"","tensor"],[1,2,1,"","tensor_address"],[1,2,1,"","unset_tensor"]],"tensorkrowch.Axis":[[1,2,1,"","is_batch"],[1,2,1,"","is_node1"],[1,1,1,"","name"],[1,1,1,"","node"],[1,1,1,"","num"]],"tensorkrowch.Edge":[[1,1,1,"","axes"],[1,1,1,"","axis1"],[1,1,1,"","axis2"],[1,2,1,"","change_size"],[1,2,1,"","connect"],[1,2,1,"","contract"],[1,2,1,"","contract_"],[1,2,1,"","copy"],[1,2,1,"","disconnect"],[1,2,1,"","is_attached_to"],[1,2,1,"","is_batch"],[1,2,1,"","is_dangling"],[1,1,1,"","name"],[1,1,1,"","node1"],[1,1,1,"","node2"],[1,1,1,"","nodes"],[1,2,1,"","qr"],[1,2,1,"","qr_"],[1,2,1,"","rq"],[1,2,1,"","rq_"],[1,2,1,"","size"],[1,2,1,"","svd"],[1,2,1,"","svd_"],[1,2,1,"","svdr"],[1,2,1,"","svdr_"]],"tensorkrowch.Node":[[1,2,1,"","change_type"],[1,2,1,"","copy"],[1,2,1,"","parameterize"]],"tensorkrowch.ParamNode":[[1,2,1,"","change_type"],[1,2,1,"","copy"],[1,1,1,"","grad"],[1,2,1,"","parameterize"]],"tensorkrowch.ParamStackNode":[[1,1,1,"","edges_dict"],[1,1,1,"","node1_lists_dict"],[1,2,1,"","reconnect"],[1,2,1,"","unbind"]],"tensorkrowch.StackEdge":[[1,2,1,"","connect"],[1,1,1,"","edges"],[1,1,1,"","node1_list"]],"tensorkrowch.StackNode":[[1,1,1,"","edges_dict"],[1,1,1,"","node1_lists_dict"],[1,2,1,"","reconnect"],[1,2,1,"","unbind"]],"tensorkrowch.TensorNetwork":[[1,2,1,"","add_data"],[1,1,1,"","auto_stack"],[1,1,1,"","auto_unbind"],[1,2,1,"","contract"],[1,2,1,"","copy"],[1,1,1,"","data_nodes"],[1,2,1,"","delete_node"],[1,1,1,"","edges"],[1,2,1,"","forward"],[1,1,1,"","leaf_nodes"],[1,1,1,"","nodes"],[1,1,1,"","nodes_names"],[1,2,1,"","parameterize"],[1,2,1,"","reset"],[1,1,1,"","resultant_nodes"],[1,2,1,"","set_data_nodes"],[1,2,1,"","trace"],[1,2,1,"","unset_data_nodes"],[1,1,1,"","virtual_nodes"]],"tensorkrowch.decompositions":[[3,3,1,"","mat_to_mpo"],[3,3,1,"","vec_to_mps"]],"tensorkrowch.embeddings":[[4,3,1,"","add_ones"],[4,3,1,"","basis"],[4,3,1,"","discretize"],[4,3,1,"","poly"],[4,3,1,"","unit"]],"tensorkrowch.models":[[8,0,1,"","ConvMPS"],[8,0,1,"","ConvMPSLayer"],[8,0,1,"","ConvPEPS"],[8,0,1,"","ConvTree"],[8,0,1,"","ConvUMPS"],[8,0,1,"","ConvUMPSLayer"],[8,0,1,"","ConvUPEPS"],[8,0,1,"","ConvUTree"],[8,0,1,"","MPO"],[8,0,1,"","MPS"],[8,0,1,"","MPSData"],[8,0,1,"","MPSLayer"],[8,0,1,"","PEPS"],[8,0,1,"","Tree"],[8,0,1,"","UMPO"],[8,0,1,"","UMPS"],[8,0,1,"","UMPSLayer"],[8,0,1,"","UPEPS"],[8,0,1,"","UTree"]],"tensorkrowch.models.ConvMPS":[[8,2,1,"","copy"],[8,1,1,"","dilation"],[8,2,1,"","forward"],[8,1,1,"","in_channels"],[8,1,1,"","kernel_size"],[8,1,1,"","padding"],[8,1,1,"","stride"]],"tensorkrowch.models.ConvMPSLayer":[[8,2,1,"","copy"],[8,1,1,"","dilation"],[8,2,1,"","forward"],[8,1,1,"","in_channels"],[8,1,1,"","kernel_size"],[8,1,1,"","out_channels"],[8,1,1,"","padding"],[8,1,1,"","stride"]],"tensorkrowch.models.ConvPEPS":[[8,1,1,"","dilation"],[8,2,1,"","forward"],[8,1,1,"","in_channels"],[8,1,1,"","kernel_size"],[8,1,1,"","padding"],[8,1,1,"","stride"]],"tensorkrowch.models.ConvTree":[[8,1,1,"","dilation"],[8,2,1,"","forward"],[8,1,1,"","in_channels"],[8,1,1,"","kernel_size"],[8,1,1,"","padding"],[8,1,1,"","stride"]],"tensorkrowch.models.ConvUMPS":[[8,2,1,"","copy"],[8,1,1,"","dilation"],[8,2,1,"","forward"],[8,1,1,"","in_channels"],[8,1,1,"","kernel_size"],[8,1,1,"","padding"],[8,1,1,"","stride"]],"tensorkrowch.models.ConvUMPSLayer":[[8,2,1,"","copy"],[8,1,1,"","dilation"],[8,2,1,"","forward"],[8,1,1,"","in_channels"],[8,1,1,"","kernel_size"],[8,1,1,"","out_channels"],[8,1,1,"","padding"],[8,1,1,"","stride"]],"tensorkrowch.models.ConvUPEPS":[[8,1,1,"","dilation"],[8,2,1,"","forward"],[8,1,1,"","in_channels"],[8,1,1,"","kernel_size"],[8,1,1,"","padding"],[8,1,1,"","stride"]],"tensorkrowch.models.ConvUTree":[[8,1,1,"","dilation"],[8,2,1,"","forward"],[8,1,1,"","in_channels"],[8,1,1,"","kernel_size"],[8,1,1,"","padding"],[8,1,1,"","stride"]],"tensorkrowch.models.MPO":[[8,1,1,"","bond_dim"],[8,1,1,"","boundary"],[8,2,1,"","contract"],[8,2,1,"","copy"],[8,1,1,"","in_dim"],[8,2,1,"","initialize"],[8,1,1,"","left_node"],[8,1,1,"","mats_env"],[8,1,1,"","n_batches"],[8,1,1,"","n_features"],[8,1,1,"","out_dim"],[8,2,1,"","parameterize"],[8,1,1,"","right_node"],[8,2,1,"","set_data_nodes"]],"tensorkrowch.models.MPS":[[8,1,1,"","bond_dim"],[8,1,1,"","boundary"],[8,2,1,"","canonicalize"],[8,2,1,"","canonicalize_univocal"],[8,2,1,"","contract"],[8,2,1,"","copy"],[8,1,1,"","in_env"],[8,1,1,"","in_features"],[8,1,1,"","in_regions"],[8,2,1,"","initialize"],[8,1,1,"","left_node"],[8,1,1,"","mats_env"],[8,1,1,"","n_batches"],[8,1,1,"","n_features"],[8,2,1,"","norm"],[8,1,1,"","out_env"],[8,1,1,"","out_features"],[8,1,1,"","out_regions"],[8,2,1,"","parameterize"],[8,2,1,"","partial_density"],[8,1,1,"","phys_dim"],[8,1,1,"","right_node"],[8,2,1,"","set_data_nodes"]],"tensorkrowch.models.MPSData":[[8,2,1,"","add_data"],[8,1,1,"","bond_dim"],[8,1,1,"","boundary"],[8,2,1,"","initialize"],[8,1,1,"","left_node"],[8,1,1,"","mats_env"],[8,1,1,"","n_batches"],[8,1,1,"","n_features"],[8,1,1,"","phys_dim"],[8,1,1,"","right_node"]],"tensorkrowch.models.MPSLayer":[[8,2,1,"","copy"],[8,1,1,"","in_dim"],[8,2,1,"","initialize"],[8,1,1,"","out_dim"],[8,1,1,"","out_node"],[8,1,1,"","out_position"]],"tensorkrowch.models.PEPS":[[8,1,1,"","bond_dim"],[8,1,1,"","boundary"],[8,2,1,"","contract"],[8,1,1,"","in_dim"],[8,2,1,"","initialize"],[8,1,1,"","n_batches"],[8,1,1,"","n_cols"],[8,1,1,"","n_rows"],[8,2,1,"","set_data_nodes"]],"tensorkrowch.models.Tree":[[8,1,1,"","bond_dim"],[8,2,1,"","canonicalize"],[8,2,1,"","contract"],[8,2,1,"","initialize"],[8,1,1,"","n_batches"],[8,2,1,"","set_data_nodes"],[8,1,1,"","sites_per_layer"]],"tensorkrowch.models.UMPO":[[8,2,1,"","copy"],[8,2,1,"","initialize"],[8,2,1,"","parameterize"]],"tensorkrowch.models.UMPS":[[8,2,1,"","copy"],[8,2,1,"","initialize"],[8,2,1,"","parameterize"]],"tensorkrowch.models.UMPSLayer":[[8,2,1,"","copy"],[8,1,1,"","in_dim"],[8,2,1,"","initialize"],[8,1,1,"","out_dim"],[8,1,1,"","out_node"],[8,1,1,"","out_position"],[8,2,1,"","parameterize"]],"tensorkrowch.models.UPEPS":[[8,1,1,"","bond_dim"],[8,2,1,"","contract"],[8,1,1,"","in_dim"],[8,2,1,"","initialize"],[8,1,1,"","n_batches"],[8,1,1,"","n_cols"],[8,1,1,"","n_rows"],[8,2,1,"","set_data_nodes"]],"tensorkrowch.models.UTree":[[8,1,1,"","bond_dim"],[8,2,1,"","contract"],[8,2,1,"","initialize"],[8,1,1,"","n_batches"],[8,2,1,"","set_data_nodes"],[8,1,1,"","sites_per_layer"]],tensorkrowch:[[1,0,1,"","AbstractNode"],[1,0,1,"","Axis"],[1,0,1,"","Edge"],[1,0,1,"","Node"],[9,0,1,"","Operation"],[1,0,1,"","ParamNode"],[1,0,1,"","ParamStackNode"],[1,0,1,"","StackEdge"],[1,0,1,"","StackNode"],[1,0,1,"","Successor"],[1,0,1,"","TensorNetwork"],[9,3,1,"","add"],[9,3,1,"","connect"],[9,3,1,"","connect_stack"],[9,3,1,"","contract"],[9,3,1,"","contract_"],[9,3,1,"","contract_between"],[9,3,1,"","contract_between_"],[9,3,1,"","contract_edges"],[6,3,1,"","copy"],[9,3,1,"","disconnect"],[9,3,1,"","einsum"],[6,3,1,"","empty"],[9,3,1,"","mul"],[6,3,1,"","ones"],[9,3,1,"","permute"],[9,3,1,"","permute_"],[9,3,1,"","qr"],[9,3,1,"","qr_"],[6,3,1,"","rand"],[6,3,1,"","randn"],[9,3,1,"","rq"],[9,3,1,"","rq_"],[9,3,1,"","split"],[9,3,1,"","split_"],[9,3,1,"","stack"],[9,3,1,"","stacked_einsum"],[9,3,1,"","sub"],[9,3,1,"","svd"],[9,3,1,"","svd_"],[9,3,1,"","svdr"],[9,3,1,"","svdr_"],[9,3,1,"","tprod"],[9,3,1,"","unbind"],[6,3,1,"","zeros"]]},objnames:{"0":["py","class","Python class"],"1":["py","property","Python property"],"2":["py","method","Python method"],"3":["py","function","Python function"]},objtypes:{"0":"py:class","1":"py:property","2":"py:method","3":"py:function"},terms:{"0":[1,3,4,5,6,8,9,11,13,15,16,17],"00":4,"0000":4,"0000e":4,"0086":1,"0101":1,"0188":1,"0234":1,"0371":1,"0412":1,"0440":1,"0445":1,"0465":1,"0501":1,"0521":1,"0633":1,"0639":11,"0704":1,"0728":11,"0743":1,"0750":11,"08":4,"0806":1,"0820":11,"08595":5,"09":8,"0913":11,"0983":11,"0998":11,"1":[1,3,4,5,6,8,9,17],"10":[1,4,5,8,9,11,13,16,17],"100":[1,4,5,8,9,12,13,14,15],"10000":[11,17],"1024":[11,17],"1091":1,"1123":11,"1211":1,"1308":11,"1371":1,"14":17,"1496":1,"15":[1,9,13],"1573":11,"161204":11,"1654":1,"1878":17,"1955":11,"1990":11,"1998":1,"1e":[8,11,16,17],"2":[1,4,8,9,17],"20":[1,8,9,17],"2052":17,"2091":1,"2095":1,"2111":1,"2203":17,"2254":1,"2306":5,"2316":1,"2357":17,"236220":11,"2380":1,"2390":1,"2449":1,"2461":1,"2477":1,"2503":1,"2517":1,"2618":17,"2730":1,"2775":1,"2799":1,"28":[11,17],"2808":1,"2840":17,"2856":1,"2866":1,"2898":1,"2d":8,"3":[1,4,5,8,9,15,17],"30":17,"3083":11,"3088":1,"3139":1,"3149":17,"32":[8,11],"3222":1,"3340":1,"3370":1,"3371":1,"3381":1,"3393":1,"3427":1,"3489":1,"3508":1,"3513":1,"3585":1,"3711e":4,"3714":17,"3760":1,"3784":1,"3821":1,"4":[1,4,8,9,13,15,17],"40":17,"4005":1,"4181":1,"4184":1,"4216":1,"4383":1,"4385":1,"4402":1,"4431":1,"4461":1,"4572":1,"4588":1,"4731":1,"4761":1,"4974":1,"499320":17,"4f":[11,17],"5":[1,4,5,8,9,12,13,14,15,17],"50":17,"500":[5,11,16,17],"5000":4,"5021":1,"5029":1,"5069":1,"5161":1,"5224":17,"5401":1,"5406":1,"553186":17,"5567":1,"5570":1,"5676":11,"5731":1,"5760":1,"5797":1,"5920":1,"6":[1,4,8,17],"60":17,"60000":[11,17],"6023":1,"6149":11,"6225":1,"6227":1,"6295":1,"6356":1,"6399":1,"6492":1,"6495":1,"6524":1,"6545":1,"6551":1,"6811":1,"6925":1,"6982":1,"7":[1,5,8,9,13,14,17],"70":17,"75":4,"7500":4,"7592":1,"7688":1,"7752":1,"7812":1,"7997":1,"8":[5,8,11],"80":17,"8090":1,"8147":1,"8227":1,"8361":1,"8387":1,"8441":1,"8442":1,"8502":17,"8627":17,"8633":1,"8649":1,"8795":17,"8815":1,"8820":11,"8848":17,"8851":17,"8859":1,"8901":17,"8911":1,"8915":17,"8948":17,"8968":17,"8984":17,"9":[5,8,11,16,17],"90":17,"9006":1,"9009":17,"9011":[11,17],"9026":17,"9048":17,"9053":11,"9125":17,"9145":1,"9174":17,"9231":17,"9265":1,"9284":17,"9320":1,"9371":11,"9396":11,"9400":11,"9432":1,"9509":11,"9526":11,"9551":1,"9561":1,"9585":11,"9600":11,"9618":1,"9621":11,"9625":11,"9668":11,"9677":11,"9696":11,"9700":11,"9721":11,"9729":11,"9731":11,"9734":11,"9736":11,"9738":11,"9743":11,"9768":11,"9775":11,"9793":11,"98":17,"9844":1,"99":11,"9925":1,"9942":1,"9957":1,"abstract":1,"boolean":[1,6,8],"byte":[11,17],"case":[1,3,8,14,15,16],"class":[0,1,8,11,13,16,17],"default":[1,4,8,14,15],"do":[1,8,11,12,14,15,16],"final":[1,8,13,16],"float":[1,3,6,8,9],"function":[1,8,9,13,17],"garc\u00eda":5,"import":[1,5,12,13,14,15,16,17],"int":[1,3,4,6,8,9],"n\u00ba":[11,17],"new":[1,4,6,8,9,11,12,13,14,16,17],"p\u00e9rez":5,"return":[1,3,4,6,8,9,11,12,13,14,16,17],"super":[1,16,17],"true":[1,5,6,8,9,11,13,14,15,16,17],"try":[13,17],"while":[1,5,13,14,15],A:[1,5,8,9,12],And:[14,17],As:[5,11,12,13,14],At:[1,12],Be:[1,13],But:[13,14,16,17],By:[1,4,5,8,11,12],For:[1,8,9,12,13,14,15,16],If:[1,3,4,5,6,8,9,12,14,16],In:[1,3,5,8,9,11,12,13,14,15,16,17],Is:8,It:[1,3,5,6,8,9,11,12,13,17],Its:[1,9],Not:16,Of:[14,16],On:1,One:[1,12],That:[1,3,4,8,9,13,14,16,17],The:[1,3,4,5,8,9,10,12,13,14,17],Then:[1,8,14],There:[1,8,13,15,16],These:[1,3,5,8,12,13,15],To:[1,3,5,7,8,9,11,12,13,14,15,16],With:[1,5,9,12,13,16],_:[1,8,9,11,12,16,17],__call__:1,__init__:[1,16,17],_channel:8,_copi:1,_dim:1,_percentag:[1,3,8,9],_size:8,_size_0:8,_size_1:8,_size_:1,a_:9,abil:5,abl:[1,12,13,16],about:[1,9,12,13,14,15,16],abov:[1,12,16],abstractnod:[0,9],acc:[11,17],acceler:1,accept:13,access:[1,6,12,13,14],accomplish:[1,3,8,15],accord:[1,9],accordingli:8,account:[1,8,15],accumul:8,accuraci:[11,17],achiev:1,act:[1,8,12,14],action:1,activ:1,actual:[1,8,12,13,14,17],ad:[1,4,8,9,13,16],adam:[11,17],adapt:9,add:[0,1,8,11,13,16,17],add_data:[1,8,15,16],add_on:[0,17],addit:[1,8,9],addition:1,address:[1,12,14],admit:8,advanc:[1,5,10],advantag:[14,16],affect:[1,9],after:[1,8,11,17],afterward:[1,8,9],again:[8,11,14,16],against:8,aim:[8,11],alejandro:5,algorithm:[1,8,14,16,17],all:[1,3,4,6,8,9,11,12,13,14,15,16,17],allow:[1,8],almost:[1,13,14,15,17],along:[1,9],alreadi:[1,8,9,11,12,13,16],also:[1,3,5,7,8,9,11,12,13,14,15,16],alter:8,although:[1,12,13,14,15,16],alwai:[1,5,8,9,11,12,13,14,15,16],among:8,amount:[9,11],an:[1,3,4,5,8,9,11,12,13,14,15,16],ancillari:[1,14,15],ani:[1,8,9,12,13,16],anoth:[1,8,9,12,13],anymor:1,api:2,appear:[1,9,12],append:[13,14,15,16,17],appli:[1,9,13],approach:5,appropi:[8,16,17],approxim:1,ar:[1,3,4,5,6,7,8,9,11,12,13,15,16,17],arang:4,arbitrari:1,architectur:5,archiveprefix:5,arg:[1,8],argument:[1,3,8,9,16],aros:1,around:11,arrai:12,arrow:9,arxiv:5,assert:[1,5,8,9,12,13,14,15],assign:8,assum:[1,4,8,9],attach:[1,6,9,12],attribut:[1,8,16],author:5,auto_stack:[1,9,11,14,15,16,17],auto_unbind:[1,9,11,14,16,17],automat:[1,9,12,13,14],auxiliari:9,avail:[5,11,12],avoid:[1,8,14],awar:[1,13],ax:[1,6,8,9,12,13],axes_nam:[1,5,6,9,12,13,14,15,16],axi:[0,4,6,9,12,16,17],axis1:1,axis2:1,axis_0:1,axis_1:1,axis_2:1,axis_n:1,b:[4,9,13],b_1:3,b_:9,b_m:3,backpropag:[11,17],backward:[1,5,11,13,17],base:[1,4,8,9,13],basi:[0,8],basic:[1,5,12,13],batch:[1,3,4,5,8,9,11,12,13,15,16],batch_0:[4,8],batch_1:[1,8,16],batch_m:1,batch_n:[4,8,16],batch_siz:[8,11,17],becaus:[1,8,14,17],becom:[1,5,8,9],been:[1,8,9,12,16],befor:[1,8,11,12,16,17],beforehand:12,begin:[4,11,12,17],behav:[1,14],behavior:8,behaviour:[1,8,12,14,15],being:[1,4,8,9,13],belong:[1,6,8,11,12,13],besid:[1,8,9,12],best:5,better:12,between:[1,3,4,5,8,9,12,14,15,17],big:[8,13],binom:4,blank:[1,6],bmatrix:4,bodi:12,bond:[3,8],bond_dim:[5,8,11,17],bool:[1,6,8],border:8,both:[1,8,9,12,13,14,15,16],bottom:[8,17],boudari:8,bound:[1,3,8,9],boundari:[3,8],bracket:1,bring:11,build:[1,5,10,13],built:[5,11,13,16],bunch:[1,13,16],c_:9,cach:[1,14],calcul:14,call:[1,8,9,11,13,16,17],callabl:9,can:[1,3,5,7,8,9,11,12,13,14,15,16,17],cannot:[1,6,8,9,13,15],canon:[8,11,17],canonic:[8,11,17],canonicalize_univoc:8,carri:[1,8,9,12],cast:1,cat:17,caus:8,cdot:[3,4,8],center:8,central:[1,12,17],certain:[1,4,5,6,9],chang:[1,5,8,12,14,16,17],change_s:1,change_typ:1,channel:8,charact:1,check:[1,8,9,11,12,13,14,15,17],check_first:9,child:1,chose:15,classif:[8,11],classifi:[11,16],clone:[5,7,8],close:8,cnn:17,cnn_snake:17,cnn_snakesb:17,co:4,code:[1,5,12,17],coincid:[8,9,12],collect:[1,9,13,14],column:8,com:[5,7],combin:[1,12,16,17],come:[1,9,11,12,15,16],comma:9,command:[5,7],common:[1,8,11,16],compar:14,complementari:8,complet:[1,9],compon:[0,4,5,9,11,13],compos:[11,17],comput:[1,4,5,7,8,9,11,13,14,16,17],concept:5,condit:[3,8,9],configur:5,conform:1,connect:[0,1,5,8,12,13,14,15,16],connect_stack:0,consecut:[3,8],consid:8,consist:[1,9],construct:[1,5,13,14],contain:[1,6,8,12,13,14,15],continu:11,contract:[0,1,5,8,10,11,12,14,15,16],contract_:[0,1,13],contract_between:[0,1,13],contract_between_:[0,1,13],contract_edg:[0,1,13],contract_edges_ip:[1,9],contrast:8,contrat:8,control:[1,12,14],conv2d:[8,17],conv_mp:8,conv_mps_lay:8,conv_pep:8,conv_tre:8,conveni:[8,15],convent:[1,9,13,16],convmp:0,convmpslay:[0,17],convolut:[8,16,17],convpep:0,convtre:0,convump:0,convumpslay:0,convupep:0,convutre:0,copi:[0,1,8],core:[8,12,17],corner:8,correct:[1,14],correctli:9,correspond:[1,3,4,8,9,12,13,14,16],costli:[1,8,14],could:[8,11,12,14,16],count:11,coupl:[1,12,15],cours:[14,16],cpu:[1,11,16,17],creat:[1,5,6,8,9,10,13,14,15,16],creation:[5,9],crop:1,crossentropyloss:[11,17],cuda:[1,11,16,17],cum:[1,3,8,9],cum_percentag:[1,3,8,9,11,17],current:[1,8],custom:[1,5,8,10],cut:[3,11,17],cutoff:[1,3,8,9],d:[4,5],d_1:3,d_n:3,dagger:[1,9],dangl:[1,9,11,12,13],data:[1,4,5,8,9,13,15,16,17],data_0:[1,15],data_1:1,data_nod:[1,13,15,16],data_node_:13,dataload:[11,17],dataset:[8,11,17],david:[4,5],ddot:4,de:[1,6,8,13],decompos:[3,9],decomposit:[0,1,8,9,11,13,17],decreas:1,dedic:8,deep:[5,11],deepcopi:1,def:[1,11,16,17],defin:[1,4,5,8,12,13,15,16,17],degre:4,del:[1,9],delet:[1,9],delete_nod:1,densiti:8,depend:[1,3],deriv:8,descent:[12,13],describ:[1,8,16],design:8,desir:[4,13,14,15,16],detail:[1,5,8,13],determin:5,develop:5,deviat:6,devic:[1,6,8,11,16,17],devot:14,df:1,diagon:[1,6,9],diagram:12,dictionari:1,did:17,differ:[1,5,8,9,10,11,12,13,14,16,17],differenti:[5,10,12],dilat:8,dim:[4,11,17],dimens:[1,3,4,8,9,11,12,16],dimension:[12,17],directli:[1,5,7,9,12,13,14,15],disconnect:[0,1,8,12],discret:0,distinct:[1,6],distinguish:15,distribut:[6,8],divers:5,document:[1,9],doe:[1,8,12,14],don:9,done:[1,3,8,12],down:8,down_bord:8,download:[5,7,17],drawn:6,drop_last:[11,17],dtype:1,duplic:8,dure:[1,11,14,15],dynam:8,e:[1,4,5,8,9,15],each:[1,3,4,6,8,9,11,12,13,14,15,16,17],earlier:12,easi:[1,5],easier:12,easili:[1,12,13,16,17],edg:[0,5,6,8,11,12,13,14,15,16,17],edge1:[1,9],edge2:[1,9],edgea:1,edgeb:1,edges_dict:1,effect:[1,13],effici:[1,5,12],einstein:13,einsum:[0,13],either:[8,9],element:[1,4,5,6,8,9,12],element_s:[11,17],els:[11,16,17],emb:[11,16],emb_a:4,emb_b:4,embed:[0,8,11,16,17],embedd:4,embedding_matric:8,empti:[0,1,8,12,13,14],enabl:[1,5,8,12,13,14],end:[1,4,9],engin:12,enhanc:5,enough:[1,8],ensur:[1,5],entail:[1,14],entangl:8,entir:1,enumer:[1,8],environ:8,epoch:[1,11,16,17],epoch_num:[11,17],eprint:5,equal:[1,8,16],equilibrium:11,equival:[1,4,8,12,17],essenti:[1,5],etc:[1,9,12,16],evalu:13,even:[1,3,5,8,12,14,16],evenli:8,everi:[1,9,12,14,17],exact:1,exactli:1,exampl:[1,4,8,9,11,13,15,16],exceed:8,excel:5,except:[6,8],exclud:[1,15],execut:9,exist:[1,8,9,13],expand:[1,4,16],expect:[3,8],experi:[1,5,12,14],experiment:5,explain:[1,12,13,14],explan:[1,8,9],explicitli:[1,15,16],explod:8,explor:[5,12],express:9,extend:1,extra:[3,8,9],extract:[8,12],extractor:17,ey:16,eye_tensor:16,f:[11,12,13,14,15,17],facilit:[1,5,9,12],fact:[1,15,16],factor:8,fals:[1,6,8,9,11,13,14,16,17],familiar:[5,12],fashion:13,fashionmnist:17,faster:[1,16],fastest:5,featur:[1,4,8,9,12,13,14,15,17],feature_dim:[1,16],feature_s:8,fed:17,few:5,file:5,fill:[1,6,12,13,16],finish:[12,16],finit:8,first:[1,4,5,8,9,10,12,13,14,15,17],fix:[1,12,13],flat:8,flatten:8,flavour:1,flip:17,fn_first:9,fn_next:9,folder:[5,7],follow:[1,5,7,8,9],forget:1,form:[1,8,11,12,13,15,17],former:[1,8,9],forward:[1,8,16,17],four:16,frac:[1,3,4,8,9],framework:5,free:8,friendli:5,from:[1,5,6,7,8,9,11,12,13,15,16,17],from_sid:8,from_siz:8,front:1,full:11,fulli:5,func:[1,8],functool:17,fundament:5,further:[1,5],furthermor:[1,14,16],futur:[1,14],g:[1,8,9,15],gain:5,garc:5,gaussian:8,ge:[1,3,8,9],gener:[1,14],get:[1,11,12,16,17],get_axi:[1,12],get_axis_num:[1,12],get_edg:1,git:[5,7],github:[5,7],give:[1,12,14,15],given:[1,4,8],glimps:11,go:[1,9,11,13,14,17],goal:5,good:[1,11],gpu:[11,16],grad:[1,5,13],gradient:[1,5,8,12,13],graph:[1,12,14,16],grasp:5,greater:[1,16],greatli:5,grid:8,grid_env:8,group:9,guid:5,ha:[1,3,8,9,11,12,14,15,16,17],had:[1,9,14],hand:[1,5,8,16],happen:[1,3,8,14,17],har:5,hat:4,have:[1,3,4,8,9,11,12,13,14,15,16,17],heavi:16,height:[8,11,16],help:[1,14],henc:[1,6,9,11,12,13,14,16],here:[1,8,13],hidden:[1,15],high:[1,4,6],highli:5,hint:1,hold:[13,15],hood:14,horizont:8,how:[1,5,8,9,10,11,13,15,17],howev:[1,5,8,9,12,13,14],http:[5,7],hundread:13,hybrid:[5,10],i:[1,3,5,8,9,12,13,14,15,16],i_1:6,i_n:6,ideal:5,ident:8,identif:5,idx:12,ijb:[9,13],ijk:9,im:9,imag:[8,11,16,17],image_s:[11,16,17],immers:5,implement:[1,5,11,17],improv:11,in_1:3,in_channel:[8,17],in_dim:[5,8,11],in_env:8,in_featur:8,in_n:3,in_region:8,in_which_axi:1,includ:[1,5,8,12],incorpor:5,inde:1,independ:[1,9],index:[1,12,14],indic:[1,6,8,9,12,13,14,15],infer:[1,8,9,12,14,16],inform:[1,5,8,9,12,13,14],ingredi:[1,12],inherit:[1,8,9,15],inic:16,init:13,init_method:[1,8,11,12,13,17],initi:[0,1,8,11,12,13,16,17],inlin:8,inline_input:8,inline_mat:8,inner:1,input:[1,3,8,9,11,12,13,14,15,16,17],input_edg:[1,15,16],input_nod:16,insid:[1,5,7],insight:13,instal:[2,11,12],instanc:[1,9,14,15,16],instanti:[1,3,8,12,14,15,16],instati:12,instead:[1,8,13,14,15,16,17],integ:4,integr:5,intend:[1,8],interior:8,intermedi:[1,13,15,16],intern:8,intric:5,introduc:8,introduct:5,invari:[1,8,14,15],inverse_memori:1,involv:[1,9,14],is_attached_to:1,is_avail:[11,16,17],is_batch:[1,12],is_connected_to:1,is_dangl:[1,12],is_data:[1,15],is_leaf:[1,15],is_node1:1,is_result:[1,15],is_virtu:[1,15],isinst:[1,13],isn:[11,12],isometri:8,issu:1,item:[11,17],iter:[1,8,14],its:[1,5,6,8,9,12,14,16,17],itself:[1,8,16],itselv:8,j:[1,4,5,9],jkb:[9,13],jl:9,jo:5,joserapa98:[5,7],just:[1,5,8,12,14,15,16,17],k:[5,9],keep:[1,3,8,9,14],kei:[1,5,12],kept:[1,3,8,9],kernel:8,kernel_s:[8,17],kerstjen:5,keyword:[1,8],kib:[9,13],kind:[1,11],klm:9,know:[1,12,13,14],known:16,kwarg:[1,8],l2_reg:[11,17],l:[4,9],label:[8,11,15,17],lambda:[11,17],larger:1,largest:1,last:[1,8,9,16,17],later:16,latter:[1,8],layer:[1,5,8,11,16,17],ldot:6,lead:[1,15],leaf:[1,9,15,16],leaf_nod:[1,15],learn:[1,5,9,11,12,13,14,15,16,17],learn_rat:[11,17],learnabl:13,least:[1,9,11,14,17],leav:[8,14],left1:13,left2:13,left:[1,5,8,9,12,13,14,15,16,17],left_bord:8,left_down_corn:8,left_nod:8,left_up_corn:8,leg:1,len:[9,16],length:[1,8],let:[11,12,13,14,16,17],level:[1,4,12],leverag:12,lfloor:4,li:[1,5,12],librari:[5,12,17],like:[0,1,5,8,11,12,13,14,15,16,17],limit:6,line:[5,8,17],linear:[5,16],link:1,list:[1,3,6,8,9,12,13,16],load:[11,16],load_state_dict:16,loader:[11,17],local:[4,8],locat:[1,8],logarithm:8,logit:[11,17],longer:[1,14],loop:[11,16],lose:11,loss:17,loss_fun:[11,17],lot:[1,11],low:[1,4,6,8],lower:[1,3,6,8,9],lr:[11,17],lvert:4,m:[1,3,5,7,9],machin:[5,11],made:[1,9],mai:[1,3,5,8],main:[1,12,13,14,16],mainli:1,maintain:1,make:[1,12,13,14,15],make_tensor:[1,8],manag:[1,16],mandatori:[1,9],mani:[1,8,11,12,14,17],manipul:12,manual:[1,8,16],manual_se:[11,17],map:4,margin:8,marginalize_output:8,master:[5,7],mat:3,mat_to_mpo:0,match:[1,8,9],matric:[8,9,13,16],matrix:[1,3,4,5,8,9,11,12,14,16],mats_env:8,max:[11,17],max_bond:8,maximum:[4,8],maxpool2d:17,mayb:9,mb:[11,17],mean:[1,6],megabyt:[11,17],mehtod:12,member:1,memori:[1,5,10,11,12,15,16,17],mention:[8,16],method:[1,8,12,13,14,15,16],middl:8,might:[1,8,14,15,16],mile:4,mimic:16,minuend:9,misc:5,miscellan:[11,17],mit:5,mnist:11,mod:4,mode:[1,8,9,11,15,16,17],model:[0,1,5,10,12,13,14,15],modif:1,modifi:[1,13],modul:[1,5,7,8,11,12,13,16,17],modulelist:17,monomi:4,monturiol:5,mooth:5,more:[1,3,5,8,9,12,13,14,15],most:[1,5,12,15],move:[1,8,12],move_nam:1,move_to_network:[1,9],movec:9,mp:[0,3,5,11,12,13,14,15,16,17],mpo:[0,3,16],mps_data:8,mps_layer:8,mpsdata:[0,3],mpslayer:[0,5,11,16],much:[1,14,15,16,17],mul:[0,13],multi:12,multipl:[8,12,14],multipli:9,must:[1,3,9,12,16],my_model:5,my_nod:[1,14],my_paramnod:1,my_stack:1,mybatch:1,n:[1,4,5,6,8,11,17],n_:[1,4],n_batch:[3,8],n_col:8,n_epoch:16,n_featur:[5,8,11,16],n_param:[11,17],n_row:8,name:[1,5,6,9,11,12,13,14,16,17],name_:1,necessari:[1,8,9,11,12,16,17],need:[1,8,9,11,12,13,14,16],neighbour:[1,8,13],nelement:[11,17],net2:1,net:[1,5,9,12,13,14,15],network:[0,5,6,8,9,10,14,15,16],neural:[5,8,10,11],never:[1,9,15],nevertheless:5,new_edg:[1,9],new_edgea:1,new_edgeb:1,new_mp:16,new_nodea:[1,9],new_nodeb:[1,9],new_tensor:14,next:[1,8,9,12,13,14,15],nn:[1,5,8,11,12,13,16,17],no_grad:[11,17],node1:[1,5,9,12,13,14,15],node1_ax:[1,9],node1_list:1,node1_lists_dict:1,node2:[1,5,9,12,13,14,15],node2_ax:[1,9],node3:[13,14],node:[0,5,6,8,10,11,14,16,17],node_0:1,node_1:1,node_:[12,13,14,15],node_left:[1,9],node_n:1,node_ref:1,node_right:[1,9],nodea:[1,9],nodeb:[1,9],nodec:[1,9],nodes_list:9,nodes_nam:1,nodesa:9,nodesb:9,nodesc:9,non:[1,8,9,13,16],none:[1,3,5,6,8,9,13,16],norm:[1,8],normal:[1,6,8],notabl:5,notat:12,note:[1,5,9,12,13,16],noth:[1,12,14],now:[1,12,13,14,16,17],nu_batch:8,num:1,num_batch:[11,17],num_batch_edg:[1,15,16],num_epoch:[11,17],num_epochs_canon:11,num_test:[11,17],num_train:[11,17],number:[1,3,8,9,11,13,16,17],numel:1,nummber:1,o:5,obc:[3,8],object:[1,12,17],obtain:11,oc:8,occur:[1,14],off:[11,14,17],offer:5,often:[1,14],onc:[1,5,9,14],one:[1,3,8,9,11,12,13,14,15,16,17],ones:[0,1,4,8,12,13,15,17],ones_lik:[11,17],onli:[1,5,8,9,12,13,14,15,16],open:8,oper:[0,1,8,12,15,16],operand:[1,12,13],opposit:8,opt_einsum:[5,9,13],optim:[1,5,17],option:[1,3,4,5,6,8,9,12,16],order:[1,3,8,9,12,13,14,15,16],orient:8,origin:[1,4,8,9,11,15,17],orthogon:8,ot:8,other:[1,8,9,12,13,14,15,16,17],other_left:12,other_nod:14,otherwis:[1,8,9,17],otim:4,our:[11,12,13,14,17],out:[1,8,9,16],out_1:3,out_channel:[8,17],out_dim:[5,8,11],out_env:8,out_featur:8,out_n:3,out_nod:8,out_posit:8,out_region:8,output:[1,3,4,8,9,11,16],output_nod:16,outsid:[5,7],over:[1,13],overcom:1,overhead:14,overload:1,overrid:[1,8,16],override_edg:1,override_nod:1,overriden:[1,13,16],own:[1,8,9,14,15],ownership:1,p:[1,5,11,17],packag:[5,7],pad:[8,17],pair:[1,8,17],pairwis:8,paper:[4,5,8,17],parallel:[1,8],param:[1,9,11,17],param_nod:[1,5,6,13,15],paramedg:1,paramet:[1,3,4,6,8,9,11,13,16,17],parameter:[1,8,13],parametr:[1,8,11,13,16,17],paramnod:[0,6,8,9,14,15,16],paramnode1:13,paramnode2:13,paramnode3:13,paramnodea:1,paramnodeb:1,paramstacknod:[0,9,14,15],pareja2023tensorkrowch:5,pareja:5,parent:[1,16],parenthesi:1,part:[1,8,13,15,16],partial:[8,17],partial_dens:8,particular:[1,16],pass:[8,11,16],patch:[8,16],pattern:17,pave:11,pbc:8,pep:[0,5,16],perform:[1,5,8,9,11,12,13,14,16,17],period:8,permut:[0,1,13,14],permute_:[0,1,13],phase:9,phi:4,phys_dim:8,physic:[3,8,12],pi:4,piec:[12,16],pip:[5,7,11,12],pipelin:[5,11],pixel:[8,11,16,17],place:[1,8,9,13,14,16],plai:15,pleas:5,plu:8,plug:8,point:[1,11],poli:[0,16],pool:17,posit:[8,16],possibl:[1,11,12,13,14],potenti:5,power:[4,11],poza:5,practic:[1,5],practition:11,precis:4,pred:[11,17],predict:[11,17],present:17,previou:[1,8,13,14,15,16,17],previous:13,primari:5,principl:[1,15],print:[1,8,9,11,17],probabl:11,problem:[1,14],process:[1,5,11],product:[5,8,9,11,12,14,16],profici:5,project:8,properli:16,properti:[1,8,9,12],proport:[1,3,8,9],prove:8,provid:[1,3,5,8,9,12],prune:17,pt:16,purpos:[1,12,14,15],put:[1,8,11,17],pytest:[5,7],python:[5,7,11],pytorch:[1,5,9,11,12,13,14,16,17],q:9,qr:[0,1,8,13],qr_:[0,1,8],quantiti:[1,3,8,9],quantum:12,qubit:8,quit:[5,17],r:[5,9],r_1:9,r_2:9,rais:1,ram:5,rand:[0,1,4,8],randint:4,randn:[0,1,4,5,8,9,12,13,14,15,16],randn_ey:[8,11,17],random:[8,9,13],random_ey:16,rang:[1,5,8,9,11,12,13,14,15,16,17],rangl:4,rank:[1,3,4,8,9,13],rapid:5,rather:[1,8,12,14,15],re:[1,9,11,17],reach:11,readi:16,realli:[1,15],reattach:1,reattach_edg:1,recal:[1,16],recogn:13,recommend:[1,5],reconnect:[1,13],recov:[1,3,8],reduc:[1,8,11,17],redund:[1,9],refer:[1,2,9,12,13,14,15,16],referenc:1,regard:[1,9,13],relat:12,relev:[1,12],reli:5,relu:[5,17],remain:8,remov:[1,9],renorm:8,repeat:[1,9],repeatedli:14,replac:1,repositori:[5,7],repres:[8,12],reproduc:[1,14],requir:[1,8,9,15],requires_grad:1,res1:13,res2:13,reserv:[1,9,14],reset:[1,8,9,14,15,16],reset_tensor_address:1,reshap:[3,9,14],resiz:[11,17],respect:[1,3,8,9,13,14],rest:[1,13],restrict:[1,9,15],result2:9,result:[1,3,5,8,9,13,14,15,16],resultant_nod:[1,15],retriev:[1,12,14,15],reus:8,rez:5,rfloor:4,rid:1,right1:13,right2:13,right:[1,5,8,9,12,13,14,15,16,17],right_bord:8,right_down_corn:8,right_nod:8,right_up_corn:8,rightmost:8,ring:13,role:[1,8,15,16],row:8,rowch:5,rq:[0,1],rq_:[0,1,8],run:[5,7,8,11,17],running_acc:11,running_test_acc:[11,17],running_train_acc:[11,17],running_train_loss:[11,17],s:[1,4,5,6,8,9,11,12,13,14,15,16,17],s_1:4,s_i:[1,3,8,9],s_j:4,s_n:4,sai:[1,14],same:[1,8,9,12,13,14,17],sampler:[11,17],satisfi:[1,3,8,9],save:[1,5,10,13,16],scalar:8,scale:8,scenario:5,schwab:4,score:[11,17],second:[1,8,9,14],secondli:16,section:[12,13,15,17],see:[1,5,8,9,15,17],seen:15,select:[1,9,12,13,16],self:[1,8,16,17],send:[11,16,17],sens:[11,15],sento:16,separ:9,sepcifi:1,sequenc:[1,3,6,8,9,13,16],sequenti:[5,16],serv:11,set:[1,8,9,14,15,16,17],set_data_nod:[1,8,15,16],set_param:[1,8],set_tensor:[1,8,14],set_tensor_from:[1,14,15,16],sever:[1,9],shall:[1,16],shape:[1,3,4,5,6,8,9,11,12,13,14,15,16],shape_all_nodes_layer_1:8,shape_all_nodes_layer_n:8,shape_node_1_layer_1:8,shape_node_1_layer_n:8,shape_node_i1_layer_1:8,shape_node_in_layer_n:8,share:[1,8,9,12,14,15],share_tensor:[1,8],should:[1,3,4,6,8,9,12,13,14,15,16],show:12,side:[1,8,9,17],similar:[1,8,9,12,13,15,16],simpl:[5,12,13],simpli:[1,12,14,16],simplifi:[1,5],simul:12,sin:4,sinc:[1,8,9,13,14,15,16,17],singl:[1,8,9,13,16],singular:[1,3,8,9,11,13,17],site:[8,12],sites_per_lay:8,situat:[1,15],size:[1,4,6,8,9,12,13,15,16,17],skip:1,skipp:14,slice:[1,9,14,15],slide:1,slower:[1,14],small:13,smaller:1,smooth:5,snake:[8,17],so:[1,8,9,14,16],some:[1,3,8,9,11,12,13,14,15,16],someth:12,sometim:1,sort:[1,12,14,15],sourc:[1,3,4,6,8,9],space:[1,6,11,16,17],special:[1,13,15],specif:[1,5,15],specifi:[1,3,8,9,12,13,15],split:[0,1,3,8,12,13],split_0:[1,9],split_1:[1,9],split_:[0,1,13],split_ip:[1,9],split_ip_0:[1,9],split_ip_1:[1,9],sqrt:4,squar:9,stack:[0,1,4,8,11,13,14,15,16],stack_0:1,stack_1:1,stack_data:[1,9,16],stack_data_memori:[1,15],stack_data_nod:13,stack_input:16,stack_nod:[1,9,13,14,15],stack_result:[13,16],stackabl:9,stacked_einsum:[0,13],stackedg:[0,9,13],stacknod:[0,9,13,15],stai:1,stand:4,standard:6,start:[1,8,12,14,16,17],state:[1,5,8,11,12,14,16],state_dict:16,staticmethod:17,std:[1,6,8,11,16,17],step:[1,5,10,17],stick:1,still:[1,8,9,13],store:[1,8,9,12,15,16],stoudenmir:4,str:[1,6,9],straightforward:5,strength:5,stride:[8,17],string:[1,8,9,15],structur:[1,5,8,12,16,17],sub:[0,13],subclass:[1,5,10,12,15,17],subsequ:[1,14],subsetrandomsampl:[11,17],substitut:1,subtract:9,subtrahend:9,successor:[0,9],suffix:1,suitabl:5,sum:[1,3,8,9,11,13,17],sum_:[1,3,8,9],summat:13,support:5,sv:[1,9],svd:[0,1,3,8,11],svd_:[0,1,8,13],svdr:[0,1,8],svdr_:[0,1,8],t:[9,11,12,15,16],t_:[6,9],tailor:5,take:[1,8,11,14,15,16],taken:1,task:[1,8,15],temporari:[1,15],tensor:[0,3,4,5,6,8,10,15,16],tensor_address:[1,8,14,15],tensorkrowch:[1,3,4,6,7,8,9,10,13,15,16,17],tensornetwork:[1,5,6,9,10,13,15,17],termin:[5,7],test:[5,7,11,17],test_set:[11,17],th:8,than:[1,3,8,9,12,16],thank:12,thei:[1,5,6,7,8,9,12,13,15],them:[1,8,9,11,12,13,14,16,17],themselv:[8,9],therefor:[1,5,7,8,12,16],thi:[1,3,4,5,8,9,11,12,13,14,15,16,17],thing:[1,9,11,15,17],think:14,third:8,those:[1,14,15,16],though:[1,8,9,13,16],thought:1,three:[1,9],through:[1,5,8,9,11,16,17],thu:[1,3,5,8,9,12,16],time:[1,3,4,5,8,9,10,12,13,16],titl:5,tk:[1,4,5,8,9,11,12,13,14,15,16,17],tn:16,togeth:[1,5,7,14,15],tool:[5,12,13],top:[1,5,8,11,13,17],torch:[1,3,4,5,6,8,9,11,12,13,14,15,16,17],torchvis:[11,17],total:[1,3,8,9,11,17],total_num:[11,17],totensor:[11,17],tprod:[0,13],trace:[1,8,9,11,15,16,17],trace_sit:8,track:[1,14],train:[1,5,12,13,14,16,17],train_set:[11,17],trainabl:[1,8,12,15,16,17],transform:[4,8,11,13,17],transit:8,translation:[1,8,14,15],transpos:[11,16,17],treat:1,tree:[0,16],tri:[1,9],triangular:9,trick:[14,17],tupl:[1,6,8,9],turn:[1,8,14],tutori:[1,2,11,12,13,14,15,16,17],two:[1,8,9,12,13,14],two_0:9,type:[1,3,4,5,6,8,9,10,12,13,14],typeerror:1,u:[1,6,9],ump:0,umpo:0,umpslay:0,unbind:[0,1,13,14,16],unbind_0:[1,9],unbind_result:13,unbinded_nod:[13,14],unbound:[1,9],under:[5,14],underli:14,underscor:[1,9],understand:[5,12],undesir:[1,8,15],unfold:8,uniform:[1,6,8,14,15,16],uniform_memori:16,uniform_nod:[14,15],uninform:11,uniqu:[8,14],unit:[0,8],unitari:[8,9],univoc:8,unix:[5,7],unless:1,unset:1,unset_data_nod:[1,8],unset_tensor:1,unsqueez:17,until:[1,8,9,11],up:[1,8,9,12],up_bord:8,updat:[11,17],upep:0,upon:8,upper:[6,8,9],ur_1sr_2v:9,us:[1,3,4,5,6,8,9,11,12,13,14,15,16,17],usag:1,useless:11,user:[1,5],usual:[1,8,9,15,16],usv:9,util:[11,17],utre:0,v:[1,5,7,9],valid:1,valu:[1,3,4,8,9,11,13,16,17],valueerror:1,vanilla:[12,13,14],variabl:4,variant:[13,16],variat:1,variou:[5,8],vdot:4,vec:3,vec_to_mp:0,vector:[3,4,8,11,16,17],veri:[1,11,12,14,16],verifi:[1,9],versa:8,versatil:5,version:[1,8,9,13],vertic:[1,8],via:[1,3,8,9,12,13,14,15],vice:8,view:[11,16,17],virtual:[1,9,14,15,16],virtual_nod:[1,15],virtual_result:[1,15],virtual_result_stack:[1,9,15],virtual_uniform:[1,8,15,16],virtual_uniform_mp:1,visit:1,wa:[1,8,16,17],wai:[1,8,11,12,16],want:[1,8,12,13,14,16],we:[1,11,12,13,14,15,16,17],weight_decai:[11,17],well:[1,8,9],were:[1,8,13,15,16],what:[1,12,14,16],when:[1,8,9,11,12,13,14,15,16],whenev:[1,9],where:[1,4,6,8,9,11,12,13,14,16],whether:[1,6,8,12,14],which:[1,4,6,8,9,11,12,13,14,15,16],whilst:8,who:5,whole:[1,8,11,13,14,15,16],whose:[1,8,9,14,15],why:14,wide:[5,16],width:[8,11,16],wise:[1,9],wish:16,without:[1,6,8,9,11],won:16,word:[1,12],work:[5,13,17],workflow:[1,16],worri:[1,14],would:[1,8,9,12,14,17],wouldn:15,wow:17,wrap:[1,12],written:[5,7],x:[4,5,8,11,16,17],x_1:4,x_j:4,x_n:4,y1:17,y2:17,y3:17,y4:17,y:17,yet:[12,16],you:[5,7,11,12,13,14,15,16],your:[5,7,11,12,16],your_nod:14,yourself:5,zero:[0,1,8,11,16,17],zero_grad:[11,17],zeros_lik:14},titles:["API Reference","Components","<no title>","Decompositions","Embeddings","TensorKrowch documentation","Initializers","Installation","Models","Operations","Tutorials","First Steps with TensorKrowch","Creating a Tensor Network in TensorKrowch","Contracting and Differentiating the Tensor Network","How to save Memory and Time with TensorKrowch (ADVANCED)","The different Types of Nodes (ADVANCED)","How to subclass TensorNetwork to build Custom Models","Creating a Hybrid Neural-Tensor Network Model"],titleterms:{"1":[11,12,13,14,15,16],"2":[11,12,13,14,15,16],"3":[11,12,13,14,16],"4":11,"5":11,"6":11,"7":11,"class":9,"function":11,"import":11,The:[15,16],abstractnod:1,add:9,add_on:4,advanc:[14,15],api:0,ar:14,axi:1,basi:4,between:13,build:[12,16],choos:11,cite:5,compon:[1,12,16],connect:9,connect_stack:9,content:2,contract:[9,13],contract_:9,contract_between:9,contract_between_:9,contract_edg:9,convmp:8,convmpslay:8,convpep:8,convtre:8,convump:8,convumpslay:8,convupep:8,convutre:8,copi:6,creat:[12,17],custom:16,data:11,decomposit:3,differ:15,differenti:13,disconnect:9,discret:4,distinguish:13,document:5,download:11,edg:[1,9],einsum:9,embed:4,empti:6,everyth:16,exampl:5,faster:14,first:[11,16],how:[12,14,16],hybrid:17,hyperparamet:11,initi:6,instal:[5,7],instanti:11,introduct:[11,12,13,14,15,16],librari:11,licens:5,like:9,loss:11,manag:14,mat_to_mpo:3,matrix:13,memori:14,mode:14,model:[8,11,16,17],mp:8,mpo:8,mpsdata:8,mpslayer:8,mul:9,name:15,network:[1,11,12,13,17],neural:17,node:[1,9,12,13,15],ones:6,oper:[9,13,14],optim:11,our:16,paramnod:[1,13],paramstacknod:1,pep:8,permut:9,permute_:9,poli:4,product:13,prune:11,put:16,qr:9,qr_:9,rand:6,randn:6,refer:0,requir:5,reserv:15,rq:9,rq_:9,run:14,save:14,set:11,setup:[11,12],skip:14,split:9,split_:9,stack:9,stacked_einsum:9,stackedg:1,stacknod:1,start:11,state:13,step:[11,12,13,14,15,16],store:14,sub:9,subclass:16,successor:1,svd:9,svd_:9,svdr:9,svdr_:9,tensor:[1,9,11,12,13,14,17],tensorkrowch:[5,11,12,14],tensornetwork:[12,14,16],time:14,togeth:16,tprod:9,train:11,tree:8,tutori:[5,10],type:15,ump:8,umpo:8,umpslay:8,unbind:9,unit:4,upep:8,utre:8,vec_to_mp:3,zero:6}}) \ No newline at end of file +Search.setIndex({docnames:["api","components","contents","decompositions","embeddings","index","initializers","installation","models","operations","tutorials","tutorials/0_first_steps","tutorials/1_creating_tensor_network","tutorials/2_contracting_tensor_network","tutorials/3_memory_management","tutorials/4_types_of_nodes","tutorials/5_subclass_tensor_network","tutorials/6_mix_with_pytorch"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["api.rst","components.rst","contents.rst","decompositions.rst","embeddings.rst","index.rst","initializers.rst","installation.rst","models.rst","operations.rst","tutorials.rst","tutorials/0_first_steps.rst","tutorials/1_creating_tensor_network.rst","tutorials/2_contracting_tensor_network.rst","tutorials/3_memory_management.rst","tutorials/4_types_of_nodes.rst","tutorials/5_subclass_tensor_network.rst","tutorials/6_mix_with_pytorch.rst"],objects:{"tensorkrowch.AbstractNode":[[1,1,1,"","axes"],[1,1,1,"","axes_names"],[1,2,1,"","contract_between"],[1,2,1,"","contract_between_"],[1,1,1,"","device"],[1,2,1,"","disconnect"],[1,1,1,"","dtype"],[1,1,1,"","edges"],[1,2,1,"","get_axis"],[1,2,1,"","get_axis_num"],[1,2,1,"","get_edge"],[1,2,1,"","in_which_axis"],[1,2,1,"","is_connected_to"],[1,2,1,"","is_data"],[1,2,1,"","is_leaf"],[1,2,1,"","is_node1"],[1,2,1,"","is_resultant"],[1,2,1,"","is_virtual"],[1,2,1,"","make_tensor"],[1,2,1,"","mean"],[1,2,1,"","move_to_network"],[1,1,1,"","name"],[1,2,1,"","neighbours"],[1,1,1,"","network"],[1,2,1,"","node_ref"],[1,2,1,"","norm"],[1,2,1,"","numel"],[1,2,1,"","permute"],[1,2,1,"","permute_"],[1,1,1,"","rank"],[1,2,1,"","reattach_edges"],[1,2,1,"","reset_tensor_address"],[1,2,1,"","set_tensor"],[1,2,1,"","set_tensor_from"],[1,1,1,"","shape"],[1,2,1,"","size"],[1,2,1,"","split"],[1,2,1,"","split_"],[1,2,1,"","std"],[1,1,1,"","successors"],[1,2,1,"","sum"],[1,1,1,"","tensor"],[1,2,1,"","tensor_address"],[1,2,1,"","unset_tensor"]],"tensorkrowch.Axis":[[1,2,1,"","is_batch"],[1,2,1,"","is_node1"],[1,1,1,"","name"],[1,1,1,"","node"],[1,1,1,"","num"]],"tensorkrowch.Edge":[[1,1,1,"","axes"],[1,1,1,"","axis1"],[1,1,1,"","axis2"],[1,2,1,"","change_size"],[1,2,1,"","connect"],[1,2,1,"","contract"],[1,2,1,"","contract_"],[1,2,1,"","copy"],[1,2,1,"","disconnect"],[1,2,1,"","is_attached_to"],[1,2,1,"","is_batch"],[1,2,1,"","is_dangling"],[1,1,1,"","name"],[1,1,1,"","node1"],[1,1,1,"","node2"],[1,1,1,"","nodes"],[1,2,1,"","qr"],[1,2,1,"","qr_"],[1,2,1,"","rq"],[1,2,1,"","rq_"],[1,2,1,"","size"],[1,2,1,"","svd"],[1,2,1,"","svd_"],[1,2,1,"","svdr"],[1,2,1,"","svdr_"]],"tensorkrowch.Node":[[1,2,1,"","change_type"],[1,2,1,"","copy"],[1,2,1,"","parameterize"]],"tensorkrowch.ParamNode":[[1,2,1,"","change_type"],[1,2,1,"","copy"],[1,1,1,"","grad"],[1,2,1,"","parameterize"]],"tensorkrowch.ParamStackNode":[[1,1,1,"","edges_dict"],[1,1,1,"","node1_lists_dict"],[1,2,1,"","reconnect"],[1,2,1,"","unbind"]],"tensorkrowch.StackEdge":[[1,2,1,"","connect"],[1,1,1,"","edges"],[1,1,1,"","node1_list"]],"tensorkrowch.StackNode":[[1,1,1,"","edges_dict"],[1,1,1,"","node1_lists_dict"],[1,2,1,"","reconnect"],[1,2,1,"","unbind"]],"tensorkrowch.TensorNetwork":[[1,2,1,"","add_data"],[1,1,1,"","auto_stack"],[1,1,1,"","auto_unbind"],[1,2,1,"","contract"],[1,2,1,"","copy"],[1,1,1,"","data_nodes"],[1,2,1,"","delete_node"],[1,1,1,"","edges"],[1,2,1,"","forward"],[1,1,1,"","leaf_nodes"],[1,1,1,"","nodes"],[1,1,1,"","nodes_names"],[1,2,1,"","parameterize"],[1,2,1,"","reset"],[1,1,1,"","resultant_nodes"],[1,2,1,"","set_data_nodes"],[1,2,1,"","trace"],[1,2,1,"","unset_data_nodes"],[1,1,1,"","virtual_nodes"]],"tensorkrowch.decompositions":[[3,3,1,"","mat_to_mpo"],[3,3,1,"","vec_to_mps"]],"tensorkrowch.embeddings":[[4,3,1,"","add_ones"],[4,3,1,"","basis"],[4,3,1,"","discretize"],[4,3,1,"","poly"],[4,3,1,"","unit"]],"tensorkrowch.models":[[8,0,1,"","ConvMPS"],[8,0,1,"","ConvMPSLayer"],[8,0,1,"","ConvPEPS"],[8,0,1,"","ConvTree"],[8,0,1,"","ConvUMPS"],[8,0,1,"","ConvUMPSLayer"],[8,0,1,"","ConvUPEPS"],[8,0,1,"","ConvUTree"],[8,0,1,"","MPO"],[8,0,1,"","MPS"],[8,0,1,"","MPSData"],[8,0,1,"","MPSLayer"],[8,0,1,"","PEPS"],[8,0,1,"","Tree"],[8,0,1,"","UMPO"],[8,0,1,"","UMPS"],[8,0,1,"","UMPSLayer"],[8,0,1,"","UPEPS"],[8,0,1,"","UTree"]],"tensorkrowch.models.ConvMPS":[[8,2,1,"","copy"],[8,1,1,"","dilation"],[8,2,1,"","forward"],[8,1,1,"","in_channels"],[8,1,1,"","kernel_size"],[8,1,1,"","padding"],[8,1,1,"","stride"]],"tensorkrowch.models.ConvMPSLayer":[[8,2,1,"","copy"],[8,1,1,"","dilation"],[8,2,1,"","forward"],[8,1,1,"","in_channels"],[8,1,1,"","kernel_size"],[8,1,1,"","out_channels"],[8,1,1,"","padding"],[8,1,1,"","stride"]],"tensorkrowch.models.ConvPEPS":[[8,1,1,"","dilation"],[8,2,1,"","forward"],[8,1,1,"","in_channels"],[8,1,1,"","kernel_size"],[8,1,1,"","padding"],[8,1,1,"","stride"]],"tensorkrowch.models.ConvTree":[[8,1,1,"","dilation"],[8,2,1,"","forward"],[8,1,1,"","in_channels"],[8,1,1,"","kernel_size"],[8,1,1,"","padding"],[8,1,1,"","stride"]],"tensorkrowch.models.ConvUMPS":[[8,2,1,"","copy"],[8,1,1,"","dilation"],[8,2,1,"","forward"],[8,1,1,"","in_channels"],[8,1,1,"","kernel_size"],[8,1,1,"","padding"],[8,1,1,"","stride"]],"tensorkrowch.models.ConvUMPSLayer":[[8,2,1,"","copy"],[8,1,1,"","dilation"],[8,2,1,"","forward"],[8,1,1,"","in_channels"],[8,1,1,"","kernel_size"],[8,1,1,"","out_channels"],[8,1,1,"","padding"],[8,1,1,"","stride"]],"tensorkrowch.models.ConvUPEPS":[[8,1,1,"","dilation"],[8,2,1,"","forward"],[8,1,1,"","in_channels"],[8,1,1,"","kernel_size"],[8,1,1,"","padding"],[8,1,1,"","stride"]],"tensorkrowch.models.ConvUTree":[[8,1,1,"","dilation"],[8,2,1,"","forward"],[8,1,1,"","in_channels"],[8,1,1,"","kernel_size"],[8,1,1,"","padding"],[8,1,1,"","stride"]],"tensorkrowch.models.MPO":[[8,1,1,"","bond_dim"],[8,1,1,"","boundary"],[8,2,1,"","contract"],[8,2,1,"","copy"],[8,1,1,"","in_dim"],[8,2,1,"","initialize"],[8,1,1,"","left_node"],[8,1,1,"","mats_env"],[8,1,1,"","n_batches"],[8,1,1,"","n_features"],[8,1,1,"","out_dim"],[8,2,1,"","parameterize"],[8,1,1,"","right_node"],[8,2,1,"","set_data_nodes"]],"tensorkrowch.models.MPS":[[8,1,1,"","bond_dim"],[8,1,1,"","boundary"],[8,2,1,"","canonicalize"],[8,2,1,"","canonicalize_univocal"],[8,2,1,"","contract"],[8,2,1,"","copy"],[8,1,1,"","in_env"],[8,1,1,"","in_features"],[8,1,1,"","in_regions"],[8,2,1,"","initialize"],[8,1,1,"","left_node"],[8,1,1,"","mats_env"],[8,2,1,"","mi"],[8,1,1,"","n_batches"],[8,1,1,"","n_features"],[8,2,1,"","norm"],[8,1,1,"","out_env"],[8,1,1,"","out_features"],[8,1,1,"","out_regions"],[8,2,1,"","parameterize"],[8,2,1,"","partial_density"],[8,1,1,"","phys_dim"],[8,1,1,"","right_node"],[8,2,1,"","set_data_nodes"]],"tensorkrowch.models.MPSData":[[8,2,1,"","add_data"],[8,1,1,"","bond_dim"],[8,1,1,"","boundary"],[8,2,1,"","initialize"],[8,1,1,"","left_node"],[8,1,1,"","mats_env"],[8,1,1,"","n_batches"],[8,1,1,"","n_features"],[8,1,1,"","phys_dim"],[8,1,1,"","right_node"]],"tensorkrowch.models.MPSLayer":[[8,2,1,"","copy"],[8,1,1,"","in_dim"],[8,2,1,"","initialize"],[8,1,1,"","out_dim"],[8,1,1,"","out_node"],[8,1,1,"","out_position"]],"tensorkrowch.models.PEPS":[[8,1,1,"","bond_dim"],[8,1,1,"","boundary"],[8,2,1,"","contract"],[8,1,1,"","in_dim"],[8,2,1,"","initialize"],[8,1,1,"","n_batches"],[8,1,1,"","n_cols"],[8,1,1,"","n_rows"],[8,2,1,"","set_data_nodes"]],"tensorkrowch.models.Tree":[[8,1,1,"","bond_dim"],[8,2,1,"","canonicalize"],[8,2,1,"","contract"],[8,2,1,"","initialize"],[8,1,1,"","n_batches"],[8,2,1,"","set_data_nodes"],[8,1,1,"","sites_per_layer"]],"tensorkrowch.models.UMPO":[[8,2,1,"","copy"],[8,2,1,"","initialize"],[8,2,1,"","parameterize"]],"tensorkrowch.models.UMPS":[[8,2,1,"","copy"],[8,2,1,"","initialize"],[8,2,1,"","parameterize"]],"tensorkrowch.models.UMPSLayer":[[8,2,1,"","copy"],[8,1,1,"","in_dim"],[8,2,1,"","initialize"],[8,1,1,"","out_dim"],[8,1,1,"","out_node"],[8,1,1,"","out_position"],[8,2,1,"","parameterize"]],"tensorkrowch.models.UPEPS":[[8,1,1,"","bond_dim"],[8,2,1,"","contract"],[8,1,1,"","in_dim"],[8,2,1,"","initialize"],[8,1,1,"","n_batches"],[8,1,1,"","n_cols"],[8,1,1,"","n_rows"],[8,2,1,"","set_data_nodes"]],"tensorkrowch.models.UTree":[[8,1,1,"","bond_dim"],[8,2,1,"","contract"],[8,2,1,"","initialize"],[8,1,1,"","n_batches"],[8,2,1,"","set_data_nodes"],[8,1,1,"","sites_per_layer"]],tensorkrowch:[[1,0,1,"","AbstractNode"],[1,0,1,"","Axis"],[1,0,1,"","Edge"],[1,0,1,"","Node"],[9,0,1,"","Operation"],[1,0,1,"","ParamNode"],[1,0,1,"","ParamStackNode"],[1,0,1,"","StackEdge"],[1,0,1,"","StackNode"],[1,0,1,"","Successor"],[1,0,1,"","TensorNetwork"],[9,3,1,"","add"],[9,3,1,"","connect"],[9,3,1,"","connect_stack"],[9,3,1,"","contract"],[9,3,1,"","contract_"],[9,3,1,"","contract_between"],[9,3,1,"","contract_between_"],[9,3,1,"","contract_edges"],[6,3,1,"","copy"],[9,3,1,"","disconnect"],[9,3,1,"","einsum"],[6,3,1,"","empty"],[9,3,1,"","mul"],[6,3,1,"","ones"],[9,3,1,"","permute"],[9,3,1,"","permute_"],[9,3,1,"","qr"],[9,3,1,"","qr_"],[6,3,1,"","rand"],[6,3,1,"","randn"],[9,3,1,"","rq"],[9,3,1,"","rq_"],[9,3,1,"","split"],[9,3,1,"","split_"],[9,3,1,"","stack"],[9,3,1,"","stacked_einsum"],[9,3,1,"","sub"],[9,3,1,"","svd"],[9,3,1,"","svd_"],[9,3,1,"","svdr"],[9,3,1,"","svdr_"],[9,3,1,"","tprod"],[9,3,1,"","unbind"],[6,3,1,"","zeros"]]},objnames:{"0":["py","class","Python class"],"1":["py","property","Python property"],"2":["py","method","Python method"],"3":["py","function","Python function"]},objtypes:{"0":"py:class","1":"py:property","2":"py:method","3":"py:function"},terms:{"0":[1,3,4,5,6,8,9,11,13,15,16,17],"00":4,"0000":4,"0000e":4,"0086":1,"0101":1,"0188":1,"0234":1,"0371":1,"0412":1,"0440":1,"0445":1,"0465":1,"0501":1,"0521":1,"0633":1,"0639":11,"0704":1,"0728":11,"0743":1,"0750":11,"08":4,"0806":1,"0820":11,"08595":5,"09":8,"0913":11,"0983":11,"0998":11,"1":[1,3,4,5,6,8,9,17],"10":[1,4,5,8,9,11,13,16,17],"100":[1,4,5,8,9,12,13,14,15],"10000":[11,17],"1024":[11,17],"1091":1,"1123":11,"1211":1,"1308":11,"1371":1,"14":17,"1496":1,"15":[1,9,13],"1573":11,"161204":11,"1654":1,"1878":17,"1955":11,"1990":11,"1998":1,"1e":[8,11,16,17],"2":[1,4,8,9,17],"20":[1,8,9,17],"2052":17,"2091":1,"2095":1,"2111":1,"2203":17,"2254":1,"2306":5,"2316":1,"2357":17,"236220":11,"2380":1,"2390":1,"2449":1,"2461":1,"2477":1,"2503":1,"2517":1,"2618":17,"2730":1,"2775":1,"2799":1,"28":[11,17],"2808":1,"2840":17,"2856":1,"2866":1,"2898":1,"2d":8,"3":[1,4,5,8,9,15,17],"30":17,"3083":11,"3088":1,"3139":1,"3149":17,"32":[8,11],"3222":1,"3340":1,"3370":1,"3371":1,"3381":1,"3393":1,"3427":1,"3489":1,"3508":1,"3513":1,"3585":1,"3711e":4,"3714":17,"3760":1,"3784":1,"3821":1,"4":[1,4,8,9,13,15,17],"40":17,"4005":1,"4181":1,"4184":1,"4216":1,"4383":1,"4385":1,"4402":1,"4431":1,"4461":1,"4572":1,"4588":1,"4731":1,"4761":1,"4974":1,"499320":17,"4f":[11,17],"5":[1,4,5,8,9,12,13,14,15,17],"50":17,"500":[5,11,16,17],"5000":4,"5021":1,"5029":1,"5069":1,"5161":1,"5224":17,"5401":1,"5406":1,"553186":17,"5567":1,"5570":1,"5676":11,"5731":1,"5760":1,"5797":1,"5920":1,"6":[1,4,8,17],"60":17,"60000":[11,17],"6023":1,"6149":11,"6225":1,"6227":1,"6295":1,"6356":1,"6399":1,"6492":1,"6495":1,"6524":1,"6545":1,"6551":1,"6811":1,"6925":1,"6982":1,"7":[1,5,8,9,13,14,17],"70":17,"75":4,"7500":4,"7592":1,"7688":1,"7752":1,"7812":1,"7997":1,"8":[5,8,11],"80":17,"8090":1,"8147":1,"8227":1,"8361":1,"8387":1,"8441":1,"8442":1,"8502":17,"8627":17,"8633":1,"8649":1,"8795":17,"8815":1,"8820":11,"8848":17,"8851":17,"8859":1,"8901":17,"8911":1,"8915":17,"8948":17,"8968":17,"8984":17,"9":[5,8,11,16,17],"90":17,"9006":1,"9009":17,"9011":[11,17],"9026":17,"9048":17,"9053":11,"9125":17,"9145":1,"9174":17,"9231":17,"9265":1,"9284":17,"9320":1,"9371":11,"9396":11,"9400":11,"9432":1,"9509":11,"9526":11,"9551":1,"9561":1,"9585":11,"9600":11,"9618":1,"9621":11,"9625":11,"9668":11,"9677":11,"9696":11,"9700":11,"9721":11,"9729":11,"9731":11,"9734":11,"9736":11,"9738":11,"9743":11,"9768":11,"9775":11,"9793":11,"98":17,"9844":1,"99":11,"9925":1,"9942":1,"9957":1,"abstract":1,"boolean":[1,6,8],"byte":[11,17],"case":[1,3,8,14,15,16],"class":[0,1,8,11,13,16,17],"default":[1,4,8,14,15],"do":[1,8,11,12,14,15,16],"final":[1,8,13,16],"float":[1,3,6,8,9],"function":[1,8,9,13,17],"garc\u00eda":5,"import":[1,5,12,13,14,15,16,17],"int":[1,3,4,6,8,9],"n\u00ba":[11,17],"new":[1,4,6,8,9,11,12,13,14,16,17],"p\u00e9rez":5,"return":[1,3,4,6,8,9,11,12,13,14,16,17],"super":[1,16,17],"true":[1,5,6,8,9,11,13,14,15,16,17],"try":[13,17],"while":[1,5,13,14,15],A:[1,5,8,9,12],And:[14,17],As:[5,8,11,12,13,14],At:[1,12],Be:[1,13],But:[13,14,16,17],By:[1,4,5,8,11,12],For:[1,8,9,12,13,14,15,16],If:[1,3,4,5,6,8,9,12,14,16],In:[1,3,5,8,9,11,12,13,14,15,16,17],Is:8,It:[1,3,5,6,8,9,11,12,13,17],Its:[1,9],Not:16,Of:[14,16],On:1,One:[1,12],That:[1,3,4,8,9,13,14,16,17],The:[1,3,4,5,8,9,10,12,13,14,17],Then:[1,8,14],There:[1,8,13,15,16],These:[1,3,5,8,12,13,15],To:[1,3,5,7,8,9,11,12,13,14,15,16],With:[1,5,9,12,13,16],_:[1,8,9,11,12,16,17],__call__:1,__init__:[1,16,17],_channel:8,_copi:1,_dim:1,_percentag:[1,3,8,9],_size:8,_size_0:8,_size_1:8,_size_:1,a_:9,abil:5,abl:[1,12,13,16],about:[1,9,12,13,14,15,16],abov:[1,12,16],abstractnod:[0,9],acc:[11,17],acceler:1,accept:13,access:[1,6,12,13,14],accomplish:[1,3,8,15],accord:[1,9],accordingli:8,account:[1,8,15],accumul:8,accuraci:[11,17],achiev:1,act:[1,8,12,14],action:1,activ:1,actual:[1,8,12,13,14,17],ad:[1,4,8,9,13,16],adam:[11,17],adapt:9,add:[0,1,8,11,13,16,17],add_data:[1,8,15,16],add_on:[0,17],addit:[1,8,9],addition:1,address:[1,12,14],admit:8,advanc:[1,5,10],advantag:[14,16],affect:[1,9],after:[1,8,11,17],afterward:[1,8,9],again:[8,11,14,16],against:8,aim:[8,11],alejandro:5,algorithm:[1,8,14,16,17],all:[1,3,4,6,8,9,11,12,13,14,15,16,17],allow:[1,8],almost:[1,13,14,15,17],along:[1,9],alreadi:[1,8,9,11,12,13,16],also:[1,3,5,7,8,9,11,12,13,14,15,16],alter:8,although:[1,12,13,14,15,16],alwai:[1,5,8,9,11,12,13,14,15,16],among:8,amount:[9,11],an:[1,3,4,5,8,9,11,12,13,14,15,16],ancillari:[1,14,15],ani:[1,8,9,12,13,16],anoth:[1,8,9,12,13],anymor:1,api:2,appear:[1,9,12],append:[13,14,15,16,17],appli:[1,9,13],approach:5,appropi:[8,16,17],approxim:1,ar:[1,3,4,5,6,7,8,9,11,12,13,15,16,17],arang:4,arbitrari:1,architectur:5,archiveprefix:5,arg:[1,8],argument:[1,3,8,9,16],aros:1,around:11,arrai:12,arrow:9,arxiv:5,assert:[1,5,8,9,12,13,14,15],assign:8,assum:[1,4,8,9],attach:[1,6,9,12],attribut:[1,8,16],author:5,auto_stack:[1,9,11,14,15,16,17],auto_unbind:[1,9,11,14,16,17],automat:[1,9,12,13,14],auxiliari:9,avail:[5,11,12],avoid:[1,8,14],awar:[1,13],ax:[1,6,8,9,12,13],axes_nam:[1,5,6,9,12,13,14,15,16],axi:[0,4,6,9,12,16,17],axis1:1,axis2:1,axis_0:1,axis_1:1,axis_2:1,axis_n:1,b:[4,8,9,13],b_1:3,b_:9,b_m:3,backpropag:[11,17],backward:[1,5,11,13,17],base:[1,4,8,9,13],basi:[0,8],basic:[1,5,12,13],batch:[1,3,4,5,8,9,11,12,13,15,16],batch_0:[4,8],batch_1:[1,8,16],batch_m:1,batch_n:[4,8,16],batch_siz:[8,11,17],becaus:[1,8,14,17],becom:[1,5,8,9],been:[1,8,9,12,16],befor:[1,8,11,12,16,17],beforehand:12,begin:[4,11,12,17],behav:[1,14],behavior:8,behaviour:[1,8,12,14,15],being:[1,4,8,9,13],belong:[1,6,8,11,12,13],besid:[1,8,9,12],best:5,better:12,between:[1,3,4,5,8,9,12,14,15,17],big:[8,13],bigger:8,binom:4,blank:[1,6],bmatrix:4,bodi:12,bond:[3,8],bond_dim:[5,8,11,17],bool:[1,6,8],border:8,both:[1,8,9,12,13,14,15,16],bottom:[8,17],boudari:8,bound:[1,3,8,9],boundari:[3,8],bracket:1,bring:11,build:[1,5,10,13],built:[5,11,13,16],bunch:[1,13,16],c_:9,cach:[1,14],calcul:14,call:[1,8,9,11,13,16,17],callabl:9,can:[1,3,5,7,8,9,11,12,13,14,15,16,17],cannot:[1,6,8,9,13,15],canon:[8,11,17],canonic:[8,11,17],canonicalize_univoc:8,carri:[1,8,9,12],cast:1,cat:17,caus:8,cdot:[3,4,8],center:8,central:[1,12,17],certain:[1,4,5,6,9],chang:[1,5,8,12,14,16,17],change_s:1,change_typ:1,channel:8,charact:1,check:[1,8,9,11,12,13,14,15,17],check_first:9,child:1,chose:15,classif:[8,11],classifi:[11,16],clone:[5,7,8],close:8,cnn:17,cnn_snake:17,cnn_snakesb:17,co:4,code:[1,5,12,17],coincid:[8,9,12],collect:[1,9,13,14],column:8,com:[5,7],combin:[1,12,16,17],come:[1,9,11,12,15,16],comma:9,command:[5,7],common:[1,8,11,16],compar:14,complementari:8,complet:[1,9],compon:[0,4,5,9,11,13],compos:[11,17],comput:[1,4,5,7,8,9,11,13,14,16,17],concept:5,condit:[3,8,9],configur:5,conform:1,connect:[0,1,5,8,12,13,14,15,16],connect_stack:0,consecut:[3,8],consid:8,consist:[1,9],construct:[1,5,13,14],contain:[1,6,8,12,13,14,15],continu:11,contract:[0,1,5,8,10,11,12,14,15,16],contract_:[0,1,13],contract_between:[0,1,13],contract_between_:[0,1,13],contract_edg:[0,1,13],contract_edges_ip:[1,9],contrast:8,contrat:8,control:[1,12,14],conv2d:[8,17],conv_mp:8,conv_mps_lay:8,conv_pep:8,conv_tre:8,conveni:[8,15],convent:[1,9,13,16],convmp:0,convmpslay:[0,17],convolut:[8,16,17],convpep:0,convtre:0,convump:0,convumpslay:0,convupep:0,convutre:0,copi:[0,1,8],core:[8,12,17],corner:8,correct:[1,14],correctli:9,correspond:[1,3,4,8,9,12,13,14,16],costli:[1,8,14],could:[8,11,12,14,16],count:11,coupl:[1,12,15],cours:[14,16],cpu:[1,11,16,17],creat:[1,5,6,8,9,10,13,14,15,16],creation:[5,9],crop:[1,8],crossentropyloss:[11,17],cuda:[1,11,16,17],cum:[1,3,8,9],cum_percentag:[1,3,8,9,11,17],current:[1,8],custom:[1,5,8,10],cut:[3,11,17],cutoff:[1,3,8,9],d:[4,5],d_1:3,d_n:3,dagger:[1,9],dangl:[1,9,11,12,13],data:[1,4,5,8,9,13,15,16,17],data_0:[1,15],data_1:1,data_nod:[1,13,15,16],data_node_:13,dataload:[11,17],dataset:[8,11,17],david:[4,5],ddot:4,de:[1,6,8,13],decompos:[3,9],decomposit:[0,1,8,9,11,13,17],decreas:1,dedic:8,deep:[5,11],deepcopi:1,def:[1,11,16,17],defin:[1,4,5,8,12,13,15,16,17],degre:4,del:[1,9],delet:[1,9],delete_nod:1,densiti:8,depend:[1,3],deriv:8,descent:[12,13],describ:[1,8,16],design:8,desir:[4,13,14,15,16],detail:[1,5,8,13],determin:5,develop:5,deviat:6,devic:[1,6,8,11,16,17],devot:14,df:1,diagon:[1,6,9],diagram:12,dictionari:1,did:17,differ:[1,5,8,9,10,11,12,13,14,16,17],differenti:[5,10,12],dilat:8,dim:[4,11,17],dimens:[1,3,4,8,9,11,12,16],dimension:[12,17],directli:[1,5,7,9,12,13,14,15],disconnect:[0,1,8,12],discret:0,distinct:[1,6],distinguish:15,distribut:[6,8],divers:5,document:[1,9],doe:[1,8,12,14],don:9,done:[1,3,8,12],down:8,down_bord:8,download:[5,7,17],drawn:6,drop_last:[11,17],dtype:1,due:8,duplic:8,dure:[1,11,14,15],dynam:8,e:[1,4,5,8,9,15],each:[1,3,4,6,8,9,11,12,13,14,15,16,17],earlier:12,easi:[1,5],easier:12,easili:[1,12,13,16,17],edg:[0,5,6,8,11,12,13,14,15,16,17],edge1:[1,9],edge2:[1,9],edgea:1,edgeb:1,edges_dict:1,effect:[1,13],effici:[1,5,12],einstein:13,einsum:[0,13],either:[8,9],element:[1,4,5,6,8,9,12],element_s:[11,17],els:[11,16,17],emb:[11,16],emb_a:4,emb_b:4,embed:[0,8,11,16,17],embedd:4,embedding_matric:8,empti:[0,1,8,12,13,14],enabl:[1,5,8,12,13,14],end:[1,4,9],engin:12,enhanc:5,enough:[1,8],ensur:[1,5],entail:[1,14],entangl:8,entir:1,enumer:[1,8],environ:8,epoch:[1,11,16,17],epoch_num:[11,17],eprint:5,equal:[1,8,16],equilibrium:11,equival:[1,4,8,12,17],error:8,essenti:[1,5],etc:[1,9,12,16],evalu:13,even:[1,3,5,8,12,14,16],evenli:8,everi:[1,9,12,14,17],exact:1,exactli:1,exampl:[1,4,8,9,11,13,15,16],exceed:8,excel:5,except:[6,8],exclud:[1,15],execut:9,exist:[1,8,9,13],exp:8,expand:[1,4,16],expect:[3,8],experi:[1,5,12,14],experiment:5,explain:[1,12,13,14],explan:[1,8,9],explicitli:[1,15,16],explod:8,explor:[5,12],express:9,extend:1,extra:[3,8,9],extract:[8,12],extractor:17,ey:16,eye_tensor:16,f:[11,12,13,14,15,17],facilit:[1,5,9,12],fact:[1,15,16],factor:8,fail:8,fals:[1,6,8,9,11,13,14,16,17],familiar:[5,12],fashion:13,fashionmnist:17,faster:[1,16],fastest:5,featur:[1,4,8,9,12,13,14,15,17],feature_dim:[1,16],feature_s:8,fed:17,few:5,file:5,fill:[1,6,12,13,16],finish:[12,16],finit:8,first:[1,4,5,8,9,10,12,13,14,15,17],fix:[1,12,13],flat:8,flatten:8,flavour:1,flip:17,fn_first:9,fn_next:9,folder:[5,7],follow:[1,5,7,8,9],forget:1,form:[1,8,11,12,13,15,17],former:[1,8,9],forward:[1,8,16,17],four:16,frac:[1,3,4,8,9],framework:5,free:8,friendli:5,from:[1,5,6,7,8,9,11,12,13,15,16,17],from_sid:8,from_siz:8,front:1,full:11,fulli:5,func:[1,8],functool:17,fundament:5,further:[1,5],furthermor:[1,14,16],futur:[1,14],g:[1,8,9,15],gain:5,garc:5,gaussian:8,ge:[1,3,8,9],gener:[1,14],get:[1,11,12,16,17],get_axi:[1,12],get_axis_num:[1,12],get_edg:1,git:[5,7],github:[5,7],give:[1,12,14,15],given:[1,4,8],glimps:11,go:[1,9,11,13,14,17],goal:5,goe:8,good:[1,11],gpu:[11,16],grad:[1,5,13],gradient:[1,5,8,12,13],graph:[1,12,14,16],grasp:5,greater:[1,16],greatli:5,grid:8,grid_env:8,group:9,guid:5,ha:[1,3,8,9,11,12,14,15,16,17],had:[1,9,14],hand:[1,5,8,16],happen:[1,3,8,14,17],har:5,hat:4,have:[1,3,4,8,9,11,12,13,14,15,16,17],heavi:16,height:[8,11,16],help:[1,14],henc:[1,6,9,11,12,13,14,16],here:[1,8,13],hidden:[1,15],high:[1,4,6],highli:5,hint:1,hold:[13,15],hood:14,horizont:8,how:[1,5,8,9,10,11,13,15,17],howev:[1,5,8,9,12,13,14],http:[5,7],hundread:13,hybrid:[5,10],i:[1,3,5,8,9,12,13,14,15,16],i_1:6,i_n:6,ideal:5,ident:8,identif:5,idx:12,ijb:[9,13],ijk:9,im:9,imag:[8,11,16,17],image_s:[11,16,17],immers:5,implement:[1,5,11,17],improv:11,in_1:3,in_channel:[8,17],in_dim:[5,8,11],in_env:8,in_featur:8,in_n:3,in_region:8,in_which_axi:1,includ:[1,5,8,12],incorpor:5,inde:1,independ:[1,9],index:[1,12,14],indic:[1,6,8,9,12,13,14,15],infer:[1,8,9,12,14,16],inform:[1,5,8,9,12,13,14],ingredi:[1,12],inherit:[1,8,9,15],inic:16,init:13,init_method:[1,8,11,12,13,17],initi:[0,1,8,11,12,13,16,17],inlin:8,inline_input:8,inline_mat:8,inner:1,input:[1,3,8,9,11,12,13,14,15,16,17],input_edg:[1,15,16],input_nod:16,insid:[1,5,7],insight:13,instal:[2,11,12],instanc:[1,9,14,15,16],instanti:[1,3,8,12,14,15,16],instati:12,instead:[1,8,13,14,15,16,17],integ:4,integr:5,intend:[1,8],interior:8,intermedi:[1,13,15,16],intern:8,intric:5,introduc:8,introduct:5,invari:[1,8,14,15],inverse_memori:1,involv:[1,9,14],is_attached_to:1,is_avail:[11,16,17],is_batch:[1,12],is_connected_to:1,is_dangl:[1,12],is_data:[1,15],is_leaf:[1,15],is_node1:1,is_result:[1,15],is_virtu:[1,15],isinst:[1,13],isn:[11,12],isometri:8,issu:1,item:[11,17],iter:[1,8,14],its:[1,5,6,8,9,12,14,16,17],itself:[1,8,16],itselv:8,j:[1,4,5,9],jkb:[9,13],jl:9,jo:5,joserapa98:[5,7],just:[1,5,8,12,14,15,16,17],k:[5,9],keep:[1,3,8,9,14],kei:[1,5,12],kept:[1,3,8,9],kernel:8,kernel_s:[8,17],kerstjen:5,keyword:[1,8],kib:[9,13],kind:[1,11],klm:9,know:[1,12,13,14],known:16,kwarg:[1,8],l2_reg:[11,17],l:[4,9],label:[8,11,15,17],lambda:[11,17],larger:1,largest:1,last:[1,8,9,16,17],later:16,latter:[1,8],layer:[1,5,8,11,16,17],ldot:6,lead:[1,15],leaf:[1,9,15,16],leaf_nod:[1,15],learn:[1,5,9,11,12,13,14,15,16,17],learn_rat:[11,17],learnabl:13,least:[1,9,11,14,17],leav:[8,14],left1:13,left2:13,left:[1,5,8,9,12,13,14,15,16,17],left_bord:8,left_down_corn:8,left_nod:8,left_up_corn:8,leg:1,len:[9,16],length:[1,8],let:[11,12,13,14,16,17],level:[1,4,12],leverag:12,lfloor:4,li:[1,5,12],librari:[5,12,17],like:[0,1,5,8,11,12,13,14,15,16,17],limit:6,line:[5,8,17],linear:[5,16],link:1,list:[1,3,6,8,9,12,13,16],load:[11,16],load_state_dict:16,loader:[11,17],local:[4,8],locat:[1,8],log_norm:8,logarithm:8,logit:[11,17],longer:[1,14],loop:[11,16],lose:11,loss:17,loss_fun:[11,17],lot:[1,11],low:[1,4,6,8],lower:[1,3,6,8,9],lr:[11,17],lvert:4,m:[1,3,5,7,9],machin:[5,11],made:[1,9],mai:[1,3,5,8],main:[1,12,13,14,16],mainli:1,maintain:1,make:[1,12,13,14,15],make_tensor:[1,8],manag:[1,16],mandatori:[1,9],mani:[1,8,11,12,14,17],manipul:12,manual:[1,8,16],manual_se:[11,17],map:4,margin:8,marginalize_output:8,master:[5,7],mat:3,mat_to_mpo:0,match:[1,8,9],matric:[8,9,13,16],matrix:[1,3,4,5,8,9,11,12,14,16],mats_env:8,max:[11,17],max_bond:8,maximum:[4,8],maxpool2d:17,mayb:9,mb:[11,17],mean:[1,6,8],megabyt:[11,17],mehtod:12,member:1,memori:[1,5,10,11,12,15,16,17],mention:[8,16],method:[1,8,12,13,14,15,16],mi:8,middl:8,middle_sit:8,might:[1,8,14,15,16],mile:4,mimic:16,minuend:9,misc:5,miscellan:[11,17],mit:5,mnist:11,mod:4,mode:[1,8,9,11,15,16,17],model:[0,1,5,10,12,13,14,15],modif:1,modifi:[1,8,13],modul:[1,5,7,8,11,12,13,16,17],modulelist:17,monomi:4,monturiol:5,mooth:5,more:[1,3,5,8,9,12,13,14,15],most:[1,5,12,15],move:[1,8,12],move_nam:1,move_to_network:[1,9],movec:9,mp:[0,3,5,11,12,13,14,15,16,17],mpo:[0,3,16],mps_data:8,mps_layer:8,mpsdata:[0,3],mpslayer:[0,5,11,16],much:[1,14,15,16,17],mul:[0,13],multi:12,multipl:[8,12,14],multipli:[8,9],must:[1,3,9,12,16],mutual:8,my_model:5,my_nod:[1,14],my_paramnod:1,my_stack:1,mybatch:1,n:[1,4,5,6,8,11,17],n_:[1,4],n_batch:[3,8],n_col:8,n_epoch:16,n_featur:[5,8,11,16],n_param:[11,17],n_row:8,name:[1,5,6,9,11,12,13,14,16,17],name_:1,necessari:[1,8,9,11,12,16,17],need:[1,8,9,11,12,13,14,16],neighbour:[1,8,13],nelement:[11,17],net2:1,net:[1,5,9,12,13,14,15],network:[0,5,6,8,9,10,14,15,16],neural:[5,8,10,11],never:[1,9,15],nevertheless:5,new_edg:[1,9],new_edgea:1,new_edgeb:1,new_mp:16,new_nodea:[1,9],new_nodeb:[1,9],new_tensor:14,next:[1,8,9,12,13,14,15],nn:[1,5,8,11,12,13,16,17],no_grad:[11,17],node1:[1,5,9,12,13,14,15],node1_ax:[1,9],node1_list:1,node1_lists_dict:1,node2:[1,5,9,12,13,14,15],node2_ax:[1,9],node3:[13,14],node:[0,5,6,8,10,11,14,16,17],node_0:1,node_1:1,node_:[12,13,14,15],node_left:[1,9],node_n:1,node_ref:1,node_right:[1,9],nodea:[1,9],nodeb:[1,9],nodec:[1,9],nodes_list:9,nodes_nam:1,nodesa:9,nodesb:9,nodesc:9,non:[1,8,9,13,16],none:[1,3,5,6,8,9,13,16],norm:[1,8],normal:[1,6,8],notabl:5,notat:12,note:[1,5,9,12,13,16],noth:[1,12,14],now:[1,12,13,14,16,17],nu_batch:8,num:1,num_batch:[11,17],num_batch_edg:[1,15,16],num_epoch:[11,17],num_epochs_canon:11,num_test:[11,17],num_train:[11,17],number:[1,3,8,9,11,13,16,17],numel:1,nummber:1,o:5,obc:[3,8],object:[1,12,17],obtain:[8,11],oc:8,occur:[1,14],off:[11,14,17],offer:5,often:[1,14],onc:[1,5,9,14],one:[1,3,8,9,11,12,13,14,15,16,17],ones:[0,1,4,8,12,13,15,17],ones_lik:[11,17],onli:[1,5,8,9,12,13,14,15,16],open:8,oper:[0,1,8,12,15,16],operand:[1,12,13],opposit:8,opt_einsum:[5,9,13],optim:[1,5,17],option:[1,3,4,5,6,8,9,12,16],order:[1,3,8,9,12,13,14,15,16],orient:8,origin:[1,4,8,9,11,15,17],orthogon:8,ot:8,other:[1,8,9,12,13,14,15,16,17],other_left:12,other_nod:14,otherwis:[1,8,9,17],otim:4,our:[11,12,13,14,17],out:[1,8,9,16],out_1:3,out_channel:[8,17],out_dim:[5,8,11],out_env:8,out_featur:8,out_n:3,out_nod:8,out_posit:8,out_region:8,output:[1,3,4,8,9,11,16],output_nod:16,outsid:[5,7],over:[1,13],overcom:1,overhead:14,overload:1,overrid:[1,8,16],override_edg:1,override_nod:1,overriden:[1,13,16],own:[1,8,9,14,15],ownership:1,p:[1,5,11,17],packag:[5,7],pad:[8,17],pair:[1,8,17],pairwis:8,paper:[4,5,8,17],parallel:[1,8],param:[1,9,11,17],param_nod:[1,5,6,13,15],paramedg:1,paramet:[1,3,4,6,8,9,11,13,16,17],parameter:[1,8,13],parametr:[1,8,11,13,16,17],paramnod:[0,6,8,9,14,15,16],paramnode1:13,paramnode2:13,paramnode3:13,paramnodea:1,paramnodeb:1,paramstacknod:[0,9,14,15],pareja2023tensorkrowch:5,pareja:5,parent:[1,16],parenthesi:1,part:[1,8,13,15,16],partial:[8,17],partial_dens:8,particular:[1,16],pass:[8,11,16],patch:[8,16],pattern:17,pave:11,pbc:8,pep:[0,5,16],perform:[1,5,8,9,11,12,13,14,16,17],period:8,permut:[0,1,13,14],permute_:[0,1,13],phase:9,phi:4,phys_dim:8,physic:[3,8,12],pi:4,piec:[12,16],pip:[5,7,11,12],pipelin:[5,11],pixel:[8,11,16,17],place:[1,8,9,13,14,16],plai:15,pleas:5,plu:8,plug:8,point:[1,11],poli:[0,16],pool:17,posit:[8,16],possibl:[1,8,11,12,13,14],potenti:5,power:[4,11],poza:5,practic:[1,5],practition:11,precis:4,pred:[11,17],predict:[11,17],present:17,previou:[1,8,13,14,15,16,17],previous:13,primari:5,principl:[1,15],print:[1,8,9,11,17],probabl:11,problem:[1,14],process:[1,5,11],product:[5,8,9,11,12,14,16],profici:5,project:8,properli:16,properti:[1,8,9,12],proport:[1,3,8,9],prove:8,provid:[1,3,5,8,9,12],prune:17,pt:16,purpos:[1,12,14,15],put:[1,8,11,17],pytest:[5,7],python:[5,7,11],pytorch:[1,5,9,11,12,13,14,16,17],q:9,qr:[0,1,8,13],qr_:[0,1,8],quantiti:[1,3,8,9],quantum:12,qubit:8,quit:[5,17],r:[5,9],r_1:9,r_2:9,rais:1,ram:5,rand:[0,1,4,8],randint:4,randn:[0,1,4,5,8,9,12,13,14,15,16],randn_ey:[8,11,17],random:[8,9,13],random_ey:16,rang:[1,5,8,9,11,12,13,14,15,16,17],rangl:4,rank:[1,3,4,8,9,13],rapid:5,rather:[1,8,12,14,15],re:[1,9,11,17],reach:11,readi:16,realli:[1,15],reattach:1,reattach_edg:1,recal:[1,16],recogn:13,recommend:[1,5,8],reconnect:[1,13],recov:[1,3,8],reduc:[1,8,11,17],redund:[1,9],refer:[1,2,9,12,13,14,15,16],referenc:1,regard:[1,9,13],regio:8,relat:12,relev:[1,12],reli:5,relu:[5,17],remain:8,remov:[1,9],renorm:8,repeat:[1,9],repeatedli:14,replac:1,repositori:[5,7],repres:[8,12],reproduc:[1,14],requir:[1,8,9,15],requires_grad:1,res1:13,res2:13,reserv:[1,9,14],reset:[1,8,9,14,15,16],reset_tensor_address:1,reshap:[3,9,14],resiz:[11,17],respect:[1,3,8,9,13,14],rest:[1,13],restrict:[1,9,15],result2:9,result:[1,3,5,8,9,13,14,15,16],resultant_nod:[1,15],retriev:[1,12,14,15],reus:8,rez:5,rfloor:4,rid:1,right1:13,right2:13,right:[1,5,8,9,12,13,14,15,16,17],right_bord:8,right_down_corn:8,right_nod:8,right_up_corn:8,rightmost:8,ring:13,role:[1,8,15,16],row:8,rowch:5,rq:[0,1],rq_:[0,1,8],run:[5,7,8,11,17],running_acc:11,running_test_acc:[11,17],running_train_acc:[11,17],running_train_loss:[11,17],s:[1,4,5,6,8,9,11,12,13,14,15,16,17],s_1:4,s_i:[1,3,8,9],s_j:4,s_n:4,sai:[1,14],same:[1,8,9,12,13,14,17],sampler:[11,17],satisfi:[1,3,8,9],save:[1,5,10,13,16],scalar:8,scale:8,scenario:5,schwab:4,score:[11,17],second:[1,8,9,14],secondli:16,section:[12,13,15,17],see:[1,5,8,9,15,17],seen:15,select:[1,9,12,13,16],self:[1,8,16,17],send:[11,16,17],sens:[11,15],sento:16,separ:[8,9],sepcifi:1,sequenc:[1,3,6,8,9,13,16],sequenti:[5,16],serv:11,set:[1,8,9,14,15,16,17],set_data_nod:[1,8,15,16],set_param:[1,8],set_tensor:[1,8,14],set_tensor_from:[1,14,15,16],sever:[1,9],shall:[1,16],shape:[1,3,4,5,6,8,9,11,12,13,14,15,16],shape_all_nodes_layer_1:8,shape_all_nodes_layer_n:8,shape_node_1_layer_1:8,shape_node_1_layer_n:8,shape_node_i1_layer_1:8,shape_node_in_layer_n:8,share:[1,8,9,12,14,15],share_tensor:[1,8],should:[1,3,4,6,8,9,12,13,14,15,16],show:12,side:[1,8,9,17],similar:[1,8,9,12,13,15,16],simpl:[5,12,13],simpli:[1,12,14,16],simplifi:[1,5],simul:12,sin:4,sinc:[1,8,9,13,14,15,16,17],singl:[1,8,9,13,16],singular:[1,3,8,9,11,13,17],site:[8,12],sites_per_lay:8,situat:[1,15],size:[1,4,6,8,9,12,13,15,16,17],skip:1,skipp:14,slice:[1,9,14,15],slide:1,slower:[1,14],small:13,smaller:1,smooth:5,snake:[8,17],so:[1,8,9,14,16],some:[1,3,8,9,11,12,13,14,15,16],someth:12,sometim:1,sort:[1,8,12,14,15],sourc:[1,3,4,6,8,9],space:[1,6,11,16,17],special:[1,13,15],specif:[1,5,15],specifi:[1,3,8,9,12,13,15],split:[0,1,3,8,12,13],split_0:[1,9],split_1:[1,9],split_:[0,1,13],split_ip:[1,9],split_ip_0:[1,9],split_ip_1:[1,9],sqrt:4,squar:9,stack:[0,1,4,8,11,13,14,15,16],stack_0:1,stack_1:1,stack_data:[1,9,16],stack_data_memori:[1,15],stack_data_nod:13,stack_input:16,stack_nod:[1,9,13,14,15],stack_result:[13,16],stackabl:9,stacked_einsum:[0,13],stackedg:[0,9,13],stacknod:[0,9,13,15],stai:1,stand:4,standard:6,start:[1,8,12,14,16,17],state:[1,5,8,11,12,14,16],state_dict:16,staticmethod:17,std:[1,6,8,11,16,17],step:[1,5,10,17],stick:1,still:[1,8,9,13],store:[1,8,9,12,15,16],stoudenmir:4,str:[1,6,9],straightforward:5,strength:5,stride:[8,17],string:[1,8,9,15],structur:[1,5,8,12,16,17],sub:[0,13],subclass:[1,5,10,12,15,17],subsequ:[1,14],subsetrandomsampl:[11,17],substitut:1,subsystem:8,subtract:9,subtrahend:9,successor:[0,9],suffix:1,suitabl:5,sum:[1,3,8,9,11,13,17],sum_:[1,3,8,9],summat:13,support:5,sv:[1,9],svd:[0,1,3,8,11],svd_:[0,1,8,13],svdr:[0,1,8],svdr_:[0,1,8],t:[8,9,11,12,15,16],t_:[6,9],tailor:5,take:[1,8,11,14,15,16],taken:1,task:[1,8,15],temporari:[1,15],tensor:[0,3,4,5,6,8,10,15,16],tensor_address:[1,8,14,15],tensorkrowch:[1,3,4,6,7,8,9,10,13,15,16,17],tensornetwork:[1,5,6,9,10,13,15,17],termin:[5,7],test:[5,7,11,17],test_set:[11,17],textrm:8,th:8,than:[1,3,8,9,12,16],thank:12,thei:[1,5,6,7,8,9,12,13,15],them:[1,8,9,11,12,13,14,16,17],themselv:[8,9],therefor:[1,5,7,8,12,16],thi:[1,3,4,5,8,9,11,12,13,14,15,16,17],thing:[1,9,11,15,17],think:14,third:8,those:[1,14,15,16],though:[1,8,9,13,16],thought:1,three:[1,9],through:[1,5,8,9,11,16,17],thu:[1,3,5,8,9,12,16],time:[1,3,4,5,8,9,10,12,13,16],titl:5,tk:[1,4,5,8,9,11,12,13,14,15,16,17],tn:16,togeth:[1,5,7,14,15],tool:[5,12,13],top:[1,5,8,11,13,17],torch:[1,3,4,5,6,8,9,11,12,13,14,15,16,17],torchvis:[11,17],total:[1,3,8,9,11,17],total_num:[11,17],totensor:[11,17],tprod:[0,13],trace:[1,8,9,11,15,16,17],trace_sit:8,track:[1,14],train:[1,5,12,13,14,16,17],train_set:[11,17],trainabl:[1,8,12,15,16,17],transform:[4,8,11,13,17],transit:8,translation:[1,8,14,15],transpos:[11,16,17],treat:1,tree:[0,16],tri:[1,9],triangular:9,trick:[14,17],tupl:[1,6,8,9],turn:[1,8,14],tutori:[1,2,11,12,13,14,15,16,17],two:[1,8,9,12,13,14],two_0:9,type:[1,3,4,5,6,8,9,10,12,13,14],typeerror:1,u:[1,6,9],ump:0,umpo:0,umpslay:0,unbind:[0,1,13,14,16],unbind_0:[1,9],unbind_result:13,unbinded_nod:[13,14],unbound:[1,9],under:[5,14],underli:14,underscor:[1,9],understand:[5,12],undesir:[1,8,15],unfold:8,uniform:[1,6,8,14,15,16],uniform_memori:16,uniform_nod:[14,15],uninform:11,uniqu:[8,14],unit:[0,8],unitari:[8,9],univoc:8,unix:[5,7],unless:1,unset:1,unset_data_nod:[1,8],unset_tensor:1,unsqueez:17,until:[1,8,9,11],up:[1,8,9,12],up_bord:8,updat:[11,17],upep:0,upon:8,upper:[6,8,9],ur_1sr_2v:9,us:[1,3,4,5,6,8,9,11,12,13,14,15,16,17],usag:1,useless:11,user:[1,5],usual:[1,8,9,15,16],usv:9,util:[11,17],utre:0,v:[1,5,7,9],valid:1,valu:[1,3,4,8,9,11,13,16,17],valueerror:1,vanilla:[12,13,14],variabl:4,variant:[13,16],variat:1,variou:[5,8],vdot:4,vec:3,vec_to_mp:0,vector:[3,4,8,11,16,17],veri:[1,11,12,14,16],verifi:[1,9],versa:8,versatil:5,version:[1,8,9,13],vertic:[1,8],via:[1,3,8,9,12,13,14,15],vice:8,view:[11,16,17],virtual:[1,9,14,15,16],virtual_nod:[1,15],virtual_result:[1,15],virtual_result_stack:[1,9,15],virtual_uniform:[1,8,15,16],virtual_uniform_mp:1,visit:1,wa:[1,8,16,17],wai:[1,8,11,12,16],want:[1,8,12,13,14,16],we:[1,11,12,13,14,15,16,17],weight_decai:[11,17],well:[1,8,9],were:[1,8,13,15,16],what:[1,12,14,16],when:[1,8,9,11,12,13,14,15,16],whenev:[1,9],where:[1,4,6,8,9,11,12,13,14,16],whether:[1,6,8,12,14],which:[1,4,6,8,9,11,12,13,14,15,16],whilst:8,who:5,whole:[1,8,11,13,14,15,16],whose:[1,8,9,14,15],why:14,wide:[5,16],width:[8,11,16],wise:[1,9],wish:16,without:[1,6,8,9,11],won:[8,16],word:[1,12],work:[5,13,17],workflow:[1,16],worri:[1,14],would:[1,8,9,12,14,17],wouldn:15,wow:17,wrap:[1,12],written:[5,7],x:[4,5,8,11,16,17],x_1:4,x_j:4,x_n:4,y1:17,y2:17,y3:17,y4:17,y:17,yet:[12,16],you:[5,7,11,12,13,14,15,16],your:[5,7,11,12,16],your_nod:14,yourself:5,zero:[0,1,8,11,16,17],zero_grad:[11,17],zeros_lik:14},titles:["API Reference","Components","<no title>","Decompositions","Embeddings","TensorKrowch documentation","Initializers","Installation","Models","Operations","Tutorials","First Steps with TensorKrowch","Creating a Tensor Network in TensorKrowch","Contracting and Differentiating the Tensor Network","How to save Memory and Time with TensorKrowch (ADVANCED)","The different Types of Nodes (ADVANCED)","How to subclass TensorNetwork to build Custom Models","Creating a Hybrid Neural-Tensor Network Model"],titleterms:{"1":[11,12,13,14,15,16],"2":[11,12,13,14,15,16],"3":[11,12,13,14,16],"4":11,"5":11,"6":11,"7":11,"class":9,"function":11,"import":11,The:[15,16],abstractnod:1,add:9,add_on:4,advanc:[14,15],api:0,ar:14,axi:1,basi:4,between:13,build:[12,16],choos:11,cite:5,compon:[1,12,16],connect:9,connect_stack:9,content:2,contract:[9,13],contract_:9,contract_between:9,contract_between_:9,contract_edg:9,convmp:8,convmpslay:8,convpep:8,convtre:8,convump:8,convumpslay:8,convupep:8,convutre:8,copi:6,creat:[12,17],custom:16,data:11,decomposit:3,differ:15,differenti:13,disconnect:9,discret:4,distinguish:13,document:5,download:11,edg:[1,9],einsum:9,embed:4,empti:6,everyth:16,exampl:5,faster:14,first:[11,16],how:[12,14,16],hybrid:17,hyperparamet:11,initi:6,instal:[5,7],instanti:11,introduct:[11,12,13,14,15,16],librari:11,licens:5,like:9,loss:11,manag:14,mat_to_mpo:3,matrix:13,memori:14,mode:14,model:[8,11,16,17],mp:8,mpo:8,mpsdata:8,mpslayer:8,mul:9,name:15,network:[1,11,12,13,17],neural:17,node:[1,9,12,13,15],ones:6,oper:[9,13,14],optim:11,our:16,paramnod:[1,13],paramstacknod:1,pep:8,permut:9,permute_:9,poli:4,product:13,prune:11,put:16,qr:9,qr_:9,rand:6,randn:6,refer:0,requir:5,reserv:15,rq:9,rq_:9,run:14,save:14,set:11,setup:[11,12],skip:14,split:9,split_:9,stack:9,stacked_einsum:9,stackedg:1,stacknod:1,start:11,state:13,step:[11,12,13,14,15,16],store:14,sub:9,subclass:16,successor:1,svd:9,svd_:9,svdr:9,svdr_:9,tensor:[1,9,11,12,13,14,17],tensorkrowch:[5,11,12,14],tensornetwork:[12,14,16],time:14,togeth:16,tprod:9,train:11,tree:8,tutori:[5,10],type:15,ump:8,umpo:8,umpslay:8,unbind:9,unit:4,upep:8,utre:8,vec_to_mp:3,zero:6}}) \ No newline at end of file