이 페이지는 Cloud Translation API를 통해 번역되었습니다.
Switch to English

tf.linalg.LinearOperatorScaledIdentity

TensorFlow 1 개 버전 GitHub의에서 소스보기

LinearOperator 스케일링 [배치] 아이덴티티 매트릭스처럼 행동 A = c I .

이 연산자 스케일링 [배치] 아이덴티티 매트릭스와 같은 역할을 형상 A [B1,...,Bb, N, N] 일부 b >= 0 . 제 b 지수 인덱스 A를 배치 부재. 모든 배치 지수 (i1,...,ib) , A[i1,...,ib, : :] 의 스케일링 된 버전이고 N x N 단위 행렬.

LinearOperatorIdentity 초기화되는 num_rowsmultiplier (a Tensor 형상) [B1,...,Bb] . N 으로 설정되어 num_rowsmultiplier 각각 배치 구성원의 스케일을 결정한다.

 # Create a 2 x 2 scaled identity matrix.
operator = LinearOperatorIdentity(num_rows=2, multiplier=3.)

operator.to_dense()
==> [[3., 0.]
     [0., 3.]]

operator.shape
==> [2, 2]

operator.log_abs_determinant()
==> 2 * Log[3]

x = ... Shape [2, 4] Tensor
operator.matmul(x)
==> 3 * x

y = tf.random.normal(shape=[3, 2, 4])
# Note that y.shape is compatible with operator.shape because operator.shape
# is broadcast to [3, 2, 2].
x = operator.solve(y)
==> 3 * x

# Create a 2-batch of 2x2 identity matrices
operator = LinearOperatorIdentity(num_rows=2, multiplier=5.)
operator.to_dense()
==> [[[5., 0.]
      [0., 5.]],
     [[5., 0.]
      [0., 5.]]]

x = ... Shape [2, 2, 3]
operator.matmul(x)
==> 5 * x

# Here the operator and x have different batch_shape, and are broadcast.
x = ... Shape [1, 2, 3]
operator.matmul(x)
==> 5 * x
 

모양 호환성

이것은 운전자 호환 형상 [배치] 행렬에 작용한다. x 호환 형상으로 배치 행렬 matmulsolve 한다면

 operator.shape = [B1,...,Bb] + [N, N],  with b >= 0
x.shape =   [C1,...,Cc] + [N, R],
and [C1,...,Cc] broadcasts with [B1,...,Bb] to [D1,...,Dd]
 

공연

  • operator.matmul(x)O(D1*...*Dd*N*R)
  • operator.solve(x)O(D1*...*Dd*N*R)
  • operator.determinant() 이고 O(D1*...*Dd)

매트릭스 속성 힌트

LinearOperator 형태의 부울 플래그로 초기화됩니다 is_X 를 들어, X = non_singular, self_adjoint, positive_definite, square . 여기에는 다음과 같은 의미를 갖는다

  • 경우 is_X == True 발신자는 운영자가 속성을 감수해야합니다 X . 이 충족되어야한다 약속하지만, 런타임 어설 없습니다. 예를 들어, 유한 부동 소수점 정밀도 위반되는이 약속 될 수 있습니다.
  • 경우 is_X == False 발신자가 운영자를 기대해야하지 X .
  • 경우 is_X == None (기본값), 발신자가 더 기대 하나 방법이 없습니다.

num_rows 정수 스칼라 음이 아닌 Tensor . 대응하는 행렬의 행의 수.
multiplier Tensor 형상 [B1,...,Bb] 또는 [] (스칼라).
is_non_singular 이 오퍼레이터는 비 특이 것을 기대한다.
is_self_adjoint 이 오퍼레이터는 허미 시안 전치 동일하다고 예상된다.
is_positive_definite 이차 형태 즉,이 오퍼레이터가 한정되어 긍정적 인 것으로 예상 x^HA x 모든 제로위한 갖는 양의 실수 부 x . 우리는 연산자를 필요로하지 않는 것이 주 자기 수반 행렬은 포지티브 명확한 될 수 있습니다. 참조 : https://en.wikipedia.org/wiki/Positive-definite_matrix#Extension_for_non-symmetric_matrices
is_square 이 오퍼레이터는 사각 [배치] 매트릭스와 같은 역할을하는 것이 기대된다.
assert_proper_shapes 파이썬 bool . 경우 False 만 초기화 방법 및 인수 적절한 형상을 갖도록 정적 검사를 수행한다. 경우 True , 정적 검사가 확정적이지, 추가 그래프로 주장한다.
name 이에 대한 이름 LinearOperator

ValueError 경우 num_rows 판정 정적 비 - 스칼라 또는 제외된다.

H 현재의 수반 행렬 돌려 LinearOperator .

을 감안할 때 이 나타내는 A LinearOperator , 반환 A* . 호출합니다 self.adjoint()self.H 동일합니다.

batch_shape TensorShape 이 일괄 차원의 LinearOperator .

이 연산자 배치 매트릭스와 같은 역할을하는 경우 와 A A.shape = [B1,...,Bb, M, N] ,이 복귀 TensorShape([B1,...,Bb]) 에 해당 A.shape[:-2]

domain_dimension 측정 기준이 운영자의 도메인 (벡터 공간의 의미에서).

이 오퍼레이터가 배치 매트릭스와 같은 역할을하는 경우 와 A A.shape = [B1,...,Bb, M, N] ,이 복귀 N .

dtype DTypeTensor 이 처리 s의 LinearOperator .
graph_parents 그래프의 목록이의 종속성 LinearOperator . (사용되지 않음)

is_non_singular

is_positive_definite

is_self_adjoint

is_square 반환 True/False 이 연산자가 사각형 인 경우에 따라 달라집니다.
multiplier 에서 [배치] 스칼라 Tensor , ccI .
range_dimension 측정 기준이 연산자의 범위 (벡터 공간의 의미에서).

이 오퍼레이터가 배치 매트릭스와 같은 역할을하는 경우 와 A A.shape = [B1,...,Bb, M, N] ,이 복귀 M .

shape TensorShape 이의 LinearOperator .

이 연산자 배치 매트릭스와 같은 역할을하는 경우 와 A A.shape = [B1,...,Bb, M, N] ,이 복귀 TensorShape([B1,...,Bb, M, N]) , 당량 A.shape .

tensor_rank 순위 매트릭스 (텐서의 의미)이 운전자에 대응.

이 오퍼레이터가 배치 매트릭스와 같은 역할을하는 경우 와 A A.shape = [B1,...,Bb, M, N] ,이 반환 b + 2 .

행동 양식

add_to_tensor

소스보기

이 행렬 조작에 의해 표현 추가 mat . 에 당량 I + mat .

인수
mat Tensor 같은과 dtype 과 모양 캐스트 가능한 self .
name 이름은이주는 Op .

보고
Tensor 방송 모양과 같은과 dtype 으로 self .

adjoint

소스보기

현재의 수반 행렬 돌려 LinearOperator .

을 감안할 때 이 나타내는 A LinearOperator , 반환 A* . 호출합니다 self.adjoint()self.H 동일합니다.

인수
name 이에 대한 이름 Op .

보고
LinearOperator 이의 수반 행렬 대표 LinearOperator .

assert_non_singular

소스보기

로서 리턴 Op 이 연산자를 주장하는 비 단수이다.

이 연산자 경우 비 특이 간주

 ConditionNumber < max{100, range_dimension, domain_dimension} * eps,
eps := np.finfo(self.dtype.as_numpy_dtype).eps
 

인수
name 문자열 이름은 생성 작전에 앞에 추가합니다.

보고
Assert Op , 즉, 실행할 때, 올릴 것이다 InvalidArgumentError 운영자가 단수 인 경우.

assert_positive_definite

소스보기

반환 Op 이 연산자가 명확한 긍정적 주장한다.

여기서, 차 형태 긍정적 확실한 수단 x^HA x 모두 제로 양성 실수 부를 갖는 x . 우리는 연산자를 필요로하지 않음을 참고 자기 수반 행렬이 명확한 양성으로한다.

인수
name 이름은이주는 Op .

보고
Assert Op , 즉, 실행할 때, 올릴 것이다 InvalidArgumentError 운영자가 명확한 긍정적되지 않습니다.

assert_self_adjoint

소스보기

로서 리턴 Op 이 연산자를 주장 자체 수반 행렬이다.

여기에서 우리는이 연산자는 에르 미트 전치 정확하게 일치되어 있는지 확인합니다.

인수
name 문자열 이름은 생성 작전에 앞에 추가합니다.

보고
Assert Op , 즉, 실행시, 올릴 것이다 InvalidArgumentError 운영자가 자기 수반 행렬이 아닌 경우.

batch_shape_tensor

소스보기

런타임에 결정이 운전자의 배치 크기, 형상.

이 오퍼레이터가 배치 매트릭스와 같은 역할을하는 경우 와 A A.shape = [B1,...,Bb, M, N] ,이 리턴 Tensor 유지 [B1,...,Bb] .

인수
name 이에 대한 이름 Op .

보고
int32 Tensor

cholesky

소스보기

A와 같은 콜레 요소를 돌려줍니다 LinearOperator .

을 감안할 때 이 나타내는 A LinearOperator 경우, A 긍정적 인 확실한 자기 수반 행렬, 반환이다 L , A = LL^T , 즉 콜레 분해.

인수
name 이에 대한 이름 Op .

보고
LinearOperator 촐레 스키 분해의 하 삼각 행렬을 나타낸다.

제기
ValueError LinearOperator 긍정적 확실한 자기 수반 행렬로 암시하지 않습니다.

cond

소스보기

이 선형 연산자의 조건 수를 돌려줍니다.

인수
name 이에 대한 이름 Op .

보고
형상 [B1,...,Bb] Tensor 똑같은 dtype 같은 self .

determinant

소스보기

모든 배치 구성원에 대한 결정.

인수
name 이에 대한 이름 Op .

보고
Tensor 모양과 self.batch_shape 과 같은 dtype 같은 self .

제기
NotImplementedError 경우 self.is_square 입니다 False .

diag_part

소스보기

이것을 효율적 연산자 [배치] 대각 부분을 얻는다.

이 오퍼레이터는 형상을 갖는 경우 [B1,...,Bb, M, N] 이 리턴 Tensor diagonal 모양의 [B1,...,Bb, min(M, N)] , 여기서, diagonal[b1,...,bb, i] = self.to_dense()[b1,...,bb, i, i] .

 my_operator = LinearOperatorDiag([1., 2.])

# Efficiently get the diagonal
my_operator.diag_part()
==> [1., 2.]

# Equivalent, but inefficient method
tf.linalg.diag_part(my_operator.to_dense())
==> [1., 2.]
 

인수
name 이에 대한 이름 Op .

보고
diag_part Tensor 동일한의 dtype 자기있다.

domain_dimension_tensor

소스보기

측정 기준이 운영자의 도메인 (벡터 공간의 의미에서).

런타임에 결정됩니다.

이 오퍼레이터가 배치 매트릭스와 같은 역할을하는 경우 와 A A.shape = [B1,...,Bb, M, N] ,이 복귀 N .

인수
name 이에 대한 이름 Op .

보고
int32 Tensor

eigvals

소스보기

이 선형 연산자의 고유 값을 돌려줍니다.

오퍼레이터는 (비아 자체 수반 행렬로 표시되는 경우 is_self_adjoint )이 계산은 더 효율적일 수있다.

인수
name 이에 대한 이름 Op .

보고
형상 [B1,...,Bb, N] Tensor 똑같은 dtype 같은 self .

inverse

소스보기

반환이의 역 LinearOperator .

을 감안할 때 이 나타내는 A LinearOperator 하는 반환 LinearOperator 나타내는 A^-1 .

인수
name 이름 범위는이 방법에 의해 첨가 OPS 사용한다.

보고
LinearOperator 이 행렬의 역을 나타내는.

제기
ValueError LinearOperator 암시되지 할 수 non_singular .

log_abs_determinant

소스보기

모든 배치 부재에 대한 결정의 절대 값의 로그.

인수
name 이에 대한 이름 Op .

보고
Tensor 모양과 self.batch_shape 과 같은 dtype 같은 self .

제기
NotImplementedError 경우 self.is_square 입니다 False .

matmul

소스보기

[배치] 변환 매트릭스 x 좌 곱셈 : x --> Ax .

 # Make an operator acting like batch matrix A.  Assume A.shape = [..., M, N]
operator = LinearOperator(...)
operator.shape = [..., M, N]

X = ... # shape [..., N, R], batch matrix, R > 0.

Y = operator.matmul(X)
Y.shape
==> [..., M, R]

Y[..., :, r] = sum_j A[..., :, j] X[j, r]
 

인수
x LinearOperator 또는 Tensor 호환 모양과 같은과 dtype 으로 self . 호환성의 정의 클래스 문서화 문자열을 참조하십시오.
adjoint 파이썬 bool . 경우 True 의 수반 행렬에 의해 승산 남아 A^H x .
adjoint_arg 파이썬 bool . 만약 True , 컴퓨팅 A x^H x^H 에르 미트 전치 (전치 복소 공액)이다.
name 이에 대한 이름 Op .

보고
LinearOperator 또는 Tensor 형상 [..., M, R] 과 같은 dtype 같은 self .

matvec

소스보기

[배치] 변환 벡터 x 좌 곱셈 : x --> Ax .

 # Make an operator acting like batch matrix A.  Assume A.shape = [..., M, N]
operator = LinearOperator(...)

X = ... # shape [..., N], batch vector

Y = operator.matvec(X)
Y.shape
==> [..., M]

Y[..., :] = sum_j A[..., :, j] X[..., j]
 

인수
x Tensor 호환 모양과 같은과 dtype 으로 self . x 주요 치수의 각 세트에 대해 의미 [배치] 벡터로 처리되고, 마지막 차원 벡터를 정의한다. 호환성의 정의 클래스 문서화 문자열을 참조하십시오.
adjoint 파이썬 bool . 경우 True 의 수반 행렬에 의해 승산 남아 A^H x .
name 이에 대한 이름 Op .

보고
Tensor 형상 [..., M] 과 같은 dtype 같은 self .

range_dimension_tensor

소스보기

측정 기준이 연산자의 범위 (벡터 공간의 의미에서).

런타임에 결정.

이 오퍼레이터가 배치 매트릭스와 같은 역할을하는 경우 와 A A.shape = [B1,...,Bb, M, N] ,이 복귀 M .

인수
name 이에 대한 이름 Op .

보고
int32 Tensor

shape_tensor

소스보기

이 모양 LinearOperator 런타임에 결정.

이 연산자 배치 매트릭스와 같은 역할을하는 경우 와 A A.shape = [B1,...,Bb, M, N] ,이 리턴 Tensor 유지 [B1,...,Bb, M, N] 에 동등한 tf.shape(A) .

인수
name 이에 대한 이름 Op .

보고
int32 Tensor

solve

소스보기

(정확한 또는 약) 해결 R (배치) 방정식의 시스템 : AX = rhs .

반환 Tensor 경우 정확한 솔루션에 가까운 것이다 A 잘 조절한다. 그렇지 않으면 친밀감에 따라 달라질 수 있습니다. 자세한 내용은 클래스 문서화 문자열을 참조하십시오.

예를 들면 :

 # Make an operator acting like batch matrix A.  Assume A.shape = [..., M, N]
operator = LinearOperator(...)
operator.shape = [..., M, N]

# Solve R > 0 linear systems for every member of the batch.
RHS = ... # shape [..., M, R]

X = operator.solve(RHS)
# X[..., :, r] is the solution to the r'th linear system
# sum_j A[..., :, j] X[..., j, r] = RHS[..., :, r]

operator.matmul(X)
==> RHS
 

인수
rhs Tensor 동일한 함께 dtype 이 운전자 호환 형 등. rhs 주요 치수의 각 세트에 대해 의미 [배치] 매트릭스처럼 취급되고, 마지막 두 차원 행렬을 정의한다. 호환성의 정의 클래스 문서화 문자열을 참조하십시오.
adjoint 파이썬 bool . 경우 True , 이것의 수반 행렬과 관련된 시스템 해결 LinearOperator : A^HX = rhs .
adjoint_arg 파이썬 bool . 경우 True 해결 AX = rhs^H 어디에 rhs^H 에르 미트 전치 (전치 복소 공액)이있다.
name 이름 범위는이 방법에 의해 첨가 OPS 사용한다.

보고
Tensor 형상 [...,N, R] 과 같은 dtype 같은 rhs .

제기
NotImplementedError 경우 self.is_non_singular 또는 is_square False입니다.

solvevec

소스보기

최선의 노력으로 하나의 방정식을 해결 : AX = rhs .

반환 Tensor 경우 정확한 솔루션에 가까운 것이다 A 잘 조절한다. 그렇지 않으면 친밀감에 따라 달라질 수 있습니다. 자세한 내용은 클래스 문서화 문자열을 참조하십시오.

예를 들면 :

 # Make an operator acting like batch matrix A.  Assume A.shape = [..., M, N]
operator = LinearOperator(...)
operator.shape = [..., M, N]

# Solve one linear system for every member of the batch.
RHS = ... # shape [..., M]

X = operator.solvevec(RHS)
# X is the solution to the linear system
# sum_j A[..., :, j] X[..., j] = RHS[..., :]

operator.matvec(X)
==> RHS
 

인수
rhs Tensor 동일한 함께 dtype 이 연산자있다. rhs 주요 치수의 각 세트에 대해 의미 [배치] 벡터처럼 취급 마지막 차원 벡터를 정의한다. 배치 치수에 대한 호환성의 정의 클래스 문서화 문자열을 참조하십시오.
adjoint 파이썬 bool . 경우 True , 이것의 수반 행렬과 관련된 시스템 해결 LinearOperator : A^HX = rhs .
name 이름 범위는이 방법에 의해 첨가 OPS 사용한다.

보고
Tensor 형상 [...,N] 과 같은 dtype 같은 rhs .

제기
NotImplementedError 경우 self.is_non_singular 또는 is_square False입니다.

tensor_rank_tensor

소스보기

순위 매트릭스 (텐서의 의미)이 운전자에 대응.

이 오퍼레이터가 배치 매트릭스와 같은 역할을하는 경우 와 A A.shape = [B1,...,Bb, M, N] ,이 반환 b + 2 .

인수
name 이에 대한 이름 Op .

보고
int32 Tensor 런타임에 결정했다.

to_dense

소스보기

이 조작을 나타내는 밀도 (배치) 행렬을 반환.

trace

소스보기

선형 연산자의 추적 결과의 합 self.diag_part() .

운영자가 사각형 인 경우,이 또한 고유의 합계입니다.

인수
name 이에 대한 이름 Op .

보고
형상 [B1,...,Bb] Tensor 똑같은 dtype 같은 self .

__matmul__

소스보기