Theano дает TypeError: объект 'Add' не повторяется - PullRequest
0 голосов
/ 28 марта 2019

Я использую anaconda в Linux, я установил соответствующие пакеты. Я пытаюсь выучить theano, для простоты я хочу запустить следующие коды

    from sympy.printing.theanocode import theano_function
    import sympy as sp
    import numpy as np

    x, y, z = sp.symbols('x y z')
    f = sp.sin(x)*sp.cos(y)*sp.sin(z) + sp.sin(4*(x - y**2*sp.sin(z)))
    xg, yg, zg = np.mgrid[0:1:50*1j, 0:1:50*1j, 0:1:50*1j]

    theano_f = theano_function([x, y, z], f, dims={x: 3, y: 3, z: 3})

    ######################### 
    In [1]: %timeit theano_f(xg, yg, zg)

после вопроса в здесь . Однако я получаю следующую ошибку:

  File "/home/user/anaconda3/lib/python3.6/site-packages/spyder_kernels/customize/spydercustomize.py", line 786, in runfile
    execfile(filename, namespace)

  File "/home/user/anaconda3/lib/python3.6/site-packages/spyder_kernels/customize/spydercustomize.py", line 110, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "/home/user/desktop/scripts/Anaconda3pros/pros/den.py", line 9, in <module>
    theano_f = theano_function([x, y, z], f, dims={x: 3, y: 3, z: 3})

  File "/home/user/anaconda3/lib/python3.6/site-packages/sympy/printing/theanocode.py", line 235, in theano_function
    toutputs = list(map(code, outputs))

TypeError: 'Add' object is not iterable

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 28 марта 2019

Я попытался включить f в список в theano_function, и он запустился без ошибок. Дайте мне знать, если он даст желаемый результат.

from sympy.printing.theanocode import theano_function
import sympy as sp
import numpy as np

x, y, z = sp.symbols('x y z')
f = sp.sin(x)*sp.cos(y)*sp.sin(z) + sp.sin(4*(x - y**2*sp.sin(z)))
xg, yg, zg = np.mgrid[0:1:50*1j, 0:1:50*1j, 0:1:50*1j]

theano_f = theano_function([x, y, z], [f], dims={x: 3, y: 3, z: 3})
...