Skip to content

Commit 9e7cdb2

Browse files
committed
Paper revisions.
1 parent 2ef1357 commit 9e7cdb2

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

joss_paper/paper.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ It allows users to define TensorFlow graphs using Julia syntax, which are interc
3131
Graphs are primarily defined by overloading native Julia functions to operate on a TensorFlow.jl `Tensor` 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 whtether its inputs are TensorFlow tensors or native Julia arrays by utilizing _duck-typing_.
3232

3333
TensorFlow.jl has an elegant, idiomatic Julia syntax. It allows all the usual infix operators such as `+`, `-`, `*` etc. It works seamlessly with Julia's broadcast syntax as well, such as the `.*` operator. This `*` can correspond to matrix multiplication while `.*` corresponds to element-wise multiplication, while Python clients needs distinct `@` (or `matmul`) and `*` (or `multiply`) functions.
34-
It also allows Julia-style indexing (e.g. `x[:, ii + end÷2]`), and concatenation (e.g. `[A B]`, `[x; y; 1]`). Its goal is to be idiomatic for Julia users, while still preserving all the power and maturity of the TensorFlow system. For example, it allows Julia code to operate on TPUs by virtue of using the same TensorFlow graph syntax as Python's TensorFlow client, even though there is no native Julia TPU compiler.
34+
It also allows Julia-style indexing (e.g. `x[:, ii + end÷2]`), and concatenation (e.g. `[A B]`, `[x; y; 1]`). Its goal is to be idiomatic for Julia users while still preserving all the power and maturity of the TensorFlow computational engine.
3535

3636

3737
TensorFlow.jl to carefully balance between matching the Python TensorFlow API and Julia conventions.
@@ -42,9 +42,8 @@ Some examples are shown in the table below.
4242
|---------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
4343
| 1-based indexing | 0-based indexing | 1-based indexing |
4444
| explicit broadcasting | implicit broadcasting | implicit or explicit broadcasting |
45-
| last index at `end` 2nd last in `end-1` | last index at `-1` second last in `-2` | last index at `end` 2nd last in `end-1` |
46-
| Operations in Julia ecosystem namespaces. (`SVD` in `LinearAlgebra`, `erfc` in `SpecialFunctions`, `cos` in `Base`) | All operations TensorFlow's namespaces (`SVD` in `tf.linalg`, `erfc` in `tf.math`, `cos` in `tf.math`, and all reexported from `tf`) | All hand imported Operations in the Julia ecosystems namespaces. (`SVD` in `LinearAlgebra`, `erfc` in `SpecialFunctions`, `cos` in `Base`) Ops that have no other place are in `TensorFlow`. Automatically generated ops are in `Ops` |
47-
| Column Major | Row Major | Row Major |
45+
| last index at `end`, 2nd last in `end-1`, etc. | last index at `-1` second last in `-2` | last index at `end` 2nd last in `end-1` |
46+
| Operations in Julia ecosystem namespaces. (`SVD` in `LinearAlgebra`, `erfc` in `SpecialFunctions`, `cos` in `Base`) | All operations in TensorFlow's namespaces (`SVD` in `tf.linalg`, `erfc` in `tf.math`, `cos` in `tf.math`, and all reexported from `tf`) | Existing Julia functions overloaded to call TensorFlow equivalents when called with TensorFlow arguments | |
4847
| Container types are parametrized by number of dimensions and element type | N/A: does not have a parametric type system | Tensors are parametrized by element type, enabling easy specialization of algorithms for different types. |
4948

5049

0 commit comments

Comments
 (0)