@@ -688,13 +688,6 @@ def compile_d2logp(
688
688
"""
689
689
return self .model .compile_fn (self .d2logp (vars = vars , jacobian = jacobian ))
690
690
691
- def logpt (self , * args , ** kwargs ):
692
- warnings .warn (
693
- "Model.logpt has been deprecated. Use Model.logp instead." ,
694
- FutureWarning ,
695
- )
696
- return self .logp (* args , ** kwargs )
697
-
698
691
def logp (
699
692
self ,
700
693
vars : Optional [Union [Variable , Sequence [Variable ]]] = None ,
@@ -769,13 +762,6 @@ def logp(
769
762
logp_scalar .name = logp_scalar_name
770
763
return logp_scalar
771
764
772
- def dlogpt (self , * args , ** kwargs ):
773
- warnings .warn (
774
- "Model.dlogpt has been deprecated. Use Model.dlogp instead." ,
775
- FutureWarning ,
776
- )
777
- return self .dlogp (* args , ** kwargs )
778
-
779
765
def dlogp (
780
766
self ,
781
767
vars : Optional [Union [Variable , Sequence [Variable ]]] = None ,
@@ -814,13 +800,6 @@ def dlogp(
814
800
cost = self .logp (jacobian = jacobian )
815
801
return gradient (cost , value_vars )
816
802
817
- def d2logpt (self , * args , ** kwargs ):
818
- warnings .warn (
819
- "Model.d2logpt has been deprecated. Use Model.d2logp instead." ,
820
- FutureWarning ,
821
- )
822
- return self .d2logp (* args , ** kwargs )
823
-
824
803
def d2logp (
825
804
self ,
826
805
vars : Optional [Union [Variable , Sequence [Variable ]]] = None ,
@@ -859,69 +838,29 @@ def d2logp(
859
838
cost = self .logp (jacobian = jacobian )
860
839
return hessian (cost , value_vars )
861
840
862
- @property
863
- def datalogpt (self ):
864
- warnings .warn (
865
- "Model.datalogpt has been deprecated. Use Model.datalogp instead." ,
866
- FutureWarning ,
867
- )
868
- return self .datalogp
869
-
870
841
@property
871
842
def datalogp (self ) -> Variable :
872
843
"""Aesara scalar of log-probability of the observed variables and
873
844
potential terms"""
874
845
return self .observedlogp + self .potentiallogp
875
846
876
- @property
877
- def varlogpt (self ):
878
- warnings .warn (
879
- "Model.varlogpt has been deprecated. Use Model.varlogp instead." ,
880
- FutureWarning ,
881
- )
882
- return self .varlogp
883
-
884
847
@property
885
848
def varlogp (self ) -> Variable :
886
849
"""Aesara scalar of log-probability of the unobserved random variables
887
850
(excluding deterministic)."""
888
851
return self .logp (vars = self .free_RVs )
889
852
890
- @property
891
- def varlogp_nojact (self ):
892
- warnings .warn (
893
- "Model.varlogp_nojact has been deprecated. Use Model.varlogp_nojac instead." ,
894
- FutureWarning ,
895
- )
896
- return self .varlogp_nojac
897
-
898
853
@property
899
854
def varlogp_nojac (self ) -> Variable :
900
855
"""Aesara scalar of log-probability of the unobserved random variables
901
856
(excluding deterministic) without jacobian term."""
902
857
return self .logp (vars = self .free_RVs , jacobian = False )
903
858
904
- @property
905
- def observedlogpt (self ):
906
- warnings .warn (
907
- "Model.observedlogpt has been deprecated. Use Model.observedlogp instead." ,
908
- FutureWarning ,
909
- )
910
- return self .observedlogp
911
-
912
859
@property
913
860
def observedlogp (self ) -> Variable :
914
861
"""Aesara scalar of log-probability of the observed variables"""
915
862
return self .logp (vars = self .observed_RVs )
916
863
917
- @property
918
- def potentiallogpt (self ):
919
- warnings .warn (
920
- "Model.potentiallogpt has been deprecated. Use Model.potentiallogp instead." ,
921
- FutureWarning ,
922
- )
923
- return self .potentiallogp
924
-
925
864
@property
926
865
def potentiallogp (self ) -> Variable :
927
866
"""Aesara scalar of log-probability of the Potential terms"""
@@ -933,14 +872,6 @@ def potentiallogp(self) -> Variable:
933
872
else :
934
873
return at .constant (0.0 )
935
874
936
- @property
937
- def vars (self ):
938
- warnings .warn (
939
- "Model.vars has been deprecated. Use Model.value_vars instead." ,
940
- FutureWarning ,
941
- )
942
- return self .value_vars
943
-
944
875
@property
945
876
def value_vars (self ):
946
877
"""List of unobserved random variables used as inputs to the model's
@@ -1013,6 +944,17 @@ def basic_RVs(self):
1013
944
"""
1014
945
return self .free_RVs + self .observed_RVs
1015
946
947
+ @property
948
+ def unobserved_RVs (self ):
949
+ """List of all random variables, including deterministic ones.
950
+
951
+ These are the actual random variable terms that make up the
952
+ "sample-space" graph (i.e. you can sample these graphs by compiling them
953
+ with `aesara.function`). If you want the corresponding log-likelihood terms,
954
+ use `var.tag.value_var`.
955
+ """
956
+ return self .free_RVs + self .deterministics
957
+
1016
958
@property
1017
959
def RV_dims (self ) -> Dict [str , Tuple [Union [str , None ], ...]]:
1018
960
"""Tuples of dimension names for specific model variables.
@@ -1318,6 +1260,34 @@ def set_data(
1318
1260
1319
1261
shared_object .set_value (values )
1320
1262
1263
+ def initial_point (self , seed = None ) -> Dict [str , np .ndarray ]:
1264
+ """Computes the initial point of the model.
1265
+
1266
+ Returns
1267
+ -------
1268
+ ip : dict
1269
+ Maps names of transformed variables to numeric initial values in the transformed space.
1270
+ """
1271
+ fn = make_initial_point_fn (model = self , return_transformed = True )
1272
+ return Point (fn (seed ), model = self )
1273
+
1274
+ @property
1275
+ def initial_values (self ) -> Dict [TensorVariable , Optional [Union [np .ndarray , Variable , str ]]]:
1276
+ """Maps transformed variables to initial value placeholders.
1277
+
1278
+ Keys are the random variables (as returned by e.g. ``pm.Uniform()``) and
1279
+ values are the numeric/symbolic initial values, strings denoting the strategy to get them, or None.
1280
+ """
1281
+ return self ._initial_values
1282
+
1283
+ def set_initval (self , rv_var , initval ):
1284
+ """Sets an initial value (strategy) for a random variable."""
1285
+ if initval is not None and not isinstance (initval , (Variable , str )):
1286
+ # Convert scalars or array-like inputs to ndarrays
1287
+ initval = rv_var .type .filter (initval )
1288
+
1289
+ self .initial_values [rv_var ] = initval
1290
+
1321
1291
def register_rv (
1322
1292
self , rv_var , name , data = None , total_size = None , dims = None , transform = UNSET , initval = None
1323
1293
):
@@ -1761,13 +1731,6 @@ def check_start_vals(self, start):
1761
1731
f"Initial evaluation results:\n { initial_eval } "
1762
1732
)
1763
1733
1764
- def check_test_point (self , * args , ** kwargs ):
1765
- warnings .warn (
1766
- "`Model.check_test_point` has been deprecated. Use `Model.point_logps` instead." ,
1767
- FutureWarning ,
1768
- )
1769
- return self .point_logps (* args , ** kwargs )
1770
-
1771
1734
def point_logps (self , point = None , round_vals = 2 ):
1772
1735
"""Computes the log probability of `point` for all random variables in the model.
1773
1736
0 commit comments