1. NeuronTransferSurvey

NeuronTransferSurvey

Creates a tiled and rotationally symmetric texture based on a style using:
  1. Random noise initialization
  2. Standard VGG19 layers
  3. Operators constraining and enhancing style
  4. Progressive resolution increase
  5. Kaleidoscopic view layer in addition to tiling layer

Subreport: Logs for com.simiacryptus.ref.lang.ReferenceCountingBase

NeuronTransferSurvey.scala:70 executed in 0.00 seconds (0.000 gc):

    () => {
      implicit val implicitLog = log
      // First, basic configuration so we publish to our s3 site
      if (Option(s3bucket).filter(!_.isEmpty).isDefined)
        log.setArchiveHome(URI.create(s"s3://$s3bucket/$className/${log.getId}/"))
      log.onComplete(() => upload(log): Unit)
      val srcImage = ImageArtUtil.loadImage(log, contentUrl, maxResolution)
      log.p(log.jpg(srcImage, "Input Content"))
      for((layer,toDim)<-List(
        //(VGG19.VGG19_1b2, 128),
        //(VGG19.VGG19_1c2, 255),
        //(VGG19.VGG19_1c4, 255),
        (VGG19.VGG19_1d4, 64)
        //(VGG19.VGG19_1e4, 512)
      )) {
        val fromDim = Math.max(0, toDim-64)
        val animationDelay = 1000
        val renderedCanvases = new ArrayBuffer[() => BufferedImage]
        // Execute the main process while registered with the site index
        val registration = registerWithIndexGIF(renderedCanvases.filter(_!=null).map(_ ()), delay = animationDelay)
        withMonitoredGif(() => renderedCanvases.filter(_!=null).map(_ ()), delay = animationDelay) {
          try {
            log.subreport("Neurons in " + layer.name(), (sub:NotebookOutput)=>{
              for ((list, page) <- (fromDim until toDim).toStream.grouped(8).zipWithIndex.toStream) {
                sub.subreport("Page " + page, (sub2: NotebookOutput) => {
                  for (dimensionSelected <- list) {
                    sub2.h2(layer.name() + " " + dimensionSelected)
                    val size = renderedCanvases.size
                    val image = test(layer, dimensionSelected, srcImage)(sub2)
                    if(renderedCanvases.size > size) {
                      renderedCanvases(size) = () => image
                    } else {
                      renderedCanvases += (() => image)
                    }
                  }
                })
              }
            })
            null
          } finally {
            registration.foreach(_.stop()(s3client, ec2client))
          }
        }
      }
    }

Returns

    { }

Input Content

Subreport: Neurons in VGG19_1d4