Skip to content

Commit 5f91e95

Browse files
committed
CM-4552: Implemented example to run existing Comet experiment with COMET_EXPERIMENT_KEY environment variable.
1 parent d3da83b commit 5f91e95

File tree

3 files changed

+67
-5
lines changed

3 files changed

+67
-5
lines changed

comet-examples/src/main/java/ml/comet/examples/BaseExample.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import java.util.HashMap;
1212
import java.util.Map;
1313
import java.util.Objects;
14+
import java.util.Random;
1415

1516
import static java.lang.Math.log;
1617
import static ml.comet.examples.Utils.getResourceFile;
@@ -35,17 +36,24 @@ interface BaseExample {
3536

3637
static void generateCharts(OnlineExperiment experiment) {
3738
long currentStep = experiment.getStep();
39+
Random rd = new Random();
3840

3941
for (int i = 1; i < 15; i++) {
40-
experiment.logMetric("numMetric", 123 + i, currentStep + i, getUpdatedEpochValue(experiment));
42+
int value = (int) (Math.sin(i) * 20.0);
43+
experiment.logMetric("numMetricChart", value,
44+
currentStep + i, getUpdatedEpochValue(experiment));
4145
}
4246

4347
for (int i = 1; i < 15; i++) {
44-
experiment.logMetric("strMetric", "123" + i, currentStep + i, getUpdatedEpochValue(experiment));
48+
float value = rd.nextFloat() * 100;
49+
experiment.logMetric("strMetricChart", String.valueOf(value),
50+
currentStep + i, getUpdatedEpochValue(experiment));
4551
}
4652

4753
for (int i = 1; i < 15; i++) {
48-
experiment.logMetric("doubleMetric", 123.12d + i, currentStep + i, getUpdatedEpochValue(experiment));
54+
double value = Math.cos(i);
55+
experiment.logMetric("doubleMetricChart", 123.12d + value,
56+
currentStep + i, getUpdatedEpochValue(experiment));
4957
}
5058
}
5159

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package ml.comet.examples;
2+
3+
import ml.comet.experiment.ExperimentBuilder;
4+
import ml.comet.experiment.OnlineExperiment;
5+
import ml.comet.experiment.impl.config.CometConfig;
6+
7+
import java.util.Objects;
8+
import java.util.Random;
9+
import java.util.UUID;
10+
11+
/**
12+
* Provides variety of examples of updating existing Comet experiment.
13+
*
14+
* <p>To run from command line execute the following at the root of this module:
15+
* <pre>
16+
* COMET_API_KEY=your_api_key \
17+
* COMET_EXPERIMENT_KEY=existing_experiment_key
18+
* mvn exec:java -Dexec.mainClass="ml.comet.examples.ExistingExperimentExample"
19+
* </pre>
20+
* Make sure to provide correct values above.
21+
*/
22+
public class ExistingExperimentExample {
23+
24+
/**
25+
* The main entry point to the example.
26+
*
27+
* @param args the command line arguments if any.
28+
*/
29+
public static void main(String[] args) throws Exception {
30+
// check that COMET_EXPERIMENT_KEY environment variable is set
31+
if (Objects.isNull(System.getenv(CometConfig.COMET_EXPERIMENT_KEY.getEnvironmentKey()))) {
32+
System.err.println("To run this experiment you should set COMET_EXPERIMENT_KEY environment variable "
33+
+ "with ID of existing Comet experiment."
34+
);
35+
System.exit(1);
36+
}
37+
38+
try (OnlineExperiment experiment = ExperimentBuilder.OnlineExperiment().build()) {
39+
runExample(experiment);
40+
}
41+
}
42+
43+
private static void runExample(OnlineExperiment experiment) {
44+
// log some continuous data
45+
Random rd = new Random();
46+
String metricName = UUID.randomUUID().toString();
47+
for (int i = 0; i < 100; i++) {
48+
experiment.logMetric(metricName, rd.nextDouble() * 20, i);
49+
}
50+
51+
// log single metric value
52+
experiment.logMetric(metricName, 20, 100);
53+
}
54+
}

comet-examples/src/main/java/ml/comet/examples/OnlineExperimentExample.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,10 @@ private static void run(OnlineExperiment experiment) throws Exception {
5656
experiment.nextStep();
5757

5858
//metric can be a number, string , or double
59-
experiment.logMetric("strMetric", "123");
59+
experiment.logMetric("strMetric", "123", 1);
6060
experiment.logMetric("numMetric", 123, 123, 4);
6161
experiment.nextEpoch();
62-
experiment.logMetric("doubleMetric", 123.5d);
62+
experiment.logMetric("doubleMetric", 123.5d, 1);
6363

6464
experiment.setEpoch(3);
6565

0 commit comments

Comments
 (0)