from fibertree import Tensor print("----------------------------------------") print(" Convolution 1-D Input Stationary") print("----------------------------------------") print("") data_dir = "../../data" w = Tensor.fromYAMLfile(os.path.join(data_dir, "conv-weights-a.yaml")) i = Tensor.fromYAMLfile(os.path.join(data_dir, "conv-activations-a.yaml")) o = Tensor(rank_ids=["Q"]) w.print("W Tensor") i.print("I Tensor") o.print("O Tensor") w_r = w.getRoot() i_h = i.getRoot() o_q = o.getRoot() W = w_r.maxCoord() + 1 I = i_h.maxCoord() + 1 Q = I - W + 1 w_r.print("W Tensor - R rank - size=%s" % W) i_h.print("I Tensor - H rank - size=%s" % I) o_q.print("O Tensor - Q rank - size=%s" % I) print("Convolution")
print("--------------------------------------") print(" C-stationary spMspV") print("--------------------------------------") print("") data_dir = "../../data" a = Tensor.fromYAMLfile(os.path.join(data_dir, "spMspV-a.yaml")) b = Tensor.fromYAMLfile(os.path.join(data_dir, "spMspV-b.yaml")) z = Tensor(rank_ids=["M"]) a.print("A Tensor") b.print("B Tensor") z.print("Z Tensor") a_m = a.getRoot() b_k = b.getRoot() z_m = z.getRoot() a_m.print("A Tensor - Rank M") b_k.print("B Tensor - Rank K") z_m.print("Z Tensor - Rank M") for m_coord, (z_ref, a_k) in (z_m << a_m): for k_coord, (a_val, b_val) in (a_k & b_k): z_ref += a_val * b_val # reducing a scalar z.print("\nZ Tensor")
#!/usr/bin/python3 import os import argparse from fibertree import Tensor, TensorImage data_dir = "../examples/data" example_file = os.path.join(data_dir, "draw-a.yaml") parser = argparse.ArgumentParser(description='Display a tensor') parser.add_argument("tensorfile", nargs="?", default=example_file) args = parser.parse_args() filename = args.tensorfile a = Tensor(filename) a.print(filename) i = TensorImage(a) i.show()