diff options
Diffstat (limited to 'tests/sketch/tools/Converter.java')
-rw-r--r-- | tests/sketch/tools/Converter.java | 225 |
1 files changed, 0 insertions, 225 deletions
diff --git a/tests/sketch/tools/Converter.java b/tests/sketch/tools/Converter.java deleted file mode 100644 index 5db2769..0000000 --- a/tests/sketch/tools/Converter.java +++ /dev/null @@ -1,225 +0,0 @@ -import java.io.File; -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.Closeable; -import java.io.DataOutputStream; -import java.io.FileOutputStream; -import java.io.DataInputStream; -import java.io.FileInputStream; -import java.io.BufferedInputStream; - -/** - * Converts text-based letter stores to binary-based stores. - */ -public class Converter { - private final File mFile; - private static final short VERSION_NUMBER = 1; - - Converter(File file) { - mFile = file; - } - - private void convert() { - boolean read = false; - - String[] classes = null; - int iCount = 0; - int hCount = 0; - int oCount = 0; - float[][] iWeights = null; - float[][] oWeights = null; - - BufferedReader reader = null; - - try { - reader = new BufferedReader(new FileReader(mFile)); - - long start = System.nanoTime(); - - String line = reader.readLine(); - int startIndex = 0; - int endIndex; - endIndex = line.indexOf(" ", startIndex); - iCount = Integer.parseInt(line.substring(startIndex, endIndex)); - - startIndex = endIndex + 1; - endIndex = line.indexOf(" ", startIndex); - hCount = Integer.parseInt(line.substring(startIndex, endIndex)); - - startIndex = endIndex + 1; - endIndex = line.length(); - oCount = Integer.parseInt(line.substring(startIndex, endIndex)); - - classes = new String[oCount]; - line = reader.readLine(); - startIndex = 0; - - for (int i = 0; i < oCount; i++) { - endIndex = line.indexOf(" ", startIndex); - classes[i] = line.substring(startIndex, endIndex); - startIndex = endIndex + 1; - } - - iWeights = new float[hCount][]; - for (int i = 0; i < hCount; i++) { - iWeights[i] = new float[iCount + 1]; - line = reader.readLine(); - startIndex = 0; - for (int j = 0; j <= iCount; j++) { - endIndex = line.indexOf(" ", startIndex); - iWeights[i][j] = Float.parseFloat(line.substring(startIndex, endIndex)); - startIndex = endIndex + 1; - } - } - - oWeights = new float[oCount][]; - for (int i = 0; i < oCount; i++) { - oWeights[i] = new float[hCount + 1]; - line = reader.readLine(); - startIndex = 0; - for (int j = 0; j <= hCount; j++) { - endIndex = line.indexOf(" ", startIndex); - oWeights[i][j] = Float.parseFloat(line.substring(startIndex, endIndex)); - startIndex = endIndex + 1; - } - } - - long end = System.nanoTime(); - System.out.println("time to read text file = " + - ((end - start) / 1000.0f / 1000.0f) + " ms"); - - read = true; - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } finally { - close(reader); - } - - if (read) { - boolean wrote = false; - DataOutputStream out = null; - - try { - out = new DataOutputStream(new FileOutputStream(mFile)); - - out.writeShort(VERSION_NUMBER); - out.writeInt(iCount); - out.writeInt(hCount); - out.writeInt(oCount); - - for (String aClass : classes) { - out.writeUTF(aClass); - } - - for (float[] weights : iWeights) { - for (float weight : weights) { - out.writeFloat(weight); - } - } - - for (float[] weights : oWeights) { - for (float weight : weights) { - out.writeFloat(weight); - } - } - - out.flush(); - - wrote = true; - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } finally { - close(out); - } - - if (wrote) { - DataInputStream in = null; - - try { - in = new DataInputStream(new BufferedInputStream(new FileInputStream(mFile))); - - long start = System.nanoTime(); - - in.readShort(); - iCount = in.readInt(); - hCount = in.readInt(); - oCount = in.readInt(); - - classes = new String[oCount]; - for (int i = 0; i < classes.length; i++) { - classes[i] = in.readUTF(); - } - - iWeights = new float[hCount][]; - for (int i = 0; i < iWeights.length; i++) { - iWeights[i] = new float[iCount]; - for (int j = 0; j < iCount; j++) { - iWeights[i][j] = in.readFloat(); - } - } - - oWeights = new float[oCount][]; - for (int i = 0; i < oWeights.length; i++) { - oWeights[i] = new float[hCount]; - for (int j = 0; j < hCount; j++) { - oWeights[i][j] = in.readFloat(); - } - } - - long end = System.nanoTime(); - System.out.println("time to read binary file = " + - ((end - start) / 1000.0f / 1000.0f) + " ms"); - - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } finally { - close(in); - } - } - } - } - - private static void close(Closeable reader) { - if (reader != null) { - try { - reader.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - - public static void main(String[] args) { - String fileName = args[0]; - if (fileName != null) { - File file = new File(fileName); - if (!file.exists()) { - printHelp(fileName); - } else { - new Converter(file).convert(); - } - } else { - printHelp(null); - } - } - - private static void printHelp(String name) { - if (name == null) { - System.out.println("You must specify the name of the file to convert:"); - } else { - System.out.println("The specified file does not exist: " + name); - } - System.out.println("java Converter [filename]"); - System.out.println(""); - System.out.println("\t[filename]\tPath to the file to convert. The file is replaced by " - + "the conversion result."); - } -}
\ No newline at end of file |