Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

remove RealFeatures from SWIG #4261

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 3 additions & 1 deletion examples/meta/generator/targets/cpp.json
Expand Up @@ -92,14 +92,16 @@
"FloatLiteral": "${number}f",
"MethodCall": {
"Default": "$object->$method($arguments)",
"get_int": "$object->get<int32_t>($arguments)",
"get_int_vector": "$object->get<SGVector<int32_t>>($arguments)",
"get_real": "$object->get<float64_t>($arguments)",
"get_real_vector": "$object->get<SGVector<float64_t>>($arguments)",
"get_real_matrix": "$object->get<SGMatrix<float64_t>>($arguments)"
},
"StaticCall": "C$typeName::$method($arguments)",
"GlobalCall": "$method($arguments)",
"Identifier": "$identifier",
"Enum":"$typeName::$value"
"Enum":"(machine_int_t)$typeName::$value"
},
"Element": {
"Access": {
Expand Down
2 changes: 1 addition & 1 deletion examples/meta/generator/targets/csharp.json
Expand Up @@ -80,7 +80,7 @@
"StaticCall": "$typeName.$method($arguments)",
"GlobalCall": "shogun.$method($arguments)",
"Identifier": "$identifier",
"Enum":"$typeName.$value"
"Enum":"(int)$typeName.$value"
},
"Element": {
"Access": {
Expand Down
2 changes: 1 addition & 1 deletion examples/meta/src/base_api/factory.sg
Expand Up @@ -7,7 +7,7 @@ RealMatrix real_matrix(2,2)
Features features_from_matrix = features(real_matrix)

File features_file = csv_file("../../data/classifier_binary_2d_nonlinear_features_train.dat")
Features features_from_file = features(features_file, enum EPrimitiveType.PT_FLOAT64)
Features features_from_file = features(features_file)

File labels_file = csv_file("../../data/classifier_binary_2d_nonlinear_labels_train.dat")
Labels labels_from_file = labels(labels_file)
8 changes: 4 additions & 4 deletions examples/meta/src/base_api/put_get.sg
Expand Up @@ -21,10 +21,10 @@ matrix[0,1] = 0.1
matrix[1,0] = 0.2
matrix[1,1] = 0.4

RealFeatures features()
features.put("feature_matrix", matrix)
RealMatrix matrix2 = features.get_real_matrix("feature_matrix")
features.put("feature_matrix", matrix2)
# TODO: replace this with another class that has matrix parameters as features are immutable
#Features feats = features("DenseFeatures", enum EPrimitiveType.PT_FLOAT64, feature_matrix=matrix)
#RealMatrix matrix2 = feats.get_real_matrix("feature_matrix")
#feats.put("feature_matrix", matrix2)

EuclideanDistance distance()
knn.put("distance", distance)
Expand Down
17 changes: 7 additions & 10 deletions examples/meta/src/binary/averaged_perceptron.sg
Expand Up @@ -4,29 +4,26 @@ CSVFile f_labels_train("../../data/classifier_binary_2d_linear_labels_train.dat"
CSVFile f_labels_test("../../data/classifier_binary_2d_linear_labels_test.dat")

#![create_features]
RealFeatures features_train(f_feats_train)
RealFeatures features_test(f_feats_test)
Features features_train = features(f_feats_train)
Features features_test = features(f_feats_test)
BinaryLabels labels_train(f_labels_train)
BinaryLabels labels_test(f_labels_test)
#![create_features]

#![set_parameters]
real learn_rate=1.0
int max_iter=1000
AveragedPerceptron perceptron(features_train, labels_train)
perceptron.set_learn_rate(learn_rate)
perceptron.set_max_iter(max_iter)
Machine perceptron = machine("AveragedPerceptron", labels=labels_train, learn_rate=learn_rate, max_iter=max_iter)
#![set_parameters]

#![train_and_apply]
perceptron.train()
perceptron.set_features(features_test)
Labels labels_predict = perceptron.apply()
perceptron.train(features_train)
Labels labels_predict = perceptron.apply(features_test)
#![train_and_apply]

#![extract_weights]
RealVector weights = perceptron.get_w()
real bias = perceptron.get_bias()
RealVector weights = perceptron.get_real_vector("w")
real bias = perceptron.get_real("bias")
#![extract_weights]

#![evaluate_accuracy]
Expand Down
12 changes: 5 additions & 7 deletions examples/meta/src/binary/linear_discriminant_analysis.sg
Expand Up @@ -4,25 +4,23 @@ CSVFile f_labels_train("../../data/classifier_binary_2d_linear_labels_train.dat"
CSVFile f_labels_test("../../data/classifier_binary_2d_linear_labels_test.dat")

#![create_features]
RealFeatures features_train(f_feats_train)
RealFeatures features_test(f_feats_test)
Features features_train = features(f_feats_train)
Features features_test = features(f_feats_test)
BinaryLabels labels_train(f_labels_train)
BinaryLabels labels_test(f_labels_test)
#![create_features]

#![create_instance]
LDA lda()
lda.set_features(features_train)
lda.set_labels(labels_train)
Machine lda = machine("LDA", labels=labels_train)
#![create_instance]

#![train_and_apply]
lda.train()
lda.train(features_train)
BinaryLabels labels_predict = lda.apply_binary(features_test)
#![train_and_apply]

#![extract_weights]
RealVector w = lda.get_w()
RealVector w = lda.get_real_vector("w")
#![extract_weights]

#![evaluate_accuracy]
Expand Down
14 changes: 6 additions & 8 deletions examples/meta/src/binary/linear_support_vector_machine.sg
Expand Up @@ -4,8 +4,8 @@ CSVFile f_labels_train("../../data/classifier_binary_2d_linear_labels_train.dat"
CSVFile f_labels_test("../../data/classifier_binary_2d_linear_labels_test.dat")

#![create_features]
RealFeatures features_train(f_feats_train)
RealFeatures features_test(f_feats_test)
Features features_train = features(f_feats_train)
Features features_test = features(f_feats_test)
BinaryLabels labels_train(f_labels_train)
BinaryLabels labels_test(f_labels_test)
#![create_features]
Expand All @@ -16,19 +16,17 @@ real epsilon = 0.001
#![set_parameters]

#![create_instance]
LibLinear svm(C, features_train, labels_train)
svm.set_liblinear_solver_type(enum LIBLINEAR_SOLVER_TYPE.L2R_L2LOSS_SVC)
svm.set_epsilon(epsilon)
Machine svm = machine("LibLinear", C1=C, C2=C, labels=labels_train, epsilon=epsilon, liblinear_solver_type=enum LIBLINEAR_SOLVER_TYPE.L2R_L2LOSS_SVC, use_bias=True)
#![create_instance]

#![train_and_apply]
svm.train()
svm.train(features_train)
BinaryLabels labels_predict = svm.apply_binary(features_test)
#![train_and_apply]

#![extract_weights_bias]
RealVector w = svm.get_w()
real b = svm.get_bias()
RealVector w = svm.get_real_vector("w")
real b = svm.get_real("bias")
#![extract_weights_bias]

#![evaluate_accuracy]
Expand Down
4 changes: 2 additions & 2 deletions examples/meta/src/binary/multiple_kernel_learning.sg
Expand Up @@ -4,8 +4,8 @@ CSVFile f_labels_train("../../data/classifier_binary_2d_nonlinear_labels_train.d
CSVFile f_labels_test("../../data/classifier_binary_2d_nonlinear_labels_test.dat")

#![create_features]
RealFeatures features_train(f_feats_train)
RealFeatures features_test(f_feats_test)
Features features_train = features(f_feats_train)
Features features_test = features(f_feats_test)
BinaryLabels labels_train(f_labels_train)
BinaryLabels labels_test(f_labels_test)
#![create_features]
Expand Down
17 changes: 7 additions & 10 deletions examples/meta/src/binary/perceptron.sg
Expand Up @@ -4,29 +4,26 @@ CSVFile f_labels_train("../../data/classifier_binary_2d_linear_labels_train.dat"
CSVFile f_labels_test("../../data/classifier_binary_2d_linear_labels_test.dat")

#![create_features]
RealFeatures features_train(f_feats_train)
RealFeatures features_test(f_feats_test)
Features features_train = features(f_feats_train)
Features features_test = features(f_feats_test)
BinaryLabels labels_train(f_labels_train)
BinaryLabels labels_test(f_labels_test)
#![create_features]

#![create_instance]
real learn_rate=1.0
int max_iter=1000
Perceptron perceptron(features_train, labels_train)
perceptron.set_learn_rate(learn_rate)
perceptron.set_max_iter(max_iter)
Machine perceptron = machine("Perceptron", labels=labels_train, learn_rate=learn_rate, max_iter=max_iter)
#![create_instance]

#![train_and_apply]
perceptron.train()
perceptron.set_features(features_test)
Labels labels_predict = perceptron.apply()
perceptron.train(features_train)
Labels labels_predict = perceptron.apply(features_test)
#![train_and_apply]

#![extract_weights]
RealVector weights = perceptron.get_w()
real bias = perceptron.get_bias()
RealVector weights = perceptron.get_real_vector("w")
real bias = perceptron.get_real("bias")
#![extract_weights]

#![evaluate_accuracy]
Expand Down
2 changes: 1 addition & 1 deletion examples/meta/src/clustering/gaussian_mixture_models.sg
Expand Up @@ -3,7 +3,7 @@ CSVFile f_feats_train("../../data/classifier_4class_2d_linear_features_train.dat
Math:init_random(1)

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

#![create_gmm_instance]
Expand Down
8 changes: 4 additions & 4 deletions examples/meta/src/clustering/kmeans.sg
Expand Up @@ -2,15 +2,15 @@ CSVFile f_feats_train("../../data/classifier_binary_2d_linear_features_train.dat
Math:init_random(1)

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

#![choose_distance]
EuclideanDistance distance(features_train, features_train)
Distance d = distance("EuclideanDistance", lhs=features_train, rhs=features_train)
#![choose_distance]

#![create_instance_lloyd]
KMeans kmeans(2, distance)
KMeans kmeans(2, d)
#![create_instance_lloyd]

#![train_dataset]
Expand All @@ -23,6 +23,6 @@ RealVector r = kmeans.get_radiuses()
#![extract_centers_and_radius]

#![create_instance_mb]
KMeansMiniBatch kmeans_mb(2, distance)
KMeansMiniBatch kmeans_mb(2, d)
kmeans_mb.set_mb_params(4, 1000)
#![create_instance_mb]
Expand Up @@ -3,7 +3,7 @@ CSVFile f_feats("../../data/ica_2_sources.dat")
Math:init_random(1)

#![create_features]
RealFeatures features(f_feats)
Features feats = features(f_feats)
#![create_features]

#![set_parameters]
Expand All @@ -13,7 +13,7 @@ ica.set_tol(0.00001)
#![set_parameters]

#![apply_convert]
Features converted = ica.apply(features)
Features converted = ica.apply(feats)
#![apply_convert]

#![extract]
Expand Down
Expand Up @@ -3,7 +3,7 @@ CSVFile f_feats("../../data/ica_2_sources.dat")
Math:init_random(1)

#![create_features]
RealFeatures features(f_feats)
Features feats = features(f_feats)
#![create_features]

#![set_parameters]
Expand All @@ -13,12 +13,11 @@ ica.set_tol(0.00001)
#![set_parameters]

#![apply_convert]
Features converted = ica.apply(features)
Features converted = ica.apply(feats)
#![apply_convert]

#![extract]
RealMatrix mixing_matrix = ica.get_mixing_matrix()
RealFeatures casted = RealFeatures:obtain_from_generic(converted)
RealMatrix unmixed_signal = casted.get_feature_matrix()
RealMatrix unmixed_signal = converted.get_real_matrix("feature_matrix")
#![extract]

Expand Up @@ -3,7 +3,7 @@ CSVFile f_feats("../../data/ica_2_sources.dat")
Math:init_random(1)

#![create_features]
RealFeatures features(f_feats)
Features feats = features(f_feats)
#![create_features]

#![set_parameters]
Expand All @@ -13,12 +13,11 @@ ica.set_tol(0.00001)
#![set_parameters]

#![apply_convert]
Features converted = ica.apply(features)
Features converted = ica.apply(feats)
#![apply_convert]

#![extract]
RealMatrix mixing_matrix = ica.get_mixing_matrix()
RealFeatures casted = RealFeatures:obtain_from_generic(converted)
RealMatrix unmixed_signal = casted.get_feature_matrix()
RealMatrix unmixed_signal = converted.get_real_matrix("feature_matrix")
#![extract]

Expand Up @@ -3,7 +3,7 @@ CSVFile f_feats("../../data/ica_2_sources.dat")
Math:init_random(1)

#![create_features]
RealFeatures features(f_feats)
Features feats = features(f_feats)
#![create_features]

#![set_parameters]
Expand All @@ -13,12 +13,11 @@ ica.set_tol(0.00001)
#![set_parameters]

#![apply_convert]
Features converted = ica.apply(features)
Features converted = ica.apply(feats)
#![apply_convert]

#![extract]
RealMatrix mixing_matrix = ica.get_mixing_matrix()
RealFeatures casted = RealFeatures:obtain_from_generic(converted)
RealMatrix unmixed_signal = casted.get_feature_matrix()
RealMatrix unmixed_signal = converted.get_real_matrix("feature_matrix")
#![extract]

Expand Up @@ -3,7 +3,7 @@ CSVFile f_feats("../../data/ica_2_sources.dat")
Math:init_random(1)

#![create_features]
RealFeatures features(f_feats)
Features feats = features(f_feats)
#![create_features]

#![set_parameters]
Expand All @@ -13,12 +13,11 @@ ica.set_tol(0.00001)
#![set_parameters]

#![apply_convert]
Features converted = ica.apply(features)
Features converted = ica.apply(feats)
#![apply_convert]

#![extract]
RealMatrix mixing_matrix = ica.get_mixing_matrix()
RealFeatures casted = RealFeatures:obtain_from_generic(converted)
RealMatrix unmixed_signal = casted.get_feature_matrix()
RealMatrix unmixed_signal = converted.get_real_matrix("feature_matrix")
#![extract]

14 changes: 7 additions & 7 deletions examples/meta/src/distance/braycurtis.sg
Expand Up @@ -2,19 +2,19 @@ CSVFile f_feats_a("../../data/fm_train_real.dat")
CSVFile f_feats_b("../../data/fm_test_real.dat")

#![create_features]
RealFeatures features_a(f_feats_a)
RealFeatures features_b(f_feats_b)
Features features_a = features(f_feats_a)
Features features_b = features(f_feats_b)
#![create_features]

#![create_instance]
BrayCurtisDistance distance(features_a, features_a)
Distance d = distance("BrayCurtisDistance", lhs=features_a, rhs=features_a)
#![create_instance]

#![extract_distance]
RealMatrix distance_matrix_aa = distance.get_distance_matrix()
RealMatrix distance_matrix_aa = d.get_distance_matrix()
#![extract_distance]

#![refresh_distance]
distance.init(features_a, features_b)
RealMatrix distance_matrix_ab = distance.get_distance_matrix()
#![refresh_distance]
d.init(features_a, features_b)
RealMatrix distance_matrix_ab = d.get_distance_matrix()
#![refresh_distance]