我们如何获得 theano 表达式所依赖的变量列表?

How do we get the list of variables that a theano expression depends on?

出于同情,我想要这样的东西:

In [6]: import sympy as sp

In [7]: sp.var('x, y')
Out[7]: (x, y)

In [8]: X = x + y

In [9]: X.free_symbols
Out[9]: {y, x}

得到X依赖的变量。这非常方便,因为如果我们之后想做一个 lambdify:

f = sp.lambdify(tuple(X.free_symbols), X)

我想用theano做一些类似的事情:

import theano
import theano.tensor as T
x, y = T.dvectors('x', 'y')
X = x + y
f = theano.function([x, y ], X)

但是,我不想提供 [x,y],而是想直接访问创建 theano.function

所需的变量列表

可能吗?如果是这样,我没有在 theano 文档中找到它,所以任何帮助或 link 将不胜感激 :)

有些 theano 函数不是很好 doc-ed 因为主要供内部使用。

import theano
import theano.tensor as T
x, y = T.vectors('xy')
z = x+y
theano.gof.graph.inputs([z])

输出:

[x, y]