import tensorflow as tf from wtftf.meta import layered def _sparse_tensor(args, **kwargs): return tf.SparseTensor(*args, **kwargs) # constructors SparseTensor = layered(tf.SparseTensor) # attrs values = layered(tf.SparseTensor.values.fget) indices = layered(tf.SparseTensor.indices.fget) dense_shape = layered(tf.SparseTensor.dense_shape.fget)
from wtftf.meta import layered from ecn.ops import neighbors as _neigh_ops compute_pooled_neighbors = layered(_neigh_ops.compute_pooled_neighbors) compute_full_neighbors = layered(_neigh_ops.compute_full_neighbors) compute_pointwise_neighbors = layered(_neigh_ops.compute_pointwise_neighbors) compute_neighbors = layered(_neigh_ops.compute_neighbors)
import tensorflow as tf from wtftf.meta import layered # factories from_row_splits = layered(tf.RaggedTensor.from_row_splits) from_nested_row_splits = layered(tf.RaggedTensor.from_nested_row_splits) from_value_rowids = layered(tf.RaggedTensor.from_value_rowids) from_nested_value_rowids = layered(tf.RaggedTensor.from_nested_value_rowids) from_row_lengths = layered(tf.RaggedTensor.from_row_lengths) from_nested_row_lengths = layered(tf.RaggedTensor.from_nested_row_lengths) from_uniform_row_length = layered(tf.RaggedTensor.from_uniform_row_length) from_row_limits = layered(tf.RaggedTensor.from_row_limits) from_row_starts = layered(tf.RaggedTensor.from_row_starts) from_sparse = layered(tf.RaggedTensor.from_sparse) from_tensor = layered(tf.RaggedTensor.from_tensor) if tf.version.VERSION < "2.4": # attrs values = layered(tf.RaggedTensor.values.fget) row_splits = layered(tf.RaggedTensor.row_splits.fget) flat_values = layered(tf.RaggedTensor.flat_values.fget) nested_row_splits = layered(tf.RaggedTensor.nested_row_splits.fget) # methods row_lengths = layered(tf.RaggedTensor.row_lengths) row_starts = layered(tf.RaggedTensor.row_starts) value_rowids = layered(tf.RaggedTensor.value_rowids) to_tensor = layered(tf.RaggedTensor.to_tensor) nrows = layered(tf.RaggedTensor.nrows)
import numpy as np import tensorflow as tf from wtftf.meta import layered def f_np(x, y): return np.sin(x) + y def f_graph(x, y): return tf.numpy_function(f_np, (x, y), tf.float64) f_layered = layered(f_graph) x = tf.keras.Input(()) y = tf.keras.Input(()) try: out = f_graph(x, y) no_wrapper_success = True print("Succeeds without wrapper") except NotImplementedError: no_wrapper_success = False # Cannot convert a symbolic Tensor (input_1:0) to a numpy array. print("Fails without wrapper") try: out = f_layered(x, y)
from wtftf.meta import layered from kblocks.ops import sparse as _sparse_ops block_diagonalize_sparse = layered(_sparse_ops.block_diagonalize_sparse) apply_offset = layered(_sparse_ops.apply_offset) block_diagonalize_sparse_general = layered(_sparse_ops.block_diagonalize_sparse_general) ragged_to_sparse_indices = layered(_sparse_ops.ragged_to_sparse_indices) unstack = layered(_sparse_ops.unstack) remove_dim = layered(_sparse_ops.remove_dim) remove_leading_dim = layered(_sparse_ops.remove_leading_dim)
from wtftf.meta import layered from ecn.ops import grid as _grid_ops ravel_multi_index = layered(_grid_ops.ravel_multi_index) unravel_index_transpose = layered(_grid_ops.unravel_index_transpose) base_grid_coords = layered(_grid_ops.base_grid_coords) output_shape = layered(_grid_ops.output_shape) grid_coords = layered(_grid_ops.grid_coords) shift_grid_coords = layered(_grid_ops.shift_grid_coords) sparse_neighborhood = layered(_grid_ops.sparse_neighborhood) sparse_neighborhood_in_place = layered(_grid_ops.sparse_neighborhood_in_place) sparse_neighborhood_from_mask = layered(_grid_ops.sparse_neighborhood_from_mask) sparse_neighborhood_from_mask_in_place = layered( _grid_ops.sparse_neighborhood_from_mask_in_place )
from wtftf.meta import layered from ecn.ops import lif as _lif_ops leaky_integrate_and_fire = layered(_lif_ops.leaky_integrate_and_fire) spatial_leaky_integrate_and_fire = layered(_lif_ops.spatial_leaky_integrate_and_fire)
from wtftf.meta import layered from ecn.ops import ragged as _ragged_ops row_sorted = layered(_ragged_ops.row_sorted) transpose_csr = layered(_ragged_ops.transpose_csr) gather_rows = layered(_ragged_ops.gather_rows)