TensorFlow.jl: An Idiomatic Julia Front End for TensorFlow
Jonathan Malmaud, Lyndon White · The Journal of Open Source Software · 2018
TensorFlow.jl is a Julia (Bezanson, Edelman, Karpinski, & Shah, 2017) client library for the TensorFlow deep-learning framework (Abadi et al., 2015), (Abadi et al., 2016).It allows users to define TensorFlow graphs using Julia syntax, which are interchangeable with the graphs produced by Google's first-party Python TensorFlow client and can be used to perform training or inference on machine-learning models.Graphs are primarily defined by overloading native Julia functions to operate on a Ten-sorFlow.jlTensor type, which represents a node in a TensorFlow computational graph.This overloading is powered by Julia's powerful multiple-dispatch system, which in turn allows allows the vast majority of Julia's existing array-processing functionality to work as well on the new Tensor type as they do on native Julia arrays.User code is often unaware and thereby reusable with respect to whether its inputs are TensorFlow tensors or native Julia arrays by utilizing duck-typing.