def tensors( draw, numbers=floats(allow_nan=False, min_value=-100, max_value=100), backend=minitorch.TensorFunctions, shape=None, ): td = draw(tensor_data(numbers, shape=shape)) return minitorch.Tensor(td, backend=backend)
def matmul_tensors( draw, numbers=floats(allow_nan=False, min_value=-100, max_value=100) ): i, j, k = [draw(integers(min_value=1, max_value=10)) for _ in range(3)] l1 = (i, j) l2 = (j, k) values = [] for shape in [l1, l2]: size = int(minitorch.prod(shape)) data = draw(lists(numbers, min_size=size, max_size=size)) values.append(minitorch.Tensor(minitorch.TensorData(data, shape))) return values
def shaped_tensors( draw, n, numbers=floats(allow_nan=False, min_value=-100, max_value=100), backend=minitorch.TensorFunctions, ): td = draw(tensor_data(numbers)) values = [] for i in range(n): data = draw(lists(numbers, min_size=td.size, max_size=td.size)) values.append( minitorch.Tensor(minitorch.TensorData(data, td.shape), backend=backend)) return values