@@ -554,6 +554,7 @@ def __init__(
554
554
555
555
if self .parent is not None :
556
556
self .named_vars = treedict (parent = self .parent .named_vars )
557
+ self .named_vars_to_dims = treedict (parent = self .parent .named_vars_to_dims )
557
558
self .values_to_rvs = treedict (parent = self .parent .values_to_rvs )
558
559
self .rvs_to_values = treedict (parent = self .parent .rvs_to_values )
559
560
self .rvs_to_transforms = treedict (parent = self .parent .rvs_to_transforms )
@@ -564,10 +565,10 @@ def __init__(
564
565
self .deterministics = treelist (parent = self .parent .deterministics )
565
566
self .potentials = treelist (parent = self .parent .potentials )
566
567
self ._coords = self .parent ._coords
567
- self ._RV_dims = treedict (parent = self .parent ._RV_dims )
568
568
self ._dim_lengths = self .parent ._dim_lengths
569
569
else :
570
570
self .named_vars = treedict ()
571
+ self .named_vars_to_dims = treedict ()
571
572
self .values_to_rvs = treedict ()
572
573
self .rvs_to_values = treedict ()
573
574
self .rvs_to_transforms = treedict ()
@@ -578,7 +579,6 @@ def __init__(
578
579
self .deterministics = treelist ()
579
580
self .potentials = treelist ()
580
581
self ._coords = {}
581
- self ._RV_dims = treedict ()
582
582
self ._dim_lengths = {}
583
583
self .add_coords (coords )
584
584
@@ -972,7 +972,11 @@ def RV_dims(self) -> Dict[str, Tuple[Union[str, None], ...]]:
972
972
973
973
Entries in the tuples may be ``None``, if the RV dimension was not given a name.
974
974
"""
975
- return self ._RV_dims
975
+ warnings .warn (
976
+ "Model.RV_dims is deprecated. User Model.named_vars_to_dims instead." ,
977
+ FutureWarning ,
978
+ )
979
+ return self .named_vars_to_dims
976
980
977
981
@property
978
982
def coords (self ) -> Dict [str , Union [Tuple , None ]]:
@@ -1167,7 +1171,7 @@ def set_data(
1167
1171
if isinstance (values , list ):
1168
1172
values = np .array (values )
1169
1173
values = convert_observed_data (values )
1170
- dims = self .RV_dims .get (name , None ) or ()
1174
+ dims = self .named_vars_to_dims .get (name , None ) or ()
1171
1175
coords = coords or {}
1172
1176
1173
1177
if values .ndim != shared_object .ndim :
@@ -1297,7 +1301,7 @@ def register_rv(
1297
1301
if observed is None :
1298
1302
self .free_RVs .append (rv_var )
1299
1303
self .create_value_var (rv_var , transform )
1300
- self .add_random_variable (rv_var , dims )
1304
+ self .add_named_variable (rv_var , dims )
1301
1305
self .set_initval (rv_var , initval )
1302
1306
else :
1303
1307
if (
@@ -1424,7 +1428,7 @@ def make_obs_var(
1424
1428
observed_rv_var .tag .observations = nonmissing_data
1425
1429
1426
1430
self .create_value_var (observed_rv_var , transform = None , value_var = nonmissing_data )
1427
- self .add_random_variable (observed_rv_var )
1431
+ self .add_named_variable (observed_rv_var )
1428
1432
self .observed_RVs .append (observed_rv_var )
1429
1433
1430
1434
# Create deterministic that combines observed and missing
@@ -1440,7 +1444,7 @@ def make_obs_var(
1440
1444
data = at .as_tensor_variable (data , name = name )
1441
1445
rv_var .tag .observations = data
1442
1446
self .create_value_var (rv_var , transform = None , value_var = data )
1443
- self .add_random_variable (rv_var , dims )
1447
+ self .add_named_variable (rv_var , dims )
1444
1448
self .observed_RVs .append (rv_var )
1445
1449
1446
1450
return rv_var
@@ -1486,8 +1490,12 @@ def create_value_var(
1486
1490
1487
1491
return value_var
1488
1492
1489
- def add_random_variable (self , var , dims : Optional [Tuple [Union [str , None ], ...]] = None ):
1490
- """Add a random variable to the named variables of the model."""
1493
+ def add_named_variable (self , var , dims : Optional [Tuple [Union [str , None ], ...]] = None ):
1494
+ """Add a random graph variable to the named variables of the model.
1495
+
1496
+ This can include several types of variables such basic_RVs, Data, Deterministics,
1497
+ and Potentials.
1498
+ """
1491
1499
if self .named_vars .tree_contains (var .name ):
1492
1500
raise ValueError (f"Variable name { var .name } already exists." )
1493
1501
@@ -1499,7 +1507,7 @@ def add_random_variable(self, var, dims: Optional[Tuple[Union[str, None], ...]]
1499
1507
raise ValueError (f"Dimension { dim } is not specified in `coords`." )
1500
1508
if any (var .name == dim for dim in dims ):
1501
1509
raise ValueError (f"Variable `{ var .name } ` has the same name as its dimension label." )
1502
- self ._RV_dims [var .name ] = dims
1510
+ self .named_vars_to_dims [var .name ] = dims
1503
1511
1504
1512
self .named_vars [var .name ] = var
1505
1513
if not hasattr (self , self .name_of (var .name )):
@@ -1967,7 +1975,7 @@ def Deterministic(name, var, model=None, dims=None, auto=False):
1967
1975
model .auto_deterministics .append (var )
1968
1976
else :
1969
1977
model .deterministics .append (var )
1970
- model .add_random_variable (var , dims )
1978
+ model .add_named_variable (var , dims )
1971
1979
1972
1980
from pymc .printing import str_for_potential_or_deterministic
1973
1981
@@ -1999,7 +2007,7 @@ def Potential(name, var, model=None):
1999
2007
model = modelcontext (model )
2000
2008
var .name = model .name_for (name )
2001
2009
model .potentials .append (var )
2002
- model .add_random_variable (var )
2010
+ model .add_named_variable (var )
2003
2011
2004
2012
from pymc .printing import str_for_potential_or_deterministic
2005
2013
0 commit comments