Skip to content

Commit

Permalink
Add observable GMM meta example.
Browse files Browse the repository at this point in the history
  • Loading branch information
geektoni committed May 28, 2019
1 parent ef47c2a commit 4bbf17d
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions examples/meta/src/observers/gaussian_mixture_models.sg
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
File f_feats_train = csv_file("../../data/classifier_4class_2d_linear_features_train.dat")

Math:init_random(1)

#![create_features]
Features features_train = features(f_feats_train)
#![create_features]

#![create_gmm_instance]
int num_components = 3
GMM gmm(num_components)
#![create_gmm_instance]

#![add_observer]
ParameterObserver obs = parameter_observer("ParameterObserverLogger")
gmm.subscribe(obs)
#![add_observer]

#![train_sample]
gmm.put("features", features_train)
gmm.train_em()
#![train_sample]

#![training_smem]
obs.clear()
gmm.train_smem()
#![training_smem]

#![extract_params]
int num_observations = obs.get_int("num_observations")
ObservedValue obs_val = obs.get_observation(num_observations-1)
RealVector coeff = obs_val.get_real_vector("coefficients")
real log_likelihood = obs_val.get_real("log_likelihood")
RealVector coef = gmm.get_real_vector("coefficients")
#![extract_params]

0 comments on commit 4bbf17d

Please sign in to comment.