@@ -12,17 +12,15 @@ inequality constraints, {ci}. PYIPM uses a line search interior-point
12
12
method to search for an x that is a feasible local minimizer of a
13
13
user-defined nonlinear program.
14
14
15
- ## Shift to Theano-PyMC
15
+ ## Shift to Aesara
16
16
17
17
Originally, this module used the Theano library maintained by the
18
18
Montreal Institute for Learning Algorithms. The original version of
19
- Theano was deprecated in 2017. Fortunately, the PyMC team has taken
19
+ Theano was deprecated in 2017. Fortunately, the Aesara dev team has taken
20
20
over maintenance of Theano in a fork called
21
- [ Theano-PyMC] ( https://github.com/pymc-devs/Theano-PyMC ) . The install
22
- script (setup.py) now installs Theano-PyMC instead of Theano as a
23
- dependency. That said, this module is still compatible with deprecated
24
- Theano so you may choose to continue using deprecated Theano (at least
25
- as long as your architecture can still run it).
21
+ [ Aesara] ( https://github.com/aesara-devs/aesara ) . The install
22
+ script (setup.py) now installs Aesara instead of Theano as a
23
+ dependency.
26
24
27
25
## Getting Started
28
26
@@ -35,14 +33,14 @@ Using PYIPM requires either a python 3 or python 2.7 interpreter. In
35
33
addition to having python installed, the following packages are
36
34
required:
37
35
38
- NumPy, SciPy, Theano-PyMC
36
+ NumPy, SciPy, Aesara
39
37
40
- Theano is used to speed up the code execution through parallelization
38
+ Aesara is used to speed up the code execution through parallelization
41
39
and compilations of certain functions used in PYIPM. Furthermore,
42
- Theano makes it possible to perform many of largest steps in the
40
+ Aesara makes it possible to perform many of largest steps in the
43
41
algorithm on graphics processing units (GPUs). For information on
44
- using the GPUs, see the Theano documentation at
45
- http ://deeplearning.net/software/theano / .
42
+ using the GPUs, see the Aesara documentation at
43
+ https ://aesara.readthedocs.io/en/latest / .
46
44
47
45
All of the above required packages may be installed through pip.
48
46
@@ -128,14 +126,14 @@ minimum if you compare the 'Ground truth' line to the 'Solver
128
126
solution' line.
129
127
130
128
These example problems can also be used as a guide to construct your
131
- own problems which may be helpful if you are unfamiliar with Theano .
129
+ own problems which may be helpful if you are unfamiliar with Aesara .
132
130
133
131
## Building and solving your own problems
134
132
135
133
The basics of writing your own problem statements are to define the
136
134
objective function, f, the equality constraints function, ce, and the
137
135
inequality constraints function, ci, as symbolic expressions that
138
- depend on the Theano tensor variable, x_dev. The tensor variable x_dev
136
+ depend on the Aesara tensor variable, x_dev. The tensor variable x_dev
139
137
is the symbolic input to all of the aforementioned functions that
140
138
represents the weights, x.
141
139
@@ -175,17 +173,17 @@ kkt = the Karush-Kuhn-Tucker (KKT) conditions (length 4 list of NumPy
175
173
arrays)
176
174
177
175
The reason why compiling f, ce, and ci would cause errors in this case
178
- is because PYIPM uses Theano 's symbolic differentation functionality
176
+ is because PYIPM uses Aesara 's symbolic differentation functionality
179
177
to generate expressions for the gradients, df, dce, and dci, and, if
180
178
the exact Hessian is being used, the Hessians, d2f, d2ce, and
181
179
d2ci. Unfortunately, once these expressions are compiled, they cannot
182
180
be used for symbolic differentiation. That is not to say, however,
183
- that you cannot use theano .function() to precompile your expressions
181
+ that you cannot use aesara .function() to precompile your expressions
184
182
into functions. You can do that at your own convenience so long as you
185
183
provide your own symbolic expressions or functions for df, dce, and
186
184
dci and, if applicable, d2f, d2ce, and d2ci. It is worth pointing out,
187
185
however, that PYIPM does much more than just automatic differentiation
188
- (through Theano ) and compiling your expressions; PYIPM also organizes
186
+ (through Aesara ) and compiling your expressions; PYIPM also organizes
189
187
these inputs into an overall gradient and Hessian. To take full
190
188
advantage of PYIPM for larger problems, it is best to provide PYIPM
191
189
with expressions such that it can construct and compile the symbolic
@@ -218,8 +216,8 @@ it to 0 or False.
218
216
219
217
For a more thorough guide to the parameters and public class
220
218
functions, see the docstring of class IPM in pyipm.py. For more
221
- information about how to build and compile expressions, see the Theano
222
- documentation at http ://deeplearning.net/software/theano / .
219
+ information about how to build and compile expressions, see the Aesara
220
+ documentation at https ://aesara.readthedocs.io/en/latest / .
223
221
224
222
# Contributing, help, bug reporting, etc.
225
223
0 commit comments