You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
---------------------------------------------------------------------------
MissingInputError Traceback (most recent call last)
Cell In [129], line 10
8 datai = data[index]
9 var = at.vector("var")
---> 10 scan = aesara.scan(
11 lambda v, *_: ((datai-v)**2).sum(),
12 sequences=var, #non_sequences=[index],
13 strict=True
14 )
15 print(scan[0].eval({var: np.array([1., 2.])}))
16 print(aesara.grad(scan[0].sum(), var).eval({var: [1, 1]}))
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/scan/basic.py:1140, in scan(fn, sequences, outputs_info, non_sequences, n_steps, truncate_gradient, go_backwards, mode, name, profile, allow_gc, strict, return_list)
1126 allow_gc = config.scan__allow_gc
1128 info = ScanInfo(
1129 n_seqs=n_seqs,
1130 mit_mot_in_slices=(),
(...)
1137 as_while=as_while,
1138 )
-> 1140 local_op = Scan(
1141 inner_inputs,
1142 new_outs,
1143 info,
1144 mode=mode,
1145 truncate_gradient=truncate_gradient,
1146 name=name,
1147 profile=profile,
1148 allow_gc=allow_gc,
1149 strict=strict,
1150 )
1152 ##
1153 # Step 8. Compute the outputs using the scan op
1154 ##
1155 _scan_inputs = (
1156 scan_seqs
1157 + mit_mot_scan_inputs
(...)
1163 + other_scan_args
1164 )
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/scan/op.py:859, in Scan.__init__(self, inputs, outputs, info, mode, typeConstructor, truncate_gradient, name, as_while, profile, allow_gc, strict)
856 self.n_outer_inputs = info.n_outer_inputs
857 self.n_outer_outputs = info.n_outer_outputs
--> 859 self.fgraph = FunctionGraph(inputs, outputs, clone=False)
861 _ = self.prepare_fgraph(self.fgraph)
863 if any(node.op.destroy_map for node in self.fgraph.apply_nodes):
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/graph/fg.py:153, in FunctionGraph.__init__(self, inputs, outputs, features, clone, update_mapping, **clone_kwds)
150 self.add_input(in_var, check=False)
152 for output in outputs:
--> 153 self.add_output(output, reason="init")
155 self.profile = None
156 self.update_mapping = update_mapping
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/graph/fg.py:163, in FunctionGraph.add_output(self, var, reason, import_missing)
161 """Add a new variable as an output to this `FunctionGraph`."""
162 self.outputs.append(var)
--> 163 self.import_var(var, reason=reason, import_missing=import_missing)
164 self.clients[var].append(("output", len(self.outputs) - 1))
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/graph/fg.py:304, in FunctionGraph.import_var(self, var, reason, import_missing)
302 # Imports the owners of the variables
303 if var.owner and var.owner not in self.apply_nodes:
--> 304 self.import_node(var.owner, reason=reason, import_missing=import_missing)
305 elif (
306 var.owner is None
307 and not isinstance(var, AtomicVariable)
308 and var not in self.inputs
309 ):
310 from aesara.graph.null_type import NullType
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/graph/fg.py:369, in FunctionGraph.import_node(self, apply_node, check, reason, import_missing)
360 else:
361 error_msg = (
362 f"Input {node.inputs.index(var)} ({var})"
363 " of the graph (indices start "
(...)
367 "for more information on this error."
368 )
--> 369 raise MissingInputError(error_msg, variable=var)
371 for node in new_nodes:
372 assert node not in self.apply_nodes
MissingInputError: Input 0 (RandomGeneratorSharedVariable(<Generator(PCG64) at 0x7FCBAFBA03C0>)) of the graph (indices start from 0), used to compute integers_rv{0, (0, 0), int64, False}(RandomGeneratorSharedVariable(<Generator(PCG64) at 0x7FCBAFBA03C0>), TensorConstant{(1,) of 10}, TensorConstant{4}, TensorConstant{0}, TensorConstant{64}), was not provided and not given a value. Use the Aesara flag exception_verbosity='high', for more information on this error.
Backtrace when that variable is created:
File "/home/mkochurov/micromamba/envs/bayes/lib/python3.9/site-packages/ipykernel/zmqshell.py", line 528, in run_cell
return super().run_cell(*args, **kwargs)
File "/home/mkochurov/micromamba/envs/bayes/lib/python3.9/site-packages/IPython/core/interactiveshell.py", line 2940, in run_cell
result = self._run_cell(
File "/home/mkochurov/micromamba/envs/bayes/lib/python3.9/site-packages/IPython/core/interactiveshell.py", line 2995, in _run_cell
return runner(coro)
File "/home/mkochurov/micromamba/envs/bayes/lib/python3.9/site-packages/IPython/core/async_helpers.py", line 129, in _pseudo_sync_runner
coro.send(None)
File "/home/mkochurov/micromamba/envs/bayes/lib/python3.9/site-packages/IPython/core/interactiveshell.py", line 3194, in run_cell_async
has_raised = await self.run_ast_nodes(code_ast.body, cell_name,
File "/home/mkochurov/micromamba/envs/bayes/lib/python3.9/site-packages/IPython/core/interactiveshell.py", line 3373, in run_ast_nodes
if await self.run_code(code, result, async_=asy):
File "/home/mkochurov/micromamba/envs/bayes/lib/python3.9/site-packages/IPython/core/interactiveshell.py", line 3433, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "/tmp/ipykernel_441370/4148489949.py", line 7, in <module>
index = srng.integers(64, size=10)
Scan silently passes and aesara.grad fails miserably later if strict=False
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In [130], line 16
10 scan = aesara.scan(
11 lambda v, *_: ((datai-v)**2).sum(),
12 sequences=var, #non_sequences=[index],
13 strict=False
14 )
15 print(scan[0].eval({var: np.array([1., 2.])}))
---> 16 print(aesara.grad(scan[0].sum(), var).eval({var: [1, 1]}))
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/gradient.py:623, in grad(cost, wrt, consider_constant, disconnected_inputs, add_names, known_grads, return_disconnected, null_gradients)
620 if hasattr(g.type, "dtype"):
621 assert g.type.dtype in aesara.tensor.type.float_dtypes
--> 623 _rval: Sequence[Variable] = _populate_grad_dict(
624 var_to_app_to_idx, grad_dict, _wrt, cost_name
625 )
627 rval: MutableSequence[Optional[Variable]] = list(_rval)
629 for i in range(len(_rval)):
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/gradient.py:1434, in _populate_grad_dict(var_to_app_to_idx, grad_dict, wrt, cost_name)
1431 # end if cache miss
1432 return grad_dict[var]
-> 1434 rval = [access_grad_cache(elem) for elem in wrt]
1436 return rval
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/gradient.py:1434, in <listcomp>(.0)
1431 # end if cache miss
1432 return grad_dict[var]
-> 1434 rval = [access_grad_cache(elem) for elem in wrt]
1436 return rval
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/gradient.py:1387, in _populate_grad_dict.<locals>.access_grad_cache(var)
1384 for node in node_to_idx:
1385 for idx in node_to_idx[node]:
-> 1387 term = access_term_cache(node)[idx]
1389 if not isinstance(term, Variable):
1390 raise TypeError(
1391 f"{node.op}.grad returned {type(term)}, expected"
1392 " Variable instance."
1393 )
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/gradient.py:1058, in _populate_grad_dict.<locals>.access_term_cache(node)
1054 if node not in term_dict:
1056 inputs = node.inputs
-> 1058 output_grads = [access_grad_cache(var) for var in node.outputs]
1060 # list of bools indicating if each output is connected to the cost
1061 outputs_connected = [
1062 not isinstance(g.type, DisconnectedType) for g in output_grads
1063 ]
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/gradient.py:1058, in <listcomp>(.0)
1054 if node not in term_dict:
1056 inputs = node.inputs
-> 1058 output_grads = [access_grad_cache(var) for var in node.outputs]
1060 # list of bools indicating if each output is connected to the cost
1061 outputs_connected = [
1062 not isinstance(g.type, DisconnectedType) for g in output_grads
1063 ]
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/gradient.py:1387, in _populate_grad_dict.<locals>.access_grad_cache(var)
1384 for node in node_to_idx:
1385 for idx in node_to_idx[node]:
-> 1387 term = access_term_cache(node)[idx]
1389 if not isinstance(term, Variable):
1390 raise TypeError(
1391 f"{node.op}.grad returned {type(term)}, expected"
1392 " Variable instance."
1393 )
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/gradient.py:1058, in _populate_grad_dict.<locals>.access_term_cache(node)
1054 if node not in term_dict:
1056 inputs = node.inputs
-> 1058 output_grads = [access_grad_cache(var) for var in node.outputs]
1060 # list of bools indicating if each output is connected to the cost
1061 outputs_connected = [
1062 not isinstance(g.type, DisconnectedType) for g in output_grads
1063 ]
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/gradient.py:1058, in <listcomp>(.0)
1054 if node not in term_dict:
1056 inputs = node.inputs
-> 1058 output_grads = [access_grad_cache(var) for var in node.outputs]
1060 # list of bools indicating if each output is connected to the cost
1061 outputs_connected = [
1062 not isinstance(g.type, DisconnectedType) for g in output_grads
1063 ]
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/gradient.py:1387, in _populate_grad_dict.<locals>.access_grad_cache(var)
1384 for node in node_to_idx:
1385 for idx in node_to_idx[node]:
-> 1387 term = access_term_cache(node)[idx]
1389 if not isinstance(term, Variable):
1390 raise TypeError(
1391 f"{node.op}.grad returned {type(term)}, expected"
1392 " Variable instance."
1393 )
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/gradient.py:1213, in _populate_grad_dict.<locals>.access_term_cache(node)
1205 if o_shape != g_shape:
1206 raise ValueError(
1207 "Got a gradient of shape "
1208 + str(o_shape)
1209 + " on an output of shape "
1210 + str(g_shape)
1211 )
-> 1213 input_grads = node.op.L_op(inputs, node.outputs, new_output_grads)
1215 if input_grads is None:
1216 raise TypeError(
1217 f"{node.op}.grad returned NoneType, expected iterable."
1218 )
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/scan/op.py:2613, in Scan.L_op(self, inputs, outs, dC_douts)
2611 for dx in range(len(dC_dinps_t)):
2612 if not dC_dinps_t[dx]:
-> 2613 dC_dinps_t[dx] = at.zeros_like(diff_inputs[dx])
2614 else:
2615 disconnected_dC_dinps_t[dx] = False
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/tensor/basic.py:798, in zeros_like(model, dtype, opt)
782 def zeros_like(model, dtype=None, opt=False):
783 """equivalent of numpy.zeros_like
784 Parameters
785 ----------
(...)
795 tensor the shape of model containing zeros of the type of dtype.
796 """
--> 798 _model = as_tensor_variable(model)
800 if dtype is None:
801 dtype = _model.type.dtype
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/tensor/__init__.py:49, in as_tensor_variable(x, name, ndim, **kwargs)
17 def as_tensor_variable(
18 x: TensorLike, name: Optional[str] = None, ndim: Optional[int] = None, **kwargs
19 ) -> "TensorVariable":
20 """Convert `x` into an equivalent `TensorVariable`.
21
22 This function can be used to turn ndarrays, numbers, `ScalarType` instances,
(...)
47
48 """
---> 49 return _as_tensor_variable(x, name, ndim, **kwargs)
File ~/micromamba/envs/bayes/lib/python3.9/functools.py:888, in singledispatch.<locals>.wrapper(*args, **kw)
884 if not args:
885 raise TypeError(f'{funcname} requires at least '
886 '1 positional argument')
--> 888 return dispatch(args[0].__class__)(*args, **kw)
File ~/micromamba/envs/bayes/lib/python3.9/site-packages/aesara/tensor/basic.py:100, in _as_tensor_Variable(x, name, ndim, **kwargs)
97 @_as_tensor_variable.register(Variable)
98 def _as_tensor_Variable(x, name, ndim, **kwargs):
99 if not isinstance(x.type, TensorType):
--> 100 raise TypeError(
101 f"Tensor type field must be a TensorType; found {type(x.type)}."
102 )
104 if ndim is None:
105 return x
TypeError: Tensor type field must be a TensorType; found <class 'aesara.tensor.random.type.RandomGeneratorType'>.
**Please provide any additional information below.**
Versions and main components
Aesara version: '2.8.7'
Python version: '3.9.13 | packaged by conda-forge | (main, May 27 2022, 16:58:50) [GCC 10.3.0]'
Operating system: Ubuntu
How did you install Aesara: (conda/pip) conda
pytensor config:
floatX ({'float64', 'float16', 'float32'})
Doc: Default floating-point precision for python casts.
Note: float16 support is experimental, use at your own risk.
Value: float64
warn_float64 ({'ignore', 'pdb', 'warn', 'raise'})
Doc: Do an action when a tensor variable with float64 dtype is created.
Value: ignore
pickle_test_value (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcc2c19ac10>>)
Doc: Dump test values while pickling model. If True, test values will be dumped with model.
Value: True
cast_policy ({'custom', 'numpy+floatX'})
Doc: Rules for implicit type casting
Value: custom
deterministic ({'more', 'default'})
Doc: If `more`, sometimes we will select some implementation that are more deterministic, but slower. Also see the dnn.conv.algo* flags to cover more cases.
Value: default
device (cpu)
Doc: Default device for computations. only cpu is supported for now
Value: cpu
force_device (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcc2c19a610>>)
Doc: Raise an error if we can't use the specified device
Value: False
conv__assert_shape (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcc2c19a5b0>>)
Doc: If True, AbstractConv* ops will verify that user-provided shapes match the runtime shapes (debugging option, may slow down compilation)
Value: False
print_global_stats (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5baa670>>)
Doc: Print some global statistics (time spent) at the end
Value: False
assert_no_cpu_op ({'ignore', 'pdb', 'warn', 'raise'})
Doc: Raise an error/warning if there is a CPU op in the computational graph.
Value: ignore
unpickle_function (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5baa850>>)
Doc: Replace unpickled Aesara functions with None. This is useful to unpickle old graphs that pickled them when it shouldn't
Value: True
<aesara.configparser.ConfigParam object at 0x7fcbc5baa8b0>
Doc: Default compilation mode
Value: Mode
cxx (<class 'str'>)
Doc: The C++ compiler to use. Currently only g++ is supported, but supporting additional compilers should not be too difficult. If it is empty, no C++ code is compiled.
Value: /usr/bin/g++
linker ({'vm_nogc', 'c|py_nogc', 'c', 'py', 'c|py', 'vm', 'cvm_nogc', 'cvm'})
Doc: Default linker used if the aesara flags mode is Mode
Value: cvm
allow_gc (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5baaa30>>)
Doc: Do we default to delete intermediate results during Aesara function calls? Doing so lowers the memory requirement, but asks that we reallocate memory at the next function call. This is implemented for the default linker, but may not work for all linkers.
Value: True
optimizer ({'o2', 'o1', 'o3', 'None', 'fast_compile', 'o4', 'fast_run', 'unsafe', 'merge'})
Doc: Default optimizer. If not None, will use this optimizer with the Mode
Value: o4
optimizer_verbose (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b41550>>)
Doc: If True, we print all optimization being applied
Value: False
on_opt_error ({'ignore', 'pdb', 'warn', 'raise'})
Doc: What to do when an optimization crashes: warn and skip it, raise the exception, or fall into the pdb debugger.
Value: warn
nocleanup (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b415b0>>)
Doc: Suppress the deletion of code files that did not compile cleanly
Value: False
on_unused_input ({'ignore', 'warn', 'raise'})
Doc: What to do if a variable in the 'inputs' list of aesara.function() is not used in the graph.
Value: raise
gcc__cxxflags (<class 'str'>)
Doc: Extra compiler flags for gcc
Value: -Wno-c++11-narrowing -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables
cmodule__warn_no_version (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b41640>>)
Doc: If True, will print a warning when compiling one or more Op with C code that can't be cached because there is no c_code_cache_version() function associated to at least one of those Ops.
Value: False
cmodule__remove_gxx_opt (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b41400>>)
Doc: If True, will remove the -O* parameter passed to g++.This is useful to debug in gdb modules compiled by Aesara.The parameter -g is passed by default to g++
Value: False
cmodule__compilation_warning (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b41670>>)
Doc: If True, will print compilation warnings.
Value: False
cmodule__preload_cache (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b416a0>>)
Doc: If set to True, will preload the C module cache at import time
Value: False
cmodule__age_thresh_use (<class 'int'>)
Doc: In seconds. The time after which Aesara won't reuse a compile c module.
Value: 2073600
cmodule__debug (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b41700>>)
Doc: If True, define a DEBUG macro (if not exists) for any compiled C code.
Value: False
compile__wait (<class 'int'>)
Doc: Time to wait before retrying to acquire the compile lock.
Value: 5
compile__timeout (<class 'int'>)
Doc: In seconds, time that a process will wait before deciding to
override an existing lock. An override only happens when the existing
lock is held by the same owner *and* has not been 'refreshed' by this
owner for more than this period. Refreshes are done every half timeout
period for running processes.
Value: 120
ctc__root (<class 'str'>)
Doc: Directory which contains the root of Baidu CTC library. It is assumed that the compiled library is either inside the build, lib or lib64 subdirectory, and the header inside the include directory.
Value:
tensor__cmp_sloppy (<class 'int'>)
Doc: Relax aesara.tensor.math._allclose (0) not at all, (1) a bit, (2) more
Value: 0
tensor__local_elemwise_fusion (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b418b0>>)
Doc: Enable or not in fast_run mode(fast_run optimization) the elemwise fusion optimization
Value: True
lib__amblibm (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b41940>>)
Doc: Use amd's amdlibm numerical library
Value: False
tensor__insert_inplace_optimizer_validate_nb (<class 'int'>)
Doc: -1: auto, if graph have less then 500 nodes 1, else 10
Value: -1
traceback__limit (<class 'int'>)
Doc: The number of stack to trace. -1 mean all.
Value: 8
traceback__compile_limit (<class 'int'>)
Doc: The number of stack to trace to keep during compilation. -1 mean all. If greater then 0, will also make us save Aesara internal stack trace.
Value: 0
experimental__local_alloc_elemwise (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b41ac0>>)
Doc: DEPRECATED: If True, enable the experimental optimization local_alloc_elemwise. Generates error if not True. Use optimizer_excluding=local_alloc_elemwise to disable.
Value: True
experimental__local_alloc_elemwise_assert (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b41af0>>)
Doc: When the local_alloc_elemwise is applied, add an assert to highlight shape errors.
Value: True
warn__ignore_bug_before ({'0.8.2', '0.10', 'all', '0.5', '0.7', '1.0.3', '1.0.5', 'None', '0.8', '1.0.2', '0.3', '1.0', '0.4', '0.6', '0.9', '0.4.1', '1.0.1', '0.8.1', '1.0.4'})
Doc: If 'None', we warn about all Aesara bugs found by default. If 'all', we don't warn about Aesara bugs found by default. If a version, we print only the warnings relative to Aesara bugs found after that version. Warning for specific bugs can be configured with specific [warn] flags.
Value: 0.9
exception_verbosity ({'high', 'low'})
Doc: If 'low', the text of exceptions will generally refer to apply nodes with short names such as Elemwise{add_no_inplace}. If 'high', some exceptions will also refer to apply nodes with long descriptions like:
A. Elemwise{add_no_inplace}
B. log_likelihood_v_given_h
C. log_likelihood_h
Value: low
print_test_value (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b41c40>>)
Doc: If 'True', the __eval__ of an Aesara variable will return its test_value when this is available. This has the practical conseguence that, e.g., in debugging `my_var` will print the same as `my_var.tag.test_value` when a test value is defined.
Value: False
compute_test_value ({'raise', 'ignore', 'pdb', 'warn', 'off'})
Doc: If 'True', Aesara will run each op at graph build time, using Constants, SharedVariables and the tag 'test_value' as inputs to the function. This helps the user track down problems in the graph before it gets optimized.
Value: off
compute_test_value_opt ({'raise', 'ignore', 'pdb', 'warn', 'off'})
Doc: For debugging Aesara optimization only. Same as compute_test_value, but is used during Aesara optimization
Value: off
check_input (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b41cd0>>)
Doc: Specify if types should check their input in their C code. It can be used to speed up compilation, reduce overhead (particularly for scalars) and reduce the number of generated C files.
Value: True
NanGuardMode__nan_is_error (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b41d00>>)
Doc: Default value for nan_is_error
Value: True
NanGuardMode__inf_is_error (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b41d30>>)
Doc: Default value for inf_is_error
Value: True
NanGuardMode__big_is_error (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b41dc0>>)
Doc: Default value for big_is_error
Value: True
NanGuardMode__action ({'pdb', 'warn', 'raise'})
Doc: What NanGuardMode does when it finds a problem
Value: raise
DebugMode__patience (<class 'int'>)
Doc: Optimize graph this many times to detect inconsistency
Value: 10
DebugMode__check_c (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b41e50>>)
Doc: Run C implementations where possible
Value: True
DebugMode__check_py (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b41ee0>>)
Doc: Run Python implementations where possible
Value: True
DebugMode__check_finite (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b41f10>>)
Doc: True -> complain about NaN/Inf results
Value: True
DebugMode__check_strides (<class 'int'>)
Doc: Check that Python- and C-produced ndarrays have same strides. On difference: (0) - ignore, (1) warn, or (2) raise error
Value: 0
DebugMode__warn_input_not_reused (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b41f70>>)
Doc: Generate a warning when destroy_map or view_map says that an op works inplace, but the op did not reuse the input for its output.
Value: True
DebugMode__check_preallocated_output (<class 'str'>)
Doc: Test thunks with pre-allocated memory as output storage. This is a list of strings separated by ":". Valid values are: "initial" (initial storage in storage map, happens with Scan),"previous" (previously-returned memory), "c_contiguous", "f_contiguous", "strided" (positive and negative strides), "wrong_size" (larger and smaller dimensions), and "ALL" (all of the above).
Value:
DebugMode__check_preallocated_output_ndim (<class 'int'>)
Doc: When testing with "strided" preallocated output memory, test all combinations of strides over that number of (inner-most) dimensions. You may want to reduce that number to reduce memory or time usage, but it is advised to keep a minimum of 2.
Value: 4
profiling__time_thunks (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b41e80>>)
Doc: Time individual thunks when profiling
Value: True
profiling__n_apply (<class 'int'>)
Doc: Number of Apply instances to print by default
Value: 20
profiling__n_ops (<class 'int'>)
Doc: Number of Ops to print by default
Value: 20
profiling__output_line_width (<class 'int'>)
Doc: Max line width for the profiling output
Value: 512
profiling__min_memory_size (<class 'int'>)
Doc: For the memory profile, do not print Apply nodes if the size
of their outputs (in bytes) is lower than this threshold
Value: 1024
profiling__min_peak_memory (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b52190>>)
Doc: The min peak memory usage of the order
Value: False
profiling__destination (<class 'str'>)
Doc: File destination of the profiling output
Value: stderr
profiling__debugprint (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b521f0>>)
Doc: Do a debugprint of the profiled functions
Value: False
profiling__ignore_first_call (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b52220>>)
Doc: Do we ignore the first call of an Aesara function.
Value: False
on_shape_error ({'warn', 'raise'})
Doc: warn: print a warning and use the default value. raise: raise an error
Value: warn
openmp (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b52280>>)
Doc: Allow (or not) parallel computation on the CPU with OpenMP. This is the default value used when creating an Op that supports OpenMP parallelization. It is preferable to define it via the Aesara configuration file ~/.aesararc or with the environment variable AESARA_FLAGS. Parallelization is only done for some operations that implement it, and even for operations that implement parallelism, each operation is free to respect this flag or not. You can control the number of threads used with the environment variable OMP_NUM_THREADS. If it is set to 1, we disable openmp in Aesara by default.
Value: False
openmp_elemwise_minsize (<class 'int'>)
Doc: If OpenMP is enabled, this is the minimum size of vectors for which the openmp parallelization is enabled in element wise ops.
Value: 200000
optimizer_excluding (<class 'str'>)
Doc: When using the default mode, we will remove optimizer with these tags. Separate tags with ':'.
Value:
optimizer_including (<class 'str'>)
Doc: When using the default mode, we will add optimizer with these tags. Separate tags with ':'.
Value:
optimizer_requiring (<class 'str'>)
Doc: When using the default mode, we will require optimizer with these tags. Separate tags with ':'.
Value:
optdb__position_cutoff (<class 'float'>)
Doc: Where to stop eariler during optimization. It represent the position of the optimizer where to stop.
Value: inf
optdb__max_use_ratio (<class 'float'>)
Doc: A ratio that prevent infinite loop in EquilibriumGraphRewriter.
Value: 8.0
cycle_detection ({'fast', 'regular'})
Doc: If cycle_detection is set to regular, most inplaces are allowed,but it is slower. If cycle_detection is set to faster, less inplacesare allowed, but it makes the compilation faster.The interaction of which one give the lower peak memory usage iscomplicated and not predictable, so if you are close to the peakmemory usage, triyng both could give you a small gain.
Value: regular
check_stack_trace ({'log', 'off', 'warn', 'raise'})
Doc: A flag for checking the stack trace during the optimization process. default (off): does not check the stack trace of any optimization log: inserts a dummy stack trace that identifies the optimizationthat inserted the variable that had an empty stack trace.warn: prints a warning if a stack trace is missing and also a dummystack trace is inserted that indicates which optimization insertedthe variable that had an empty stack trace.raise: raises an exception if a stack trace is missing
Value: off
metaopt__verbose (<class 'int'>)
Doc: 0 for silent, 1 for only warnings, 2 for full output withtimings and selected implementation
Value: 0
metaopt__optimizer_excluding (<class 'str'>)
Doc: exclude optimizers with these tags. Separate tags with ':'.
Value:
metaopt__optimizer_including (<class 'str'>)
Doc: include optimizers with these tags. Separate tags with ':'.
Value:
profile (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b52580>>)
Doc: If VM should collect profile information
Value: False
profile_optimizer (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b525b0>>)
Doc: If VM should collect optimizer profile information
Value: False
profile_memory (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b525e0>>)
Doc: If VM should collect memory profile information and print it
Value: False
<aesara.configparser.ConfigParam object at 0x7fcbc5b52610>
Doc: Useful only for the VM Linkers. When lazy is None, auto detect if lazy evaluation is needed and use the appropriate version. If the C loop isn't being used and lazy is True, use the Stack VM; otherwise, use the Loop VM.
Value: None
unittests__rseed (<class 'str'>)
Doc: Seed to use for randomized unit tests. Special value 'random' means using a seed of None.
Value: 666
warn__round (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b526d0>>)
Doc: Warn when using `tensor.round` with the default mode. Round changed its default from `half_away_from_zero` to `half_to_even` to have the same default as NumPy.
Value: False
numba__vectorize_target ({'cuda', 'parallel', 'cpu'})
Doc: Default target for numba.vectorize.
Value: cpu
numba__fastmath (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b52790>>)
Doc: If True, use Numba's fastmath mode.
Value: True
numba__cache (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbc5b52820>>)
Doc: If True, use Numba's file based caching.
Value: True
compiledir_format (<class 'str'>)
Doc: Format string for platform-dependent compiled module subdirectory
(relative to base_compiledir). Available keys: aesara_version, device,
gxx_version, hostname, numpy_version, platform, processor,
python_bitwidth, python_int_bitwidth, python_version, short_platform.
Defaults to compiledir_%(short_platform)s-%(processor)s-%(python_versi
on)s-%(python_bitwidth)s.
Value: compiledir_%(short_platform)s-%(processor)s-%(python_version)s-%(python_bitwidth)s
<aesara.configparser.ConfigParam object at 0x7fcbc5b528e0>
Doc: platform-independent root directory for compiled modules
Value: /home/mkochurov/.aesara
<aesara.configparser.ConfigParam object at 0x7fcbc5b527f0>
Doc: platform-dependent cache directory for compiled modules
Value: /home/mkochurov/.aesara/compiledir_Linux-5.4--generic-x86_64-with-glibc2.31-x86_64-3.9.13-64
blas__ldflags (<class 'str'>)
Doc: lib[s] to include for [Fortran] level-3 blas implementation
Value: -L/home/mkochurov/micromamba/envs/bayes/lib -lmkl_core -lmkl_intel_thread -lmkl_rt -Wl,-rpath,/home/mkochurov/micromamba/envs/bayes/lib
blas__check_openmp (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcc05b91640>>)
Doc: Check for openmp library conflict.
WARNING: Setting this to False leaves you open to wrong results in blas-related operations.
Value: True
scan__allow_gc (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcbba30df10>>)
Doc: Allow/disallow gc inside of Scan (default: False)
Value: False
scan__allow_output_prealloc (<bound method BoolParam._apply of <aesara.configparser.BoolParam object at 0x7fcc3034d1c0>>)
Doc: Allow/disallow memory preallocation for outputs inside of scan (default: True)
Value: True
The text was updated successfully, but these errors were encountered:
Scan and OpFromGraph are a bit too eager in how they handle SharedVariables, even if they wouldn't necessarily be needed as inputs of the inner graph. For Scan at least, this is a bit related to the whole updates machinery, so that RandomVariables update across iterations without users saying so manually...
Works:
Raises an uninformative or fairly informative error
Scan silently passes and aesara.grad fails miserably later if strict=False
Versions and main components
pytensor config:
The text was updated successfully, but these errors were encountered: