Miscellaneous utilities¶
-
nengo_dl.utils.sanitize_name(name)[source]¶ Remove illegal TensorFlow name characters from string.
Valid Tensorflow name characters are
[A-Za-z0-9_.\-/]Parameters: - name : str
name to be sanitized
Returns: - str
sanitized name
-
nengo_dl.utils.function_name(func, sanitize=True)[source]¶ Get the name of the callable object
func.Parameters: - func : callable
callable object (e.g., function, callable class)
- sanitize : bool, optional
if True, remove any illegal TensorFlow name characters from name
Returns: - str
(sanitized) name of
func
-
nengo_dl.utils.align_func(output_shape, output_dtype)[source]¶ Decorator that ensures the output of
funcis anndarraywith the given shape and dtype.Parameters: - output_shape : tuple of int
desired shape for function output (must have the same size as actual function output)
- output_dtype :
tf.DTypeordtype desired dtype of function output
Raises: - :class:`~nengo:nengo.exceptions.SimulationError`
If the function returns
Noneor a non-finite value.
-
nengo_dl.utils.print_op(input, message)[source]¶ Inserts a print statement into the TensorFlow graph.
Parameters: - input :
tf.Tensor the value of this tensor will be printed whenever it is computed in the graph
- message : str
string prepended to the value of
input, to help with logging
Returns: - ``tf.Tensor``
new tensor representing the print operation applied to
input
Notes
This is what
tf.Printis supposed to do, but it doesn’t seem to work consistently.- input :
-
nengo_dl.utils.cast_dtype(dtype, target)[source]¶ Changes float dtypes to the target dtype, leaves others unchanged.
Used to map all float values to a target precision. Also casts numpy dtypes to TensorFlow dtypes.
Parameters: - dtype :
tf.DTypeordtype input dtype to be converted
- target :
tf.DType floating point dtype to which all floating types should be converted
Returns: - ``tf.DType``
input dtype, converted to
targettype if necessary
- dtype :
-
nengo_dl.utils.find_non_differentiable(inputs, outputs)[source]¶ Searches through a TensorFlow graph to find non-differentiable elements between
inputsandoutputs(elements that would prevent us from computingd_outputs / d_inputs.Parameters: - inputs : list of
tf.Tensor input tensors
- outputs : list of
tf.Tensor output tensors
- inputs : list of
-
class
nengo_dl.utils.ProgressBar(max_steps, label=None)[source]¶ Displays a progress bar and ETA for tracked steps.
Parameters: - max_steps : int
number of steps required to complete the tracked process
- label : str, optional
a description of what is being tracked
-
nengo_dl.utils.minibatch_generator(inputs, targets, minibatch_size, shuffle=True, rng=None)[source]¶ Generator to yield
minibatch_sizedsubsets frominputsandtargets.Parameters: - inputs : dict of {
Node:ndarray} input values for Nodes in the network
- targets : dict of {
Probe:ndarray} desired output value at Probes, corresponding to each value in
inputs- minibatch_size : int
the number of items in each minibatch
- shuffle : bool, optional
if True, the division of items into minibatches will be randomized each time the generator is created
- rng :
RandomState, optional random number generator
Yields: - inputs : dict of {
-
nengo_dl.utils.configure_settings(**kwargs)[source]¶ Pass settings to
nengo_dlby setting them as parameters on the top-level Network config.The settings are passed as keyword arguments to
configure_settings; e.g., to settrainableuseconfigure_settings(trainable=True).Parameters: - trainable : bool or None
Adds a parameter to Nengo Ensembles/Connections/Networks that controls whether or not they will be optimized by
Simulator.train(). PassingNonewill use the defaultnengo_dltrainable settings, or True/False will override the default for all objects. In either case trainability can be further configured on a per-object basis (e.g.net.config[my_ensemble].trainable = True. See the documentation for more details.- planner : graph planning algorithm
Pass one of the graph planners to change the default planner.