mygrad.Tensor.constant#
- property Tensor.constant: bool#
If
True
, this tensor is a constant; it will not propagate any gradient.Additionally, any tensor that is a descendant of constant tensors will also be a constant.
Integer-valued tesnors, Python scalars and NumPy arrays are treated as constant tensors when included in MyGrad computational graphs.
- Returns:
- bool
Examples
Constant-tensors do not back-propagate gradients:
>>> import mygrad as mg >>> x = mg.Tensor([1., 2.], constant=True) >>> y = mg.Tensor([0., 3.], constant=False) >>> f = x * y >>> f.backward()
>>> x.grad is None # x has no gradient True >>> y.grad array([1., 2.])
A tensor that is derived solely from constant tensors is also a constant:
>>> import numpy as np >>> x = mg.Tensor([1., 2.], constant=True) >>> y = mg.Tensor([0., 3.], constant=True) >>> z = (x + y) ** 2 - np.array([8., 7.]) >>> z.constant True
Integer-valued tensors are treated as constants
>>> mg.Tensor([1, 2]).constant True