/** * {@inheritDoc} */ @Override public void save(final OutputStream os, final Object obj) { final EncogWriteHelper out = new EncogWriteHelper(os); final SOM som = (SOM) obj; out.addSection("SOM"); out.addSubSection("PARAMS"); out.addProperties(som.getProperties()); out.addSubSection("NETWORK"); out.writeProperty(PersistConst.WEIGHTS, som.getWeights()); out.writeProperty(PersistConst.INPUT_COUNT, som.getInputCount()); out.writeProperty(PersistConst.OUTPUT_COUNT, som.getOutputCount()); out.flush(); }
private void saveProcess(EncogWriteHelper out) { saveSubSection(out, "PROCESS", "CONFIG"); out.addSubSection("FIELDS"); out.addColumn("name"); out.addColumn("command"); out.writeLine(); for (final ProcessField field : this.script.getProcess().getFields()) { out.addColumn(field.getName()); out.addColumn(field.getCommand()); out.writeLine(); } out.flush(); }
/** * Write a property as an activation function. * * @param name * The name of the property. * @param act * The activation function. */ public final void writeProperty(final String name, final ActivationFunction act) { writeProperty(name, makeActivationFunctionString(act)); }
public void addColumn(ActivationFunction act) { addColumn(makeActivationFunctionString(act)); } }
@Override public void save(OutputStream os, Object obj) { final EncogWriteHelper out = new EncogWriteHelper(os); final BasicUniverse universe = (BasicUniverse) obj; out.addSection("BasicUniverse"); out.addSubSection("PARAMS"); out.addProperties(universe.getProperties()); out.addSubSection("UNIVERSE-PARAM"); out.writeProperty(PersistConst.ROWS, universe.getRows()); out.writeProperty(PersistConst.COLS, universe.getColumns()); out.addSubSection("UNIVERSE-CELLS"); UniverseCellFactory factory = universe.getCellFactory(); String className = factory.getClass().getSimpleName(); out.writeProperty(PersistConst.TYPE, className); if( factory instanceof BasicCellFactory ) { BasicCellFactory factory2 = (BasicCellFactory)factory; out.writeProperty(BasicUniverse.ELEMENT_COUNT, factory2.getElementCount()); out.writeProperty(PersistConst.MAX, factory2.getMax()); out.writeProperty(PersistConst.MIN, factory2.getMin()); out.writeProperty(PersistConst.SIZE, factory2.size()); } else { throw new CellularAutomataError("Unknown cell factory: " + className); out.addSubSection("UNIVERSE"); for(int row = 0; row<universe.getRows(); row++) { for(int col = 0; col<universe.getColumns(); col++) { UniverseCell cell = universe.get(row, col); for(int i=0;i<cell.size();i++) { out.addColumn(cell.get(i));
/** * Save segregate info. * @param out The output file. */ private void saveSegregate(final EncogWriteHelper out) { saveSubSection(out, "SEGREGATE", "CONFIG"); out.addSubSection("FILES"); out.addColumn("file"); out.addColumn("percent"); out.writeLine(); for (final AnalystSegregateTarget target : this.script.getSegregate() .getSegregateTargets()) { out.addColumn(target.getFile()); out.addColumn(target.getPercent()); out.writeLine(); } }
/** * Save a subsection. * @param out The output file. * @param section The section. * @param subSection The subsection. */ private void saveSubSection(final EncogWriteHelper out, final String section, final String subSection) { if (!section.equals(out.getCurrentSection())) { out.addSection(section); } out.addSubSection(subSection); final List<PropertyEntry> list = PropertyConstraints.getInstance() .getEntries(section, subSection); if (list != null) { Collections.sort(list); for (final PropertyEntry entry : list) { final String key = section + ":" + subSection + "_" + entry.getName(); final String value = this.script.getProperties() .getPropertyString(key); if (value != null) { out.writeProperty(entry.getName(), value); } else { out.writeProperty(entry.getName(), ""); } } } }
/** * Save the tasks. * @param out The output file. */ private void saveTasks(final EncogWriteHelper out) { out.addSection("TASKS"); final List<String> list = new ArrayList<String>(); list.addAll(this.script.getTasks().keySet()); Collections.sort(list); for (final String key : list) { final AnalystTask task = this.script.getTask(key); out.addSubSection(task.getName()); for (final String line : task.getLines()) { out.addLine(line); } } } }
private void saveSpecies(final EncogWriteHelper out, final Species species) { out.addColumn("s"); out.addColumn(species.getAge()); out.addColumn(species.getBestScore()); out.addColumn(species.getGensNoImprovement()); out.writeLine(); out.addColumn("g"); out.addColumn(neatGenome.getAdjustedScore()); out.addColumn(neatGenome.getScore()); out.addColumn(neatGenome.getBirthGeneration()); out.writeLine(); out.addColumn("n"); out.addColumn(neatNeuronGene.getId()); out.addColumn(neatNeuronGene.getActivationFunction()); out.addColumn(PersistNEATPopulation .neuronTypeToString(neatNeuronGene.getNeuronType())); out.addColumn(neatNeuronGene.getInnovationId()); out.writeLine(); out.addColumn("l"); out.addColumn(neatLinkGene.getId()); out.addColumn(neatLinkGene.isEnabled()); out.addColumn(neatLinkGene.getFromNeuronID()); out.addColumn(neatLinkGene.getToNeuronID()); out.addColumn(neatLinkGene.getWeight()); out.addColumn(neatLinkGene.getInnovationId()); out.writeLine();
/** * Save the config info. * * @param out * THe output file. */ private void saveConfig(final EncogWriteHelper out) { saveSubSection(out, "SETUP", "CONFIG"); out.addSubSection("FILENAMES"); final List<String> list = this.script.getProperties().getFilenames(); for (final String key : list) { final String value = this.script.getProperties().getFilename(key); final File f = new File(value); if ((f.getParent() != null) && f.getParent() .equalsIgnoreCase(this.script.getBasePath())) { out.writeProperty(key, f.getName()); } else { out.writeProperty(key, value); } } }
/** * Save the script to a stream. * * @param stream * The output stream. */ public void save(final OutputStream stream) { final EncogWriteHelper out = new EncogWriteHelper(stream); saveSubSection(out, "HEADER", "DATASOURCE"); saveConfig(out); if (this.script.getFields() != null) { saveData(out); saveNormalize(out); } saveProcess(out); saveSubSection(out, "RANDOMIZE", "CONFIG"); saveSubSection(out, "CLUSTER", "CONFIG"); saveSubSection(out, "BALANCE", "CONFIG"); saveSubSection(out, "CODE", "CONFIG"); if (this.script.getSegregate().getSegregateTargets() != null) { saveSegregate(out); } saveSubSection(out, "GENERATE", "CONFIG"); saveMachineLearning(out); saveTasks(out); out.flush(); }
/** * Add the specified properties. * * @param properties * The properties. */ public final void addProperties(final Map<String, String> properties) { for (final String key : properties.keySet()) { final String value = properties.get(key); this.writeProperty(key, value); } }
/** * Add a list of string columns. * * @param cols * The columns to add. */ public final void addColumns(final List<String> cols) { for (final String str : cols) { addColumn(str); } }
/** * Add a line. * * @param l * The line to add. */ public final void addLine(final String l) { if (this.line.length() > 0) { writeLine(); } this.out.println(l); }
final EncogWriteHelper out = new EncogWriteHelper(os); final BasicFloatNetwork net = (BasicFloatNetwork) obj; final FlatNetwork flat = net.getStructure().getFlat(); out.addSection("BASIC"); out.addSubSection("PARAMS"); out.addProperties(net.getProperties()); out.addSubSection("NETWORK"); out.writeProperty(BasicNetwork.TAG_BEGIN_TRAINING, flat.getBeginTraining()); out.writeProperty(BasicNetwork.TAG_CONNECTION_LIMIT, flat.getConnectionLimit()); out.writeProperty(BasicNetwork.TAG_CONTEXT_TARGET_OFFSET, flat.getContextTargetOffset()); out.writeProperty(BasicNetwork.TAG_CONTEXT_TARGET_SIZE, flat.getContextTargetSize()); out.writeProperty(BasicNetwork.TAG_END_TRAINING, flat.getEndTraining()); out.writeProperty(BasicNetwork.TAG_HAS_CONTEXT, flat.getHasContext()); out.writeProperty(PersistConst.INPUT_COUNT, flat.getInputCount()); out.writeProperty(BasicNetwork.TAG_LAYER_COUNTS, flat.getLayerCounts()); out.writeProperty(BasicNetwork.TAG_LAYER_FEED_COUNTS, flat.getLayerFeedCounts()); out.writeProperty(BasicNetwork.TAG_LAYER_CONTEXT_COUNT, flat.getLayerContextCount()); out.writeProperty(BasicNetwork.TAG_LAYER_INDEX, flat.getLayerIndex()); out.writeProperty(PersistConst.OUTPUT, flat.getLayerOutput()); out.writeProperty(PersistConst.OUTPUT_COUNT, flat.getOutputCount()); out.writeProperty(BasicNetwork.TAG_WEIGHT_INDEX, flat.getWeightIndex()); out.writeProperty(PersistConst.WEIGHTS, flat.getWeights()); out.writeProperty(BasicNetwork.TAG_BIAS_ACTIVATION, flat.getBiasActivation()); out.addSubSection("ACTIVATION"); for(final ActivationFunction af: flat.getActivationFunctions()) { out.addColumn(af.getClass().getSimpleName()); for(int i = 0; i < af.getParams().length; i++) { out.addColumn(af.getParams()[i]);
/** * Save the ML sections. * * @param out * The output file. */ private void saveMachineLearning(final EncogWriteHelper out) { saveSubSection(out, "ML", "CONFIG"); saveSubSection(out, "ML", "TRAIN"); out.addSubSection("OPCODES"); out.addColumn("code"); out.addColumn("count"); out.writeLine(); for( final ScriptOpcode so: this.script.getOpcodes() ) { out.addColumn(so.getName()); out.addColumn(so.getArgCount()); out.writeLine(); } }
/** * Write a property as an int array. * * @param name * The name of the property. * @param array * The array. */ public final void writeProperty(final String name, final int[] array) { final StringBuilder result = new StringBuilder(); NumberList.toListInt(CSVFormat.EG_FORMAT, result, array); writeProperty(name, result.toString()); }
final EncogWriteHelper out = new EncogWriteHelper(os); final BasicNetwork net = (BasicNetwork) obj; final FlatNetwork flat = net.getStructure().getFlat(); out.addSection("BASIC"); out.addSubSection("PARAMS"); out.addProperties(net.getProperties()); out.addSubSection("NETWORK"); out.writeProperty(BasicNetwork.TAG_BEGIN_TRAINING, flat.getBeginTraining()); out.writeProperty(BasicNetwork.TAG_CONNECTION_LIMIT, flat.getConnectionLimit()); out.writeProperty(BasicNetwork.TAG_CONTEXT_TARGET_OFFSET, flat.getContextTargetOffset()); out.writeProperty(BasicNetwork.TAG_CONTEXT_TARGET_SIZE, flat.getContextTargetSize()); out.writeProperty(BasicNetwork.TAG_END_TRAINING, flat.getEndTraining()); out.writeProperty(BasicNetwork.TAG_HAS_CONTEXT, flat.getHasContext()); out.writeProperty(PersistConst.INPUT_COUNT, flat.getInputCount()); out.writeProperty(BasicNetwork.TAG_LAYER_COUNTS, flat.getLayerCounts()); out.writeProperty(BasicNetwork.TAG_LAYER_FEED_COUNTS, flat.getLayerFeedCounts()); out.writeProperty(BasicNetwork.TAG_LAYER_CONTEXT_COUNT, flat.getLayerContextCount()); out.writeProperty(BasicNetwork.TAG_LAYER_INDEX, flat.getLayerIndex()); out.writeProperty(PersistConst.OUTPUT, flat.getLayerOutput()); out.writeProperty(PersistConst.OUTPUT_COUNT, flat.getOutputCount()); out.writeProperty(BasicNetwork.TAG_WEIGHT_INDEX, flat.getWeightIndex()); out.writeProperty(PersistConst.WEIGHTS, flat.getWeights());
/** * {@inheritDoc} */ @Override public void save(final OutputStream os, final Object obj) { final EncogWriteHelper out = new EncogWriteHelper(os); final HopfieldNetwork hopfield = (HopfieldNetwork) obj; out.addSection("HOPFIELD"); out.addSubSection("PARAMS"); out.addProperties(hopfield.getProperties()); out.addSubSection("NETWORK"); out.writeProperty(PersistConst.WEIGHTS, hopfield.getWeights()); out.writeProperty(PersistConst.OUTPUT, hopfield.getCurrentState() .getData()); out.writeProperty(PersistConst.NEURON_COUNT, hopfield.getNeuronCount()); out.flush(); }
out.addSubSection("STATS"); out.addColumn("name"); out.addColumn("isclass"); out.addColumn("iscomplete"); out.addColumn("isint"); out.addColumn("isreal"); out.addColumn("amax"); out.addColumn("amin"); out.addColumn("mean"); out.addColumn("sdev"); out.addColumn("source"); out.writeLine(); out.addColumn(field.getName()); out.addColumn(field.isClass()); out.addColumn(field.isComplete()); out.addColumn(field.isInteger()); out.addColumn(field.isReal()); out.addColumn(field.getMax()); out.addColumn(field.getMin()); out.addColumn(field.getMean()); out.addColumn(field.getStandardDeviation()); out.addColumn(field.getSource()); out.writeLine(); out.flush(); out.addSubSection("CLASSES"); out.addColumn("field");