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

Sync tm dev #496

Merged
merged 6 commits into from
Oct 13, 2016
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.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .classpath
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="libs/chutils-1.4.jar" sourcepath="/Users/cogmission/Resources/chutils/chutils-1.4-sources.jar"/>
<classpathentry kind="lib" path="libs/hamcrest-core-1.3.jar"/>
<classpathentry kind="lib" path="libs/jackson-annotations-2.4.0.jar"/>
<classpathentry kind="lib" path="libs/jackson-core-2.4.4.jar"/>
<classpathentry kind="lib" path="libs/jackson-databind-2.4.4.jar"/>
<classpathentry kind="lib" path="libs/jmh-core-1.5.1.jar"/>
<classpathentry kind="lib" path="libs/joda-time-2.5.jar"/>
<classpathentry kind="lib" path="libs/junit-4.11.jar"/>
Expand All @@ -20,6 +17,9 @@
<classpathentry kind="lib" path="libs/java-util-1.19.3.jar" sourcepath="/Users/cogmission/.m2/repository/com/cedarsoftware/java-util/1.19.3/java-util-1.19.3-sources.jar"/>
<classpathentry kind="lib" path="libs/objenesis-2.1.jar"/>
<classpathentry kind="lib" path="libs/algorithmfoundry-shade-culled-1.3.jar"/>
<classpathentry kind="lib" path="libs/fst-2.45.jar"/>
<classpathentry kind="lib" path="libs/fst-2.45.jar" sourcepath="/Users/cogmission/git/fast-serialization/src/main/java"/>
<classpathentry kind="lib" path="libs/jackson-annotations-2.4.0.jar"/>
<classpathentry kind="lib" path="libs/jackson-core-2.4.4.jar"/>
<classpathentry kind="lib" path="libs/jackson-databind-2.4.4.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
14 changes: 7 additions & 7 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ apply plugin: 'eclipse'
apply plugin: 'signing'

group = 'org.numenta'
version = '0.6.10-SNAPSHOT'
version = '0.6.9-SNAPSHOT'
archivesBaseName = 'htm.java'

sourceCompatibility = 1.8
targetCompatibility = 1.8

jar {
manifest {
attributes 'Implementation-Title': 'htm.java', 'Implementation-Version': '0.6.10-SNAPSHOT'
attributes 'Implementation-Title': 'htm.java', 'Implementation-Version': '0.6.9-SNAPSHOT'
}
}

Expand Down Expand Up @@ -53,11 +53,11 @@ dependencies {
compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version:'2.4.4'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version:'2.4.4'
compile group: 'org.slf4j', name: 'slf4j-api', version:'1.7.10'
compile group: 'io.reactivex', name: 'rxjava', version: '1.0.10'
compile group: 'de.ruedigermoeller', name: 'fst', version: '2.45'
compile group: 'com.cedarsoftware', name: 'java-util', version: '1.19.3'
compile group: 'algorithmfoundry', name: 'algorithmfoundry-shade-culled', version:'1.3'
testCompile group: 'junit', name: 'junit', version:'4.11'
compile group: 'io.reactivex', name: 'rxjava', version: '1.0.10'
compile group: 'de.ruedigermoeller', name: 'fst', version: '2.45'
compile group: 'com.cedarsoftware', name: 'java-util', version: '1.19.3'
compile group: 'algorithmfoundry', name: 'algorithmfoundry-shade-culled', version:'1.3'
testCompile group: 'junit', name: 'junit', version:'4.11'
testCompile group: 'ch.qos.logback', name: 'logback-classic', version:'1.1.2'
}

Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<groupId>org.numenta</groupId>
<artifactId>htm.java</artifactId>
<version>0.6.10-SNAPSHOT</version>
<version>0.6.9-SNAPSHOT</version>
<name>htm.java</name>
<description>The Java version of Numenta's HTM technology</description>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@

package org.numenta.nupic.benchmarks;

import org.numenta.nupic.Connections;
import org.numenta.nupic.Parameters;
import org.numenta.nupic.Parameters.KEY;
import org.numenta.nupic.algorithms.SpatialPooler;
import org.numenta.nupic.algorithms.TemporalMemory;
import org.numenta.nupic.encoders.ScalarEncoder;
import org.numenta.nupic.model.Connections;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

import java.util.concurrent.TimeUnit;

import org.numenta.nupic.ComputeCycle;
import org.numenta.nupic.model.ComputeCycle;
import org.numenta.nupic.util.ArrayUtils;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/org/numenta/nupic/Parameters.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,10 @@
import org.numenta.nupic.algorithms.TemporalMemory;
import org.numenta.nupic.model.Cell;
import org.numenta.nupic.model.Column;
import org.numenta.nupic.model.ComputeCycle;
import org.numenta.nupic.model.DistalDendrite;
import org.numenta.nupic.model.Connections;
import org.numenta.nupic.model.Persistable;
import org.numenta.nupic.util.ArrayUtils;
import org.numenta.nupic.util.BeanUtil;
import org.numenta.nupic.util.MersenneTwister;
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/numenta/nupic/algorithms/Anomaly.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
import java.util.List;
import java.util.Map;

import org.numenta.nupic.Persistable;
import org.numenta.nupic.model.Persistable;
import org.numenta.nupic.util.ArrayUtils;

import gnu.trove.list.TDoubleList;
Expand Down
105 changes: 3 additions & 102 deletions src/main/java/org/numenta/nupic/algorithms/AnomalyLikelihood.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,6 @@

package org.numenta.nupic.algorithms;

import gnu.trove.iterator.TDoubleIterator;
import gnu.trove.list.TDoubleList;
import gnu.trove.list.array.TDoubleArrayList;
import gnu.trove.map.TObjectDoubleMap;

import java.io.IOException;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
Expand All @@ -40,14 +33,9 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
import com.fasterxml.jackson.databind.node.ObjectNode;
import gnu.trove.list.TDoubleList;
import gnu.trove.list.array.TDoubleArrayList;
import gnu.trove.map.TObjectDoubleMap;

/**
* <p>The anomaly likelihood computer.</p>
Expand Down Expand Up @@ -607,9 +595,6 @@ public boolean isValidEstimatorParams(NamedTuple params) {
public static class AnomalyParams extends NamedTuple {
private static final long serialVersionUID = 1L;

/** Cached Json formatting. Possible because Objects of this class are immutable */
private ObjectNode cachedNode;

private final Statistic distribution;
private final MovingAverage movingAverage;
private final double[] historicalLikelihoods;
Expand Down Expand Up @@ -666,90 +651,6 @@ public int windowSize() {
return windowSize;
}

/**
* Lazily creates and returns a JSON ObjectNode containing this {@code AnomalyParams}' data.
*
* @param factory
* @return
*/
public ObjectNode toJsonNode(JsonNodeFactory factory) {
if(cachedNode == null) {
ObjectNode distribution = factory.objectNode();
distribution.put(KEY_MEAN, this.distribution.mean);
distribution.put(KEY_VARIANCE, this.distribution.variance);
distribution.put(KEY_STDEV, this.distribution.stdev);

double[] historicalLikelihoods = (double[])get(KEY_HIST_LIKE);
ArrayNode historics = factory.arrayNode();
for(double d : historicalLikelihoods) {
historics.add(d);
}

ObjectNode mvgAvg = factory.objectNode();
mvgAvg.put(KEY_WINDOW_SIZE, windowSize);

ArrayNode histVals = factory.arrayNode();
TDoubleList hVals = this.movingAverage.getSlidingWindow();
for(TDoubleIterator it = hVals.iterator();it.hasNext();) {
histVals.add(it.next());
}
mvgAvg.set(KEY_HIST_VALUES, histVals);
mvgAvg.put(KEY_TOTAL, this.movingAverage.getTotal());

cachedNode = factory.objectNode();
cachedNode.set(KEY_DIST, distribution);
cachedNode.set(KEY_HIST_LIKE, historics);
cachedNode.set(KEY_MVG_AVG, mvgAvg);
}

return cachedNode;
}

/**
* Returns the processed Json Node with possible pretty print indentation
* formatting if the flag specified is true.
*
* @param doPrettyPrint
* @return
*/
public String toJson(boolean doPrettyPrint) {
// Create the node factory that gives us nodes.
JsonNodeFactory factory = new JsonNodeFactory(false);

// create a json factory to write the tree node as json. for the example
// we just write to console
JsonFactory jsonFactory = new JsonFactory();
JsonGenerator generator = null;
StringWriter out = new StringWriter();
try {
generator = jsonFactory.createGenerator(out);
}catch(IOException e) {
LOG.error("Error while creating JsonGenerator", e);
}

ObjectMapper mapper = new ObjectMapper();
if(doPrettyPrint) {
mapper.enable(SerializationFeature.INDENT_OUTPUT);
}
try {
mapper.writeTree(generator, toJsonNode(factory));
} catch(JsonProcessingException e) {
LOG.error("Error while writing json", e);
} catch(IOException e) {
LOG.error("Error while writing json", e);
}

return out.getBuffer().toString();
}

/**
* Returns the processed Json Node as a String
* @return
*/
public String toJson() {
return toJson(false);
}

/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@
import java.util.Arrays;
import java.util.List;

import org.numenta.nupic.Persistable;
import org.numenta.nupic.algorithms.Anomaly.AveragedAnomalyRecordList;
import org.numenta.nupic.algorithms.AnomalyLikelihood.AnomalyParams;
import org.numenta.nupic.model.Persistable;

/**
* Container class to hold the results of {@link AnomalyLikelihood} estimations
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/numenta/nupic/algorithms/BitHistory.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

package org.numenta.nupic.algorithms;

import org.numenta.nupic.Persistable;
import org.numenta.nupic.model.Persistable;
import org.numenta.nupic.util.ArrayUtils;

import gnu.trove.list.TDoubleList;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
import java.util.List;
import java.util.Map;

import org.numenta.nupic.Persistable;
import org.numenta.nupic.model.Persistable;
import org.numenta.nupic.util.ArrayUtils;
import org.numenta.nupic.util.Deque;
import org.numenta.nupic.util.Tuple;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import java.util.Arrays;

import org.numenta.nupic.Persistable;
import org.numenta.nupic.model.Persistable;

import gnu.trove.map.TIntObjectMap;
import gnu.trove.map.hash.TIntObjectHashMap;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

package org.numenta.nupic.algorithms;

import org.numenta.nupic.Persistable;
import org.numenta.nupic.model.Persistable;

import gnu.trove.list.TDoubleList;
import gnu.trove.list.array.TDoubleArrayList;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@
import java.util.Map;

import no.uib.cipr.matrix.sparse.FlexCompRowMatrix;
import org.numenta.nupic.Persistable;

import org.numenta.nupic.model.Persistable;
import org.numenta.nupic.util.ArrayUtils;
import org.numenta.nupic.util.Deque;
import org.numenta.nupic.util.Tuple;
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/numenta/nupic/algorithms/Sample.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
package org.numenta.nupic.algorithms;

import org.joda.time.DateTime;
import org.numenta.nupic.Persistable;
import org.numenta.nupic.model.Persistable;

/**
* A sample data point or record consisting of a timestamp, value, and score.
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/org/numenta/nupic/algorithms/SpatialPooler.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@
import java.util.Comparator;
import java.util.stream.IntStream;

import org.numenta.nupic.Connections;
import org.numenta.nupic.Persistable;
import org.numenta.nupic.model.Column;
import org.numenta.nupic.model.Connections;
import org.numenta.nupic.model.Persistable;
import org.numenta.nupic.model.Pool;
import org.numenta.nupic.util.ArrayUtils;
import org.numenta.nupic.util.Condition;
Expand Down
20 changes: 1 addition & 19 deletions src/main/java/org/numenta/nupic/algorithms/Statistic.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,9 @@

package org.numenta.nupic.algorithms;

import org.numenta.nupic.Persistable;
import org.numenta.nupic.model.Persistable;
import org.numenta.nupic.util.NamedTuple;

import com.fasterxml.jackson.databind.node.JsonNodeFactory;
import com.fasterxml.jackson.databind.node.ObjectNode;

/**
* Container to hold a specific calculation for a statistical data point.
*
Expand Down Expand Up @@ -61,21 +58,6 @@ public Statistic(double mean, double variance, double stdev) {
this.entries = new NamedTuple(new String[] { "mean", "variance", "stdev" }, mean, variance, stdev);
}

/**
* Creates and returns a JSON ObjectNode containing this Statistic's data.
*
* @param factory
* @return
*/
public ObjectNode toJson(JsonNodeFactory factory) {
ObjectNode distribution = factory.objectNode();
distribution.put("mean", mean);
distribution.put("variance", variance);
distribution.put("stdev", stdev);

return distribution;
}

@Override
public int hashCode() {
final int prime = 31;
Expand Down
Loading