Join us at TensorFlow World, Oct 28-31. Use code TF20 for 20% off select passes. Register now

tfp.layers.util.deserialize_function

Deserializes the Keras-serialized function.

tfp.layers.util.deserialize_function(
    serial,
    function_type
)

Defined in python/layers/util.py.

(De)serializing Python functions from/to bytecode is unsafe. Therefore we also use the function's type as an anonymous function ('lambda') or named function in the Python environment ('function'). In the latter case, this lets us use the Python scope to obtain the function rather than reload it from bytecode. (Note that both cases are brittle!)

Keras-deserialized functions do not perform lexical scoping. Any modules that the function requires must be imported within the function itself.

This serialization mimicks the implementation in tf.keras.layers.Lambda.

Args:

  • serial: Serialized Keras object: typically a dict, string, or bytecode.
  • function_type: Python string denoting 'function' or 'lambda'.

Returns:

  • function: Function the serialized Keras object represents.

Examples

serial, function_type = serialize_function(lambda x: x)
function = deserialize_function(serial, function_type)
assert function(2.3) == 2.3  # function is identity