Skip to content

Commit

Permalink
Merge pull request #496 from cogmission/sync_tm_dev
Browse files Browse the repository at this point in the history
Sync tm dev
  • Loading branch information
cogmission committed Oct 13, 2016
2 parents 473233d + f4eed8d commit 7f4d8f2
Show file tree
Hide file tree
Showing 92 changed files with 3,548 additions and 1,290 deletions.
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

0 comments on commit 7f4d8f2

Please sign in to comment.