Beispiel #1
0
def plotNetworkState(experiment, plotVerbosity, trainingPasses, phase=""):

  if plotVerbosity >= 1:
    rcParams["figure.figsize"] = _PLOT_WIDTH, _PLOT_HEIGHT

    # Plot Union SDR trace
    dataTrace = experiment.up._mmTraces["activeCells"].data
    unionSizeTrace = [len(datum) for datum in dataTrace]
    x = [i for i in xrange(len(unionSizeTrace))]
    stdDevs = None
    title = "Union Size; {0} training passses vs. Time".format(trainingPasses)
    data_utils.getErrorbarFigure(title, x, unionSizeTrace, stdDevs, "Time",
                                 "Union Size")
    if plotVerbosity >= 2:
      title = "training passes: {0}, phase: {1}".format(trainingPasses, phase)
      experiment.up.mmGetPlotConnectionsPerColumn(title=title)
      experiment.tm.mmGetCellActivityPlot(title=title,
                                          activityType="activeCells",
                                          showReset=True,
                                          resetShading=_PLOT_RESET_SHADING)
      experiment.tm.mmGetCellActivityPlot(title=title,
                                          activityType="predictedActiveCells",
                                          showReset=True,
                                          resetShading=_PLOT_RESET_SHADING)
      experiment.up.mmGetCellActivityPlot(title=title,
                                          showReset=True,
                                          resetShading=_PLOT_RESET_SHADING)
def main(inputPath, csvOutputPath, imgOutputPath):
  # remove existing /overlaps.csv if present
  if os.path.exists(csvOutputPath + _OVERLAPS_FILE_NAME):
    os.remove(csvOutputPath + _OVERLAPS_FILE_NAME)

  if not os.path.exists(csvOutputPath):
    os.makedirs(csvOutputPath)

  if not os.path.exists(imgOutputPath):
    os.makedirs(imgOutputPath)

  print "Computing Union SDR overlap between SDR traces in following dir:"
  print inputPath + "\n"

  files = os.listdir(inputPath)
  if len(files) != 2:
    print "Found {0} files at input path. Requires exactly 2.".format(inputPath)
    sys.exit(1)

  pathNoLearn = inputPath + "/" + files[0]
  pathLearn = inputPath + "/" + files[1]

  print "Comparing files..."
  print pathLearn
  print pathNoLearn + "\n"

  # Load source A
  with open(pathLearn, "rU") as fileA:
    csvReader = csv.reader(fileA)
    dataA = [line for line in csvReader]
  unionSizeA = [len(datum) for datum in dataA]

  # Load source B
  with open(pathNoLearn, "rU") as fileB:
    csvReader = csv.reader(fileB)
    dataB = [line for line in csvReader]
  unionSizeB = [len(datum) for datum in dataB]

  assert len(dataA) == len(dataB)

  # To display all plots on the same y scale
  yRangeMax = 1.05 * max(max(unionSizeA), max(unionSizeB))

  # Plot union size for data A
  x = [i for i in xrange(len(dataA))]
  stdDevs = None
  title = "Union Size with Learning vs. Time"
  data_utils.getErrorbarFigure(title, x, unionSizeA, stdDevs, "Time",
                               "Union Size", yRangeMax=yRangeMax)
  figPath = "{0}/{1}.png".format(imgOutputPath, title)
  plt.savefig(figPath, bbox_inches="tight")

  # Plot union size for data B and save image
  title = "Union Size without Learning vs. Time"
  data_utils.getErrorbarFigure(title, x, unionSizeB, stdDevs, "Time",
                               "Union Size", yRangeMax=yRangeMax)
  figPath = "{0}/{1}.png".format(imgOutputPath, title)
  plt.savefig(figPath, bbox_inches="tight")

  with open(csvOutputPath + _OVERLAPS_FILE_NAME, "wb") as outputFile:
    csvWriter = csv.writer(outputFile)
    overlaps = [getOverlap(dataA[i], dataB[i]) for i in xrange(len(dataA))]
    csvWriter.writerow(overlaps)
    outputFile.flush()

  # Plot overlap and save image
  title = "Learn-NoLearn Union SDR Overlap vs. Time"
  data_utils.getErrorbarFigure(title, x, overlaps, stdDevs, "Time","Overlap",
                               yRangeMax=yRangeMax)
  figPath = "{0}/{1}.png".format(imgOutputPath, title)
  plt.savefig(figPath, bbox_inches="tight")

  raw_input("Press any key to exit...")
Beispiel #3
0
def main(inputPath, csvOutputPath, imgOutputPath):
    # remove existing /overlaps.csv if present
    if os.path.exists(csvOutputPath + _OVERLAPS_FILE_NAME):
        os.remove(csvOutputPath + _OVERLAPS_FILE_NAME)

    if not os.path.exists(csvOutputPath):
        os.makedirs(csvOutputPath)

    if not os.path.exists(imgOutputPath):
        os.makedirs(imgOutputPath)

    print "Computing Union SDR overlap between SDR traces in following dir:"
    print inputPath + "\n"

    files = os.listdir(inputPath)
    if len(files) != 2:
        print "Found {0} files at input path {1} - Requires exactly 2.".format(
            len(files), inputPath)
        sys.exit(1)

    pathNoLearn = inputPath + "/" + files[0]
    pathLearn = inputPath + "/" + files[1]

    print "Comparing files..."
    print pathLearn
    print pathNoLearn + "\n"

    # Load source A
    with open(pathLearn, "rU") as fileA:
        csvReader = csv.reader(fileA)
        dataA = [line for line in csvReader]
    unionSizeA = [len(datum) for datum in dataA]

    # Load source B
    with open(pathNoLearn, "rU") as fileB:
        csvReader = csv.reader(fileB)
        dataB = [line for line in csvReader]
    unionSizeB = [len(datum) for datum in dataB]

    assert len(dataA) == len(dataB)

    # To display all plots on the same y scale
    yRangeMax = 1.05 * max(max(unionSizeA), max(unionSizeB))

    # Plot union size for data A
    x = [i for i in xrange(len(dataA))]
    stdDevs = None
    title = "Union Size with Learning vs. Time"
    data_utils.getErrorbarFigure(title,
                                 x,
                                 unionSizeA,
                                 stdDevs,
                                 "Time",
                                 "Union Size",
                                 yRangeMax=yRangeMax)
    figPath = "{0}/{1}.png".format(imgOutputPath, title)
    plt.savefig(figPath, bbox_inches="tight")

    # Plot union size for data B and save image
    title = "Union Size without Learning vs. Time"
    data_utils.getErrorbarFigure(title,
                                 x,
                                 unionSizeB,
                                 stdDevs,
                                 "Time",
                                 "Union Size",
                                 yRangeMax=yRangeMax)
    figPath = "{0}/{1}.png".format(imgOutputPath, title)
    plt.savefig(figPath, bbox_inches="tight")

    with open(csvOutputPath + _OVERLAPS_FILE_NAME, "wb") as outputFile:
        csvWriter = csv.writer(outputFile)
        overlaps = [getOverlap(dataA[i], dataB[i]) for i in xrange(len(dataA))]
        csvWriter.writerow(overlaps)
        outputFile.flush()

    # Plot overlap and save image
    title = "Learn-NoLearn Union SDR Overlap vs. Time"
    data_utils.getErrorbarFigure(title,
                                 x,
                                 overlaps,
                                 stdDevs,
                                 "Time",
                                 "Overlap",
                                 yRangeMax=yRangeMax)
    figPath = "{0}/{1}.png".format(imgOutputPath, title)
    plt.savefig(figPath, bbox_inches="tight")

    raw_input("Press any key to exit...")