Я использую Theano (пакет python для глубокого обучения), но я очень к этому знаком, и у меня возникает проблема с термином в моей функции потерь. Этот термин включает в себя взятие логарифма определителя матрицы; матрица является функцией слоя скрытых единиц в моей сети. импортировать тензорные и Tensor.nlinalg:Логарифмический определитель в функции потери звука в Anano
import theano
import theano.tensor as T
import theano.tensor.nlinalg as Tnlinalg
, а затем придерживаться этого термина в моей функции потерь:
my_mat_det = Tnlinalg.Det(computed_matrix)
log_det_term = -T.log(my_mat_det)
, но когда я пытаюсь обучить его, я получаю следующее исключение и отслеживающие:
File "/SdaModule.py", line 88, in __init__
log_det_term = -T.log(my_mat_det)
File "/home/username/anaconda/lib/python2.7/site-packages/theano/gof/op.py", line 481, in __call__
node = self.make_node(*inputs, **kwargs)
File "/home/username/anaconda/lib/python2.7/site-packages/theano/tensor/elemwise.py", line 527, in make_node
inputs = map(as_tensor_variable, inputs)
File "/home/username/anaconda/lib/python2.7/site-packages/theano/tensor/basic.py", line 202, in as_tensor_variable
raise AsTensorError("Cannot convert %s to TensorType" % str_x, type(x))
theano.tensor.var.AsTensorError: ('Cannot convert Det to TensorType', <class 'theano.tensor.nlinalg.Det'>)
Может кто-нибудь предложить какие-либо советы? Приветствия, Майк