@Test public void testApply() { DummyContainer dc = new DummyContainer(); Parameters params = Parameters.getAllDefaultParameters(); params.setParameterByKey(Parameters.KEY.COLUMN_DIMENSIONS, new int[] {2048}); params.setParameterByKey(Parameters.KEY.POTENTIAL_PCT, 20.0); params.setParameterByKey(Parameters.KEY.CELLS_PER_COLUMN, null); params.apply(dc); assertTrue(Arrays.equals(new int[] {2048}, dc.getColumnDimensions())); assertEquals(20.0, dc.getPotentialPct(), 0); }
/** * Called internally to populate a {@link Parameters} object with the keys and values specified in * the passed in map. * * @return {@link Parameters} object */ private static Parameters getParameters(Map<KEY, Object> map) { Parameters result = new Parameters(); for (KEY key : map.keySet()) { result.setParameterByKey(key, map.get(key)); } return result; }
@Test public void testUnion() { Parameters params = Parameters.getAllDefaultParameters(); Parameters arg = Parameters.getAllDefaultParameters(); arg.setParameterByKey(KEY.CELLS_PER_COLUMN, 5); assertTrue((int) params.getParameterByKey(KEY.CELLS_PER_COLUMN) != 5); params.union(arg); assertTrue((int) params.getParameterByKey(KEY.CELLS_PER_COLUMN) == 5); }
@Test public void testDefaultsAndUpdates() { Parameters params = Parameters.getAllDefaultParameters(); assertEquals(params.getParameterByKey(Parameters.KEY.CELLS_PER_COLUMN), 32); assertEquals(params.getParameterByKey(Parameters.KEY.SEED), 42); assertEquals( true, ((Random) params.getParameterByKey(Parameters.KEY.RANDOM)) .getClass() .equals(MersenneTwister.class)); System.out.println("All Defaults:\n" + Parameters.getAllDefaultParameters()); System.out.println("Spatial Defaults:\n" + Parameters.getSpatialDefaultParameters()); System.out.println("Temporal Defaults:\n" + Parameters.getTemporalDefaultParameters()); parameters = Parameters.getSpatialDefaultParameters(); parameters.setParameterByKey(Parameters.KEY.INPUT_DIMENSIONS, new int[] {64, 64}); parameters.setParameterByKey(Parameters.KEY.COLUMN_DIMENSIONS, new int[] {32, 32}); parameters.setParameterByKey(Parameters.KEY.NUM_ACTIVE_COLUMNS_PER_INH_AREA, 0.02 * 64 * 64); System.out.println("Updated/Combined:\n" + parameters); }
/** * Creates and returns a {@link Parameters} object configured for this demo. * * @return */ org.numenta.nupic.Parameters createParameters() { org.numenta.nupic.Parameters tmParams = org.numenta.nupic.Parameters.getTemporalDefaultParameters(); tmParams.setParameterByKey(KEY.COLUMN_DIMENSIONS, new int[] {16384}); tmParams.setParameterByKey(KEY.INPUT_DIMENSIONS, new int[] {16384}); tmParams.setParameterByKey(KEY.CELLS_PER_COLUMN, 8); tmParams.setParameterByKey(KEY.CONNECTED_PERMANENCE, 0.5); tmParams.setParameterByKey(KEY.INITIAL_PERMANENCE, 0.4); tmParams.setParameterByKey(KEY.MIN_THRESHOLD, 164); tmParams.setParameterByKey(KEY.MAX_NEW_SYNAPSE_COUNT, 164); tmParams.setParameterByKey(KEY.PERMANENCE_INCREMENT, 0.1); tmParams.setParameterByKey(KEY.PERMANENCE_DECREMENT, 0.0); tmParams.setParameterByKey(KEY.ACTIVATION_THRESHOLD, 164); return tmParams; }
/** * Copies the specified parameters into this {@code Parameters} object over writing the * intersecting keys and values. * * @param p the Parameters to perform a union with. * @return this Parameters object combined with the specified Parameters object. */ public Parameters union(Parameters p) { for (KEY k : p.paramMap.keySet()) { setParameterByKey(k, p.getParameterByKey(k)); } return this; }
/** * Creates and returns a {@link Parameters} object configured for this demo. * * @return */ org.numenta.nupic.Parameters createParameters() { org.numenta.nupic.Parameters tmParams = org.numenta.nupic.Parameters.getTemporalDefaultParameters(); tmParams.setParameterByKey(KEY.COLUMN_DIMENSIONS, new int[] {16384}); tmParams.setParameterByKey(KEY.INPUT_DIMENSIONS, new int[] {16384}); tmParams.setParameterByKey(KEY.CELLS_PER_COLUMN, 8); tmParams.setParameterByKey(KEY.CONNECTED_PERMANENCE, 0.5); tmParams.setParameterByKey(KEY.INITIAL_PERMANENCE, 0.4); // tmParams.setParameterByKey(KEY.MIN_THRESHOLD, 164); // tmParams.setParameterByKey(KEY.MAX_NEW_SYNAPSE_COUNT, 164); // tmParams.setParameterByKey(KEY.ACTIVATION_THRESHOLD, 164); tmParams.setParameterByKey(KEY.MIN_THRESHOLD, 82); tmParams.setParameterByKey(KEY.MAX_NEW_SYNAPSE_COUNT, 82); tmParams.setParameterByKey(KEY.ACTIVATION_THRESHOLD, 82); tmParams.setParameterByKey(KEY.PERMANENCE_INCREMENT, 0.1); tmParams.setParameterByKey(KEY.PERMANENCE_DECREMENT, 0.01); tmParams.setParameterByKey(KEY.GLOBAL_INHIBITION, false); // tmParams.setParameterByKey(KEY.RADIUS, 4.0); tmParams.setParameterByKey(KEY.INHIBITION_RADIUS, 10); tmParams.setParameterByKey(KEY.POTENTIAL_RADIUS, 10); tmParams.setParameterByKey(KEY.SYN_PERM_CONNECTED, 0.1); tmParams.setParameterByKey(KEY.SYN_PERM_ACTIVE_INC, 0.9); tmParams.setParameterByKey(KEY.SYN_PERM_INACTIVE_DEC, 0.01); // tmParams.setParameterByKey(KEY., 1.0); tmParams.setParameterByKey(KEY.POTENTIAL_PCT, 1.0); tmParams.setParameterByKey(KEY.STIMULUS_THRESHOLD, 0.0); // tmParams.setParameterByKey(KEY.SP_ONE_TO_ONE, true); return tmParams; }