anchor.diff:          last <- Categorical(nextCharProbs).sample() |> int |> dataset.indexToChar |> string
           prediction <- prediction + last
       prediction
  -
   
   let optimizer = Adam(languageModel, lr=dsharp.tensor(0.001))
   
  
positive.code:         let target = sequences.[i] |> dsharp.tensor
          data, target
  
  let seqLen = 64
  
  // let corpus = "A merry little surge of electricity piped by automatic alarm from the mood organ beside his bed awakened Rick Deckard."
  download "https://storage.googleapis.com/download.tensorflow.org/data/shakespeare.txt" "./shakespeare.txt"
  let corpus = System.IO.File.ReadAllText("./shakespeare.txt")
  
  let dataset = TextDataset(corpus, seqLen)
  let loader = dataset.loader(batchSize=16, shuffle=true)
  
  let rnn = RNN(dataset.numChars, 512, numLayers=2, batchFirst=true)
  let languageModel =
  
negative.code:         printfn "%A Epoch: %A/%A minibatch: %A/%A loss: %A" (System.DateTime.Now - start) epoch epochs (i+1) loader.length (float loss)
  
          if i % validInterval = 0 then
              printfn "\nSample from language model:\n%A\n" (predict "We " 512)
  
              languageModel.saveParameters(modelFileName)
  
  