-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
First documentation of the light API (#44)
* documentation * remove rstcheck, too many bugs * add missing link * fix unit test * fix documentation * unstable * windows * update titles * minorchanges
- Loading branch information
Showing
22 changed files
with
1,012 additions
and
61 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
validation.docs | ||
=============== | ||
|
||
make_euclidean | ||
++++++++++++++ | ||
|
||
.. autofunction:: onnx_array_api.validation.docs.make_euclidean |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -22,3 +22,4 @@ API | |
tools | ||
profiling | ||
f8 | ||
docs |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,5 +6,7 @@ Tutorial | |
.. toctree:: | ||
:maxdepth: 1 | ||
|
||
overview | ||
onnx_api | ||
light_api | ||
numpy_api | ||
benchmarks |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
.. _l-light-api: | ||
|
||
========================================== | ||
Light API for ONNX: everything in one line | ||
========================================== | ||
|
||
It is inspired from the :epkg:`reverse Polish notation`. | ||
Following example implements the euclidean distance. | ||
This API tries to keep it simple and intuitive to short functions. | ||
|
||
.. runpython:: | ||
:showcode: | ||
|
||
import numpy as np | ||
from onnx_array_api.light_api import start | ||
from onnx_array_api.plotting.text_plot import onnx_simple_text_plot | ||
|
||
model = ( | ||
start() | ||
.vin("X") | ||
.vin("Y") | ||
.bring("X", "Y") | ||
.Sub() | ||
.rename("dxy") | ||
.cst(np.array([2], dtype=np.int64), "two") | ||
.bring("dxy", "two") | ||
.Pow() | ||
.ReduceSum() | ||
.rename("Z") | ||
.vout() | ||
.to_onnx() | ||
) | ||
|
||
print(onnx_simple_text_plot(model)) | ||
|
||
There are two kinds of methods, the graph methods, playing with the graph structure, | ||
and the methods for operators starting with an upper letter. | ||
|
||
Graph methods | ||
============= | ||
|
||
Any graph must start with function :func:`start <onnx_array_api.light_api.start>`. | ||
It is usually following by `vin` to add an input. | ||
|
||
* bring (:meth:`Var.bring <onnx_array_api.light_api.Var.bring>`, | ||
:meth:`Vars.bring <onnx_array_api.light_api.Vars.bring>`): | ||
assembles multiple results into a set before calling an operator taking mulitple inputs, | ||
* cst (:meth:`Var.cst <onnx_array_api.light_api.Var.cst>`, | ||
:meth:`Vars.cst <onnx_array_api.light_api.Vars.cst>`): | ||
adds a constant tensor to the graph, | ||
* rename (:meth:`Var.rename <onnx_array_api.light_api.Var.rename>`, | ||
:meth:`Vars.rename <onnx_array_api.light_api.Vars.rename>`): | ||
renames or give a name to a variable in order to call it later. | ||
* vin (:meth:`Var.vin <onnx_array_api.light_api.Var.vin>`, | ||
:meth:`Vars.vin <onnx_array_api.light_api.Vars.vin>`): | ||
adds an input to the graph, | ||
* vout (:meth:`Var.vout <onnx_array_api.light_api.Var.vout>`, | ||
:meth:`Vars.vout <onnx_array_api.light_api.Vars.vout>`): | ||
declares an existing result as an output. | ||
|
||
These methods are implemented in class :class:`onnx_array_api.light_api.var.BaseVar` | ||
|
||
Operator methods | ||
================ | ||
|
||
They are described in :epkg:`ONNX Operators` and redefined in a stable API | ||
so that the definition should not change depending on this opset. | ||
:class:`onnx_array_api.light_api.Var` defines all operators taking only one input. | ||
:class:`onnx_array_api.light_api.Vars` defines all other operators. | ||
|
||
Numpy methods | ||
============= | ||
|
||
Numpy users expect methods such as `reshape`, property `shape` or | ||
operator `+` to be available as well and that the case. They are | ||
defined in class :class:`Var <onnx_array_api.light_api.Var>` or | ||
:class:`Vars <onnx_array_api.light_api.Vars>` depending on the number of | ||
inputs they require. Their name starts with a lower letter. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.