提交 a52f970e authored 作者: Reyhane Askari's avatar Reyhane Askari 提交者: GitHub

Merge pull request #5756 from shawntan/issue-5742-2

#5742 Removed theano/sandbox/linalg/ops.py and theano/sandbox/linalg/tests/test_linalg.py from flake8 whitelist
from __future__ import absolute_import, print_function, division
from .ops import (cholesky, matrix_inverse, solve,
diag, extract_diag, alloc_diag,
det, psd, eig, eigh, eigvalsh,
trace, spectral_radius_bound)
from theano.tensor.slinalg import (cholesky, solve, eigvalsh)
from theano.tensor.nlinalg import (matrix_inverse,
diag, extract_diag, alloc_diag,
det, eig, eigh,
trace)
from theano.sandbox.linalg.ops import psd, spectral_radius_bound
from __future__ import absolute_import, print_function, division
import logging
logger = logging.getLogger(__name__)
import numpy
from six import iteritems, integer_types
from six.moves import xrange
from theano.gof import Op, Apply
from theano.tensor import as_tensor_variable, dot, DimShuffle, Dot
from theano.tensor import DimShuffle, Dot
from theano.tensor.blas import Dot22
from theano import tensor
import theano.tensor
from theano.tensor.opt import (register_stabilize,
register_specialize, register_canonicalize)
register_specialize,
register_canonicalize)
from theano.gof import local_optimizer
from theano.gof.opt import Optimizer
from theano.gradient import DisconnectedType
from theano.tensor.nlinalg import ( MatrixInverse,
matrix_inverse,
MatrixPinv,
pinv,
AllocDiag,
alloc_diag,
ExtractDiag,
extract_diag,
diag,
trace,
Det,
det,
Eig,
eig,
Eigh,
EighGrad,
eigh,
matrix_dot,
_zero_disconnected,
qr,
svd,
lstsq,
matrix_power,
norm
)
from theano.tensor.slinalg import ( Cholesky,
cholesky,
CholeskyGrad,
Solve,
solve,
Eigvalsh,
EigvalshGrad,
eigvalsh
)
try:
import scipy.linalg
imported_scipy = True
except ImportError:
# some ops (e.g. Cholesky, Solve, A_Xinv_b) won't work
imported_scipy = False
from theano.tensor.nlinalg import (MatrixInverse,
matrix_inverse,
extract_diag,
trace,
det)
from theano.tensor.slinalg import (Cholesky,
cholesky,
Solve,
solve,
imported_scipy)
logger = logging.getLogger(__name__)
class Hint(Op):
......@@ -212,8 +180,6 @@ class HintsFeature(object):
class HintsOptimizer(Optimizer):
"""
Optimizer that serves to add HintsFeature as an fgraph feature.
"""
def __init__(self):
......@@ -310,8 +276,8 @@ def tag_solve_triangular(node):
return [Solve('lower_triangular')(A, b)]
else:
return [Solve('upper_triangular')(A, b)]
if (A.owner and isinstance(A.owner.op, DimShuffle)
and A.owner.op.new_order == (1, 0)):
if (A.owner and isinstance(A.owner.op, DimShuffle) and
A.owner.op.new_order == (1, 0)):
A_T, = A.owner.inputs
if A_T.owner and isinstance(A_T.owner.op, type(cholesky)):
if A_T.owner.op.lower:
......@@ -423,6 +389,5 @@ def spectral_radius_bound(X, log2_exponent):
XX = X
for i in xrange(log2_exponent):
XX = tensor.dot(XX, XX)
return tensor.pow(
trace(XX),
2 ** (-log2_exponent))
return tensor.pow(trace(XX),
2 ** (-log2_exponent))
......@@ -163,4 +163,4 @@ def test_matrix_inverse_solve():
b = theano.tensor.dmatrix('b')
node = matrix_inverse(A).dot(b).owner
[out] = inv_as_solve.transform(node)
assert isinstance(out.owner.op, Solve)
assert isinstance(out.owner.op, Solve)
......@@ -77,10 +77,8 @@ whitelist_flake8 = [
"sandbox/cuda/__init__.py",
"sandbox/cuda/tests/__init__.py",
"sandbox/gpuarray/__init__.py",
"sandbox/linalg/ops.py",
"sandbox/linalg/__init__.py",
"sandbox/linalg/tests/__init__.py",
"sandbox/linalg/tests/test_linalg.py",
"scan_module/scan_utils.py",
"scan_module/scan_views.py",
"scan_module/scan.py",
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论