On Mon, Mar 15, 2021 at 5:07 PM Brandon T. Willard
<
brandon...@gmail.com> wrote:
>
> Same here. I also am interested in more background on the fork. Theano
> itself was supposed to be "dead" a few years ago when the original
> developers stopped working on it, but then the pymc developers picked
> up maintenance.
>
> The PyMC group are also maintainers of the original Theano repo, but, per request of the original maintainers, we are not making changes to the Theano repo. The Theano repo really should be frozen, but I'm assuming that we're leaving that up to the original maintainers.
So I guess I was misinformed. I had understood that PyMC was taking
over development of theano. But if you can't actually make any changes
or releases for it, then you can't actually do that, and have no
choice but to fork.
>
> Could the same thing happen again?
>
> Could development stop on Aesara as it did with Theano? If that's the question you're asking, the answer is that it's always possible, but unlikely to occur any time soon. There's still a real place for a primarily Python-driven tensor library with a (relatively) accessible codebase. Also, for PyMC's purposes and future, we need to work more and more at the tensor library level, so it's important that the development requirements not skyrocket, and that the underlying library not make detrimental design and/or implementation changes.
No I meant could theano be revived again? But it sounds like it wasn't
actually "revived" in the first place.
>
> Also, I had heard that pymc was dropping theano in favor of tensorflow
> (do I remember this correctly?). Is this still planned, or has that
> changed to be aesara now?
>
> Since this announcement, we've dropped all plans to implement the next version of PyMC in TensorFlow. The reason: it's possible for us to have the kind of tensor library described above and use other backends, when desired. I wrote a quick example of how we can convert Theano graphs to JAX "graphs", and that was enough to prove the point.
>
> My original plan was to use SymPy for all this, but it would've resulted in a distinct project anyway, because doing all that work via changes to SymPy would've most likely taken too long.
I tend to agree with this decision. SymPy uses unevaluated expressions
(or "graphs" as the tensor people call it, which is a term I'm not
fond of), but it's really not designed to build arbitrary symbolic
systems. The main thing it is designed for is representing
mathematical expression. So you'd run into a lot of problems with
SymPy. For example, the core SymPy expressions automatically evaluate
and don't distinguish certain equivalent expressions. It's lower
fidelity than a pure AST, because the primary thing it cares about is
mathematics. You would end up building all of the expression classes
from scratch, in which case, you would be better off just building
your own thing instead of building on top of SymPy.
With that being said, some of these limitations also limit what SymPy
itself can do, so we still are interested in removing them. But they
are indeed a lot of work.
Aaron Meurer
> To view this discussion on the web visit
https://groups.google.com/d/msgid/sympy/9edbf828-2510-4aa0-a3f8-88a35d60263cn%40googlegroups.com.