Tensorflow_scala v0.3.0 Release Notes

Release Date: 2018-10-10 // over 5 years ago
  • ๐Ÿš€ With this release we have finally added support for static data type
    information for tensors (not for symbolic tensors yet though -- for now
    ๐Ÿ‘ we effectively have support for a statically-typed version of numpy
    for Scala). This is an important milestone and contributes significantly
    to type safety, which can help catch errors at compile time, rather than
    โš™ runtime. For example:

    val t1 = Tensor(0.5, 1) // The inferred type is Tensor[FLOAT64].val t2 = Tensor(1, 2) // The inferred type is Tensor[INT32].val t3 = t1 + t2 // The inferred type is Tensor[FLOAT64].val t4 = t3.isNaN // The inferred type is Tensor[BOOLEAN].val t5 = t3.any() // Fails at compile-time because `any()` is only// supported for Tensor[BOOLEAN].
    

    Other new features include:

    • ๐Ÿ‘Œ Improvements to the high-level learn API:
      • Layers can now provide and use their own parameter generator, and
        can also access the current training step
        (using Layer.currentStep).
      • Layers now support .map(...).
      • Added support for batch normalization.
    • โž• Added support for tf.logSigmoid and tf.lrn.
    • โž• Added support for the following new metrics:
      • Grouped precision.
      • Precision-at-k.
    • data module:
      • Added support for loading the extreme classification repository
        datasets (i.e., data.XCLoader).
      • Added support for randomly splitting datasets.