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
func
is anndarray
with 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.DType
ordtype
desired dtype of function output
Raises: - :class:`~nengo:nengo.exceptions.SimulationError`
If the function returns
None
or 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.Print
is 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.DType
ordtype
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
target
type if necessary
- dtype :
-
nengo_dl.utils.
find_non_differentiable
(inputs, outputs)[source]¶ Searches through a TensorFlow graph to find non-differentiable elements between
inputs
andoutputs
(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_sized
subsets frominputs
andtargets
.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_dl
by setting them as parameters on the top-level Network config.The settings are passed as keyword arguments to
configure_settings
; e.g., to settrainable
useconfigure_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`()
. PassingNone
will use the defaultnengo_dl
trainable 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.