Software Organization¶
The autograd package organized into various modules. Our basic directory structure will look as follows:
cs207-FinalProject/
autograd/
__init__.py
blocks/
__init__.py
block.py
expo.py
hyperbolic.py
operations.py
trigo.py
tests/
__init__.py
test_basic.py
test_autograd.py
...
config.py
node.py
utils.py
variable.py
optimize.py
docs/
dev_milestones/
milestone1.md
milestone2.md
...
README.md
requirements.txt
setup.py
Demo_Notebook.ipynb
The autograd package is organized into a few key modules:
block.py
: objects implementing the core computational units of the graph, namelydata_fn
(f(x)) andgradient_fn
(f’(x)).- Within the blocks submodule, there additional block operations - categorized by operation type.
variable.py
: data structure containing the function value and gradient valueutils.py
: general utility functions that are reused throughout the projectoptimize.py
: contains the optimizer classes and functionsnode.py
: contains the node class and computational graph class for reverse modeconfig.py
: Stores all the nodes for reverse modetests
: contain all the tests, divided by which module is being testeddocs
: contains development milestones in a sub directory, also contains useful information about the project, hosted on read the docs.