📄 joonejob.java
字号:
package org.joone.dte;import net.jini.space.JavaSpace;import org.tiling.computefarm.AbstractJob;import org.joone.net.NeuralNet;import java.util.*;import java.io.*;public class JooneJob extends AbstractJob { private TaskFactory taskFactory; private String saveFolder = null; private OutputStream logStream = null; private String name = ""; private int numTasks = 0; private StopCondition control; private Selector selector; public JooneJob() { } public synchronized void generateTasks(JavaSpace javaSpace) { numTasks = 0; sendReloadClassesSignal(javaSpace); System.out.println("----1"); NeuralNet net = taskFactory.getNextTask(); while (net != null) { writeTask(javaSpace, new NetTaskEntry(net.cloneNet())); System.out.println("----2"); ++numTasks; net = taskFactory.getNextTask(); } notifyAll(); } public synchronized void collectResults(JavaSpace javaSpace) { // Waits until all the task are written System.out.println("----3"); try { while (numTasks == 0) { System.out.println("----4"); wait(); } } catch (InterruptedException ie) { return; } System.out.println("----5"); DataOutput log = null; try { logStream = new FileOutputStream(getLogName()); log = new DataOutputStream(logStream); if (log != null) { log.writeBytes("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); log.writeBytes("<!DOCTYPE beans PUBLIC \"-//SPRING//DTD BEAN//EN\" \"http://www.springframework.org/dtd/spring-beans.dtd\">\n"); log.writeBytes("<beans>\n"); log.writeBytes("<bean id=\""+getName()+"\" class=\"org.joone.dte.TaskList\">\n"); log.writeBytes("<property name=\"tasks\">\n"); log.writeBytes("\t<list>\n"); } // Collects the results from JavaSpace for (int i = 0; i < numTasks; i++) { NeuralNet result = (NeuralNet)takeResult(javaSpace); // write serialized result to file System.out.print("Received net: "+getName()+"-"+(i+1)); File resultFile = new File(saveFolder,getName()+"_#p"+(i+1)+".snet"); FileOutputStream stream = new FileOutputStream(resultFile); ObjectOutput output = new ObjectOutputStream(stream); output.writeObject(result); System.out.println(" - Written to: "+resultFile.getAbsolutePath()); //write to log file if (log != null) { log.writeBytes("\t\t<bean class=\"org.joone.dte.TaskDescriptor\">\n"); log.writeBytes("\t\t\t<property name=\"netName\"><value>"+result.getLayerName()+"</value></property>\n"); log.writeBytes("\t\t\t<property name=\"netFile\"><value>"+resultFile.getAbsolutePath()+"</value></property>\n"); log.writeBytes("\t\t\t<property name=\"trainingRmse\"><value>"+result.getDescriptor().getTrainingError()+"</value></property>\n"); log.writeBytes("\t\t\t<property name=\"validationRmse\"><value>"+result.getDescriptor().getValidationError()+"</value></property>\n"); log.writeBytes("\t\t\t<property name=\"date\"><value>"+new Date().toString()+"</value></property>\n"); log.writeBytes("\t\t</bean>\n"); } } if (log != null) { log.writeBytes("\t</list>\n"); log.writeBytes("</property>\n"); log.writeBytes("</bean>\n"); log.writeBytes("</beans>"); } } catch (Exception e) { System.err.println("JooneJob:collectResults:Job aborted due to exception:"); e.printStackTrace(); } } protected String getLogName() { return saveFolder+"log"+name+".xml"; } /** * Getter for property name. * @return Value of property name. */ public java.lang.String getName() { return name; } /** * Setter for property name. * @param name New value of property name. */ public void setName(java.lang.String name) { this.name = name; } /** * Getter for property taskFactory. * @return Value of property taskFactory. */ public org.joone.dte.TaskFactory getTaskFactory() { return taskFactory; } /** * Setter for property taskFactory. * @param taskFactory New value of property taskFactory. */ public void setTaskFactory(org.joone.dte.TaskFactory taskFactory) { this.taskFactory = taskFactory; if (taskFactory != null) taskFactory.initialize(); numTasks = 0; } /** * Getter for property saveFolder. * @return Value of property saveFolder. */ public java.lang.String getSaveFolder() { return saveFolder; } /** * Setter for property saveFolder. * @param saveFolder New value of property saveFolder. */ public void setSaveFolder(java.lang.String saveFolder) { this.saveFolder = saveFolder; } /** * Getter for property control. * @return Value of property control. */ public StopCondition getControl() { return control; } /** * Setter for property control. * @param control New value of property control. */ public void setControl(StopCondition control) { this.control = control; } /** * Getter for property selector. * @return Value of property selector. */ public org.joone.dte.Selector getSelector() { return selector; } /** * Setter for property selector. * @param selector New value of property selector. */ public void setSelector(org.joone.dte.Selector selector) { this.selector = selector; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -