Skip to content
This repository has been archived by the owner on Nov 7, 2024. It is now read-only.

Commit

Permalink
Bump version and change default backend to numpy (#236)
Browse files Browse the repository at this point in the history
* Bump version and swap backend!

* Fixed tests

* Find and replace mistake

* Updated requirements.txt

* Changed default to numpy

* Changed requirements
  • Loading branch information
Chase Roberts authored Sep 12, 2019
1 parent dd10172 commit 25ef3d6
Show file tree
Hide file tree
Showing 12 changed files with 42 additions and 39 deletions.
2 changes: 1 addition & 1 deletion examples/fft/fft_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class FftTest(tf.test.TestCase):

def test_fft(self):
n = 3
net = tensornetwork.TensorNetwork()
net = tensornetwork.TensorNetwork("tensorflow")

initial_state = [complex(0)] * (1 << n)
initial_state[1] = 1j
Expand Down
2 changes: 1 addition & 1 deletion examples/sat/sat_tensornetwork.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ def sat_tn(clauses: List[Tuple[int, int, int]]
for clause in clauses:
if 0 in clause:
raise ValueError("0's are not allowed in the clauses.")
net = tensornetwork.TensorNetwork()
net = tensornetwork.TensorNetwork("tensorflow")
var_set = set()
for clause in clauses:
var_set |= {abs(x) for x in clause}
Expand Down
6 changes: 3 additions & 3 deletions examples/wavefunctions/wavefunctions.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ def apply_op(psi, op, n1, pbc=False):
Returns:
psi_final: The result of applying `op` to `psi`.
"""
net = tensornetwork.TensorNetwork()
net = tensornetwork.TensorNetwork("tensorflow")
n_psi = net.add_node(psi)
site_edges = n_psi.get_all_edges()

Expand Down Expand Up @@ -101,7 +101,7 @@ def expval(psi, op, n1, pbc=False):
Returns:
expval: The expectation value.
"""
net = tensornetwork.TensorNetwork()
net = tensornetwork.TensorNetwork("tensorflow")
n_psi = net.add_node(psi)
site_edges = n_psi.get_all_edges()

Expand Down Expand Up @@ -245,7 +245,7 @@ def apply_circuit(psi, layers):
"""
num_sites = len(psi.shape)

net = tensornetwork.TensorNetwork()
net = tensornetwork.TensorNetwork("tensorflow")
n_psi = net.add_node(psi)
site_edges = n_psi.get_all_edges()
nodes = [n_psi]
Expand Down
40 changes: 20 additions & 20 deletions experiments/MERA/binary_mera_lib.py
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ def two_site_ascending_super_operator(operator, isometry, unitary):
tf.Tensor
"""

net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")

iso_l = net.add_node(isometry)
iso_r = net.add_node(isometry)
Expand Down Expand Up @@ -244,7 +244,7 @@ def two_site_descending_super_operator(rho, isometry, unitary):
tf.Tensor
"""

net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")

iso_l = net.add_node(isometry)
iso_r = net.add_node(isometry)
Expand Down Expand Up @@ -291,7 +291,7 @@ def left_ascending_super_operator(hamiltonian, isometry, unitary):
tf.Tensor
"""

net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")

iso_l = net.add_node(isometry)
iso_c = net.add_node(isometry)
Expand Down Expand Up @@ -367,7 +367,7 @@ def right_ascending_super_operator(hamiltonian, isometry, unitary):
tf.Tensor
"""

net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")

iso_l = net.add_node(isometry)
iso_c = net.add_node(isometry)
Expand Down Expand Up @@ -444,7 +444,7 @@ def left_descending_super_operator(reduced_density, isometry, unitary):
tf.Tensor
"""

net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")

iso_l = net.add_node(isometry)
iso_c = net.add_node(isometry)
Expand Down Expand Up @@ -523,7 +523,7 @@ def right_descending_super_operator(reduced_density, isometry, unitary):
tf.Tensor
"""

net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")

iso_l = net.add_node(isometry)
iso_c = net.add_node(isometry)
Expand Down Expand Up @@ -610,7 +610,7 @@ def descending_super_operator(rho, isometry, unitary):

@tf.contrib.eager.defun(autograph=False)
def get_env_disentangler_1(hamiltonian, reduced_density, isometry, unitary):
net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")

iso_l = net.add_node(isometry)
iso_c = net.add_node(isometry)
Expand Down Expand Up @@ -677,7 +677,7 @@ def get_env_disentangler_1(hamiltonian, reduced_density, isometry, unitary):

@tf.contrib.eager.defun(autograph=False)
def get_env_disentangler_2(hamiltonian, reduced_density, isometry, unitary):
net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")

iso_l = net.add_node(isometry)
iso_c = net.add_node(isometry)
Expand Down Expand Up @@ -743,7 +743,7 @@ def get_env_disentangler_2(hamiltonian, reduced_density, isometry, unitary):

@tf.contrib.eager.defun(autograph=False)
def get_env_disentangler_3(hamiltonian, reduced_density, isometry, unitary):
net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")

iso_l = net.add_node(isometry)
iso_c = net.add_node(isometry)
Expand Down Expand Up @@ -809,7 +809,7 @@ def get_env_disentangler_3(hamiltonian, reduced_density, isometry, unitary):

@tf.contrib.eager.defun(autograph=False)
def get_env_disentangler_4(hamiltonian, reduced_density, isometry, unitary):
net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")

iso_l = net.add_node(isometry)
iso_c = net.add_node(isometry)
Expand Down Expand Up @@ -897,7 +897,7 @@ def get_env_disentangler(ham, rho, isometry, unitary):
@tf.contrib.eager.defun(autograph=False)
def get_env_isometry_1(hamiltonian, reduced_density, isometry, unitary):

net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")

iso_c = net.add_node(isometry)
iso_r = net.add_node(isometry)
Expand Down Expand Up @@ -964,7 +964,7 @@ def get_env_isometry_1(hamiltonian, reduced_density, isometry, unitary):
@tf.contrib.eager.defun(autograph=False)
def get_env_isometry_2(hamiltonian, reduced_density, isometry, unitary):

net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")

iso_c = net.add_node(isometry)
iso_r = net.add_node(isometry)
Expand Down Expand Up @@ -1033,7 +1033,7 @@ def get_env_isometry_2(hamiltonian, reduced_density, isometry, unitary):
@tf.contrib.eager.defun(autograph=False)
def get_env_isometry_3(hamiltonian, reduced_density, isometry, unitary):

net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")

iso_l = net.add_node(isometry)
iso_r = net.add_node(isometry)
Expand Down Expand Up @@ -1099,7 +1099,7 @@ def get_env_isometry_3(hamiltonian, reduced_density, isometry, unitary):
@tf.contrib.eager.defun(autograph=False)
def get_env_isometry_4(hamiltonian, reduced_density, isometry, unitary):

net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")

iso_l = net.add_node(isometry)
iso_r = net.add_node(isometry)
Expand Down Expand Up @@ -1167,7 +1167,7 @@ def get_env_isometry_4(hamiltonian, reduced_density, isometry, unitary):
@tf.contrib.eager.defun(autograph=False)
def get_env_isometry_5(hamiltonian, reduced_density, isometry, unitary):

net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")

iso_l = net.add_node(isometry)
iso_c = net.add_node(isometry)
Expand Down Expand Up @@ -1236,7 +1236,7 @@ def get_env_isometry_5(hamiltonian, reduced_density, isometry, unitary):
@tf.contrib.eager.defun(autograph=False)
def get_env_isometry_6(hamiltonian, reduced_density, isometry, unitary):

net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")

iso_l = net.add_node(isometry)
iso_c = net.add_node(isometry)
Expand Down Expand Up @@ -1561,23 +1561,23 @@ def initialize_TFI_hams(dtype=tf.float64):
sZ = np.array([[1, 0], [0, -1]]).astype(dtype.as_numpy_dtype)
eye = np.eye(2).astype(dtype.as_numpy_dtype)

net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")
X1 = net.add_node(sX)
X2 = net.add_node(sX)
I3 = net.add_node(eye)
out_order = [X1[0], X2[0], I3[0], X1[1], X2[1], I3[1]]
t1 = net.outer_product(net.outer_product(X1, X2), I3)
t1 = t1.reorder_edges(out_order).get_tensor()

net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")
Z1 = net.add_node(sZ)
I2 = net.add_node(eye)
I3 = net.add_node(eye)
out_order = [Z1[0], I2[0], I3[0], Z1[1], I2[1], I3[1]]
t2 = net.outer_product(net.outer_product(Z1, I2), I3)
t2 = t2.reorder_edges(out_order).get_tensor() / 2

net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")
I1 = net.add_node(eye)
Z2 = net.add_node(sZ)
I3 = net.add_node(eye)
Expand Down Expand Up @@ -1676,7 +1676,7 @@ def optimize_binary_mera(ham_0,
if verbose > 0:
if np.mod(k, 10) == 1:
Z = misc_mera.trace(rho[0])
net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")
r = net.add_node(rho[0])
h = net.add_node(ham[0])
edges = [net.connect(r[n], h[n]) for n in range(6)]
Expand Down
1 change: 1 addition & 0 deletions experiments/MERA/binary_mera_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import experiments.MERA.misc_mera as misc_mera
import pytest
import copy
tn.set_default_backend("tensorflow")
tf.enable_v2_behavior()

@pytest.mark.parametrize("chi", [4, 6])
Expand Down
4 changes: 2 additions & 2 deletions experiments/MERA/misc_mera.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def trace(rho):
compute the trace of `rho`
"""
dim = len(rho.shape) // 2
net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")
r = net.add_node(rho)

edges = [net.connect(r[n], r[n + dim]) for n in range(dim)]
Expand Down Expand Up @@ -63,7 +63,7 @@ def scalar_product(bottom, top):
tf.Tensor: the inner product
"""

net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")
b = net.add_node(tf.conj(bottom))
t = net.add_node(top)
edges = [net.connect(b[n], t[n]) for n in range(len(bottom.shape))]
Expand Down
12 changes: 7 additions & 5 deletions experiments/MPS/misc_mps.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@
import functools as fct
import tensornetwork as tn
from scipy.sparse.linalg import LinearOperator, lgmres, eigs
ncon_defuned = tf.contrib.eager.defun(ncon_tn, autograph=False)
import functools
tf_ncon = functools.partial(ncon_tn, backend="tensorflow")
ncon_defuned = tf.contrib.eager.defun(tf_ncon, autograph=False)


def transfer_op(As, Bs, direction, x):
Expand Down Expand Up @@ -420,7 +422,7 @@ def prepare_tensor_SVD(tensor, direction, D=None, thresh=1E-32, normalize=False)
assert (direction != 0), 'do NOT use direction=0!'
[l1, l2, d] = tensor.shape
if direction in (1, 'l', 'left'):
net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")
node = net.add_node(tensor)
u_node, s_node, v_node, _ = net.split_node_full_svd(node, [node[0], node[1]], [node[2]], max_singular_values=D, max_truncation_err=thresh)
Z = tf.linalg.norm(s_node.tensor)
Expand All @@ -429,7 +431,7 @@ def prepare_tensor_SVD(tensor, direction, D=None, thresh=1E-32, normalize=False)
return u_node.tensor, s_node.tensor, v_node.tensor, Z

if direction in (-1, 'r', 'right'):
net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")
node = net.add_node(tensor)
u_node, s_node, v_node, _ = net.split_node_full_svd(node, [node[0]], [node[1], node[2]], max_singular_values=D, max_truncation_err=thresh)
Z = tf.linalg.norm(s_node.tensor)
Expand Down Expand Up @@ -471,7 +473,7 @@ def apply_2site_schmidt_canonical(op,
L0_i = tf.matrix_inverse(L0)
L2_i = tf.matrix_inverse(L2)

net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")
nL0_i = net.add_node(L0_i, axis_names=["L", "R"])
nL0 = net.add_node(L0, axis_names=["L", "R"])
nG1 = net.add_node(G1, axis_names=["L", "p", "R"])
Expand Down Expand Up @@ -545,7 +547,7 @@ def apply_2site_generic(op, A1, A2, max_bond_dim=None, auto_trunc_max_err=0.0):
op_shp[3],
message="Operator dimensions do not match MPS physical dimensions.")

net = tn.TensorNetwork()
net = tn.TensorNetwork("tensorflow")
nA1 = net.add_node(A1, axis_names=["L", "p", "R"])
nA2 = net.add_node(A2, axis_names=["L", "p", "R"])
nop = net.add_node(op, axis_names=["p_out_1", "p_out_2", "p_in_1", "p_in_2"])
Expand Down
2 changes: 1 addition & 1 deletion experiments/MPS_classifier/classifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ def create_network(self, data: tf.Tensor, data0: tf.Tensor
var_nodes: List of the two MPS nodes.
data_nodes: Tuple of the two data nodes.
"""
net = batchtensornetwork.BatchTensorNetwork()
net = batchtensornetwork.BatchTensorNetwork("tensorflow")

# Connect the bond edges of the MPS tensors
var_nodes = [net.add_node(self.vector), net.add_node(self.matrices)]
Expand Down
3 changes: 1 addition & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
numpy>=1.16
tensorflow>=1.13
graphviz>=0.11.1
opt_einsum>=2.3.0
h5py>=2.9.0
h5py>=2.9.0
5 changes: 3 additions & 2 deletions requirements_travis.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
jax>=0.1.0
jaxlib>=0.1.27
tensorflow>=1.13
pytype>=2019.06.21
pytest
torch>=1.1
jax>=0.1.0
jaxlib>=0.1.27
2 changes: 1 addition & 1 deletion tensornetwork/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@
# See the License for the specific language governing permissions and
# limitations under the License.

default_backend = "tensorflow"
default_backend = "numpy"
default_dtype = None
2 changes: 1 addition & 1 deletion tensornetwork/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.

__version__ = '0.0.7'
__version__ = '0.1.0'

0 comments on commit 25ef3d6

Please sign in to comment.