@frozen
public struct Tensor<Scalar> where Scalar : TensorFlowScalar
extension Tensor: Collatable
extension Tensor: CopyableToDevice
extension Tensor: AnyTensor
extension Tensor: ExpressibleByArrayLiteral
extension Tensor: CustomStringConvertible
extension Tensor: CustomPlaygroundDisplayConvertible
extension Tensor: CustomReflectable
extension Tensor: TensorProtocol
extension Tensor: TensorGroup
extension Tensor: ElementaryFunctions where Scalar: TensorFlowFloatingPoint
-extension Tensor: VectorProtocol where Scalar: TensorFlowFloatingPoint
extension Tensor: Mergeable where Scalar: TensorFlowFloatingPoint
extension Tensor: Equatable where Scalar: Equatable
extension Tensor: Codable where Scalar: Codable
extension Tensor: AdditiveArithmetic where Scalar: Numeric
extension Tensor: PointwiseMultiplicative where Scalar: Numeric
extension Tensor: Differentiable & EuclideanDifferentiable where Scalar: TensorFlowFloatingPoint
extension Tensor: DifferentiableTensorProtocol
where Scalar: TensorFlowFloatingPoint
Многомерный массив элементов, который представляет собой обобщение векторов и матриц до потенциально более высоких измерений.
Общий параметр Scalar
описывает тип скаляров в тензоре (например, Int32
, Float
и т. д.).
Базовый
TensorHandle
.Примечание
handle
является общедоступным, чтобы разрешить определенные пользователем операции, но обычно не должен использоваться.Декларация
public let handle: TensorHandle<Scalar>
Декларация
public init(handle: TensorHandle<Scalar>)
Распаковывает заданное измерение тензора ранга
R
в несколько тензоров ранга(R-1)
. РаспаковываетN
тензоров из этого тензора, вырезая его вдольaxis
, гдеN
выводится из формы этого тензора. Например, задан тензор формы[A, B, C, D]
:- Если
axis == 0
, тоi
-й тензор в возвращаемом массиве является срезомself[i, :, :, :]
и каждый тензор в этом массиве будет иметь форму[B, C, D]
. (Обратите внимание, что распакованное измерение исчезло, в отличие отTensor.split(numSplits:alongAxis)
илиTensor.split(sizes:alongAxis)
). - Если
axis == 1
, тоi
-й тензор в возвращаемом массиве являетсяvalue[:, i, :, :]
и каждый тензор в этом массиве будет иметь форму[A, C, D]
. - И т. д.
Это противоположность
Tensor.init(stacking:alongAxis:)
.Предварительное условие
axis
должна находиться в диапазоне[-rank, rank)
, гдеrank
— это ранг предоставленных тензоров.Декларация
@differentiable public func unstacked(alongAxis axis: Int = 0) -> [Tensor]
Параметры
axis
Измерение, по которому можно разложить. Отрицательные значения оборачиваются.
Возвращаемое значение
Массив, содержащий несложенные тензоры.
- Если
Разбивает тензор на несколько тензоров. Тензор разбивается вдоль
axis
измерения наcount
меньшего размера. Для этого необходимо, чтобыcount
равномерно делилshape[axis]
.Например:
// 'value' is a tensor with shape [5, 30] // Split 'value' into 3 tensors along dimension 1: let parts = value.split(count: 3, alongAxis: 1) parts[0] // has shape [5, 10] parts[1] // has shape [5, 10] parts[2] // has shape [5, 10]
Предварительное условие
count
должен равномерно делить размерaxis
измерения.Предварительное условие
axis
должна находиться в диапазоне[-rank, rank)
, гдеrank
— это ранг предоставленных тензоров.Декларация
@differentiable public func split(count: Int, alongAxis axis: Int = 0) -> [Tensor]
Параметры
count
Количество разбиений, которые нужно создать.
axis
Измерение, по которому можно разбить этот тензор. Отрицательные значения оборачиваются.
Возвращаемое значение
Массив, содержащий часть тензоров.
Разбивает тензор на несколько тензоров. Тензор разбивается на части
sizes.shape[0]
. Формаi
-й части имеет ту же форму, что и этот тензор, за исключениемaxis
измерения, где размер равенsizes[i]
.Например:
// 'value' is a tensor with shape [5, 30] // Split 'value' into 3 tensors with sizes [4, 15, 11] along dimension 1: let parts = value.split(sizes: Tensor<Int32>([4, 15, 11]), alongAxis: 1) parts[0] // has shape [5, 4] parts[1] // has shape [5, 15] parts[2] // has shape [5, 11]
Предварительное условие
Значения
sizes
должны в сумме соответствовать размеруaxis
размеров.Предварительное условие
axis
должна находиться в диапазоне[-rank, rank)
, гдеrank
— это ранг предоставленных тензоров.Декларация
@differentiable(wrt: self) public func split(sizes: Tensor<Int32>, alongAxis axis: Int = 0) -> [Tensor]
Параметры
sizes
Одномерный тензор, содержащий размер каждого разделения.
axis
Размерность, по которой можно разбить этот тензор. Отрицательные значения оборачиваются.
Возвращаемое значение
Массив, содержащий части тензоров.
Декларация
@differentiable(wrt: self) public func split(sizes: [Int], alongAxis axis: Int = 0) -> [Tensor]
Возвращает мозаичный тензор, построенный путем мозаики этого тензора.
Этот конструктор создает новый тензор,
multiples
копируя этот тензор.i
-е измерение построенного тензора имеет элементыself.shape[i] * multiples[i]
, и значения этого тензора повторяютсяmultiples[i]
раз поi
му измерению. Например, разделение[abcd]
на[2]
дает[abcdabcd]
.Предварительное условие
Формаmultiples
должна быть[tensor.rank]
.Предварительное условие
Все скаляры вmultiples
должны быть неотрицательными.Декларация
@differentiable(wrt: self) public func tiled(multiples: [Int]) -> Tensor
Возвращает мозаичный тензор, построенный путем мозаики этого тензора.
Этот конструктор создает новый тензор,
multiples
копируя этот тензор.i
-е измерение построенного тензора имеет элементыself.shape[i] * multiples[i]
, и значения этого тензора повторяютсяmultiples[i]
раз поi
му измерению. Например, разделение[abcd]
на[2]
дает[abcdabcd]
.Предварительное условие
Формаmultiples
должна быть[tensor.rank]
.Декларация
@differentiable(wrt: self) public func tiled(multiples: Tensor<Int32>) -> Tensor
Измените форму до формы указанного
Tensor
.Предварительное условие
Количество скаляров соответствует новой форме.Декларация
@differentiable(wrt: self) public func reshaped<T>(like other: Tensor<T>) -> Tensor where T : TensorFlowScalar
Измените форму до указанной формы.
Предварительное условие
Количество скаляров соответствует новой форме.Декларация
@differentiable(wrt: self) public func reshaped(to newShape: TensorShape) -> Tensor
Измените форму до указанного
Tensor
, представляющего форму.Предварительное условие
Количество скаляров соответствует новой форме.Декларация
@differentiable(wrt: self) public func reshaped(toShape newShape: Tensor<Int32>) -> Tensor
Верните копию тензора, свернутую в 1-D
Tensor
, в порядке строк.Декларация
@differentiable(wrt: self) public func flattened() -> Tensor
Возвращает развернутый по форме
Tensor
с размером 1, вставленным в указанные индексы формы.Декларация
@differentiable(wrt: self) public func expandingShape(at axes: Int...) -> Tensor
Возвращает развернутый по форме
Tensor
с размером 1, вставленным в указанные индексы формы.Декларация
@differentiable(wrt: self) public func expandingShape(at axes: [Int]) -> Tensor
Возвращает
Tensor
с повышенным рангом и ведущей размерностью 1.Декларация
@differentiable(wrt: self) public func rankLifted() -> Tensor
Удаляет указанные размеры размера 1 из формы тензора. Если размеры не указаны, то все размеры размера 1 будут удалены.
Декларация
@differentiable(wrt: self) public func squeezingShape(at axes: Int...) -> Tensor
Удаляет указанные размеры размера 1 из формы тензора. Если размеры не указаны, то все размеры размера 1 будут удалены.
Декларация
@differentiable(wrt: self) public func squeezingShape(at axes: [Int]) -> Tensor
Возвращает транспонированный тензор с размерами, переставленными в указанном порядке.
Декларация
@differentiable(wrt: self) public func transposed(permutation: Tensor<Int32>) -> Tensor
Возвращает транспонированный тензор с размерами, переставленными в указанном порядке.
Декларация
@available(*, deprecated, renamed: "transposed(permutation:﹚") @differentiable(wrt: self) public func transposed(withPermutations permutations: Tensor<Int32>) -> Tensor
Возвращает транспонированный тензор с размерами, переставленными в указанном порядке.
Декларация
@differentiable(wrt: self) public func transposed(permutation: [Int]) -> Tensor
Возвращает транспонированный тензор с размерами, переставленными в указанном порядке.
Декларация
@available(*, deprecated, renamed: "transposed(permutation:﹚") @differentiable(wrt: self) public func transposed(withPermutations permutations: [Int]) -> Tensor
Возвращает транспонированный тензор с размерами, переставленными в указанном порядке.
Декларация
@differentiable(wrt: self) public func transposed(permutation: Int...) -> Tensor
Возвращает транспонированный тензор с размерами, переставленными в указанном порядке.
Декларация
@available(*, deprecated, renamed: "transposed(permutation:﹚") @differentiable(wrt: self) public func transposed(withPermutations permutations: Int...) -> Tensor
Возвращает транспонированный тензор с размерами, переставленными в обратном порядке.
Декларация
@differentiable(wrt: self) public func transposed() -> Tensor
Возвращает тензор с указанными размерами в обратном порядке.
Предварительное условие
Каждое значение поaxes
должно находиться в диапазоне-rank..<rank
.Предварительное условие
Вaxes
не должно быть дублирования.Декларация
@differentiable(wrt: self) public func reversed(inAxes axes: Tensor<Int32>) -> Tensor
Возвращает тензор с указанными размерами в обратном порядке.
Предварительное условие
Каждое значение поaxes
должно находиться в диапазоне-rank..<rank
.Предварительное условие
Вaxes
не должно быть дублирования.Декларация
@differentiable(wrt: self) public func reversed(inAxes axes: [Int]) -> Tensor
Возвращает тензор с указанными размерами в обратном порядке.
Предварительное условие
Каждое значение поaxes
должно находиться в диапазоне-rank..<rank
.Предварительное условие
Вaxes
не должно быть дублирования.Декларация
@differentiable(wrt: self) public func reversed(inAxes axes: Int...) -> Tensor
Возвращает объединенный тензор вдоль указанной оси.
Предварительное условие
Тензоры должны иметь одинаковые размеры, за исключением указанной оси.Предварительное условие
Ось должна находиться в диапазоне-rank..<rank
.Декларация
@differentiable public func concatenated(with other: Tensor, alongAxis axis: Int = 0) -> Tensor
Оператор конкатенации.
Примечание
++
— это специальный оператор, которого нет в Swift, но есть в Haskell/Scala. Его добавление не является незначительным языковым изменением и может вызвать споры. Существование/наименование++
будет обсуждаться на более позднем этапе проектирования API.Декларация
@differentiable public static func ++ (lhs: Tensor, rhs: Tensor) -> Tensor
Возвращает тензор, собирая фрагменты входных данных по
indices
вдольaxis
измерения.Для 0-D (скалярных)
indices
:result[p_0, ..., p_{axis-1}, p_{axis + 1}, ..., p_{N-1}] = self[p_0, ..., p_{axis-1}, indices, p_{axis + 1}, ..., p_{N-1}]
Для одномерных (векторных)
indices
:result[p_0, ..., p_{axis-1}, i, p_{axis + 1}, ..., p_{N-1}] = self[p_0, ..., p_{axis-1}, indices[i], p_{axis + 1}, ..., p_{N-1}]
В общем случае получается результирующий тензор, где:
result[p_0, ..., p_{axis-1}, i_{batch\_dims}, ..., i_{M-1}, p_{axis + 1}, ..., p_{N-1}] = self[p_0, ..., p_{axis-1}, indices[i_0, ..., i_{M-1}], p_{axis + 1}, ..., p_{N-1}]
где
N = self.rank
иM = indices.rank
.Форма результирующего тензора:
self.shape[..<axis] + indices.shape + self.shape[(axis + 1)...]
.Примечание
На процессоре, если обнаруживается индекс, выходящий за пределы диапазона, выдается ошибка. На графическом процессоре, если обнаруживается индекс, выходящий за пределы диапазона, в соответствующих выходных значениях сохраняется 0.
Предварительное условие
axis
должна находиться в диапазоне[-rank, rank)
.Декларация
@differentiable(wrt: self) public func gathering<Index: TensorFlowIndex>( atIndices indices: Tensor<Index>, alongAxis axis: Int = 0 ) -> Tensor
Параметры
indices
Содержит индексы для сбора.
axis
Измерение, по которому следует собираться. Отрицательные значения оборачиваются.
Возвращаемое значение
Собранный тензор.
Возвращает фрагменты этого тензора по
indices
вдоль измеренияaxis
, игнорируя при этом первые измеренияbatchDimensionCount
, соответствующие измерениям пакета. Сборка выполняется по первому непакетному измерению.Выполняет аналогичную функциональность
gathering
, за исключением того, что результирующая форма тензора теперь имеетshape[..<axis] + indices.shape[batchDimensionCount...] + shape[(axis + 1)...]
.Предварительное условие
axis
должна находиться в диапазоне-rank..<rank
, а также быть больше или равнаbatchDimensionCount
.Предварительное условие
batchDimensionCount
должен быть меньшеindices.rank
.Декларация
@differentiable(wrt: self) public func batchGathering<Index: TensorFlowIndex>( atIndices indices: Tensor<Index>, alongAxis axis: Int = 1, batchDimensionCount: Int = 1 ) -> Tensor
Параметры
indices
Содержит индексы для сбора.
axis
Измерение, по которому следует собираться. Отрицательные значения оборачиваются.
batchDimensionCount
Количество ведущих измерений партии, которые следует игнорировать.
Возвращаемое значение
Собранный тензор.
Возвращает тензор, собирая значения после применения предоставленной логической маски к входным данным.
Например:
// 1-D example // tensor is [0, 1, 2, 3] // mask is [true, false, true, false] tensor.gathering(where: mask) // is [0, 2] // 2-D example // tensor is [[1, 2], [3, 4], [5, 6]] // mask is [true, false, true] tensor.gathering(where: mask) // is [[1, 2], [5, 6]]
В общем случае
0 < mask.rank = K <= tensor.rank
и формаmask
должна соответствовать первым K измерениям формыtensor
. Тогда у нас есть:tensor.gathering(where: mask)[i, j1, ..., jd] = tensor[i1, ..., iK, j1, ..., jd]
где[i1, ..., iK]
—i
true
записьmask
(порядок строк).axis
можно использовать сmask
, чтобы указать ось для маскировки. В этом случаеaxis + mask.rank <= tensor.rank
и формаmask
должны соответствоватьdimensions of the
's shape must match the first
оси + маска.ранк формы тензора.Предварительное условие
mask
не может быть скаляром:mask.rank != 0
.Декларация
@differentiable(wrt: self) public func gathering(where mask: Tensor<Bool>, alongAxis axis: Int = 0) -> Tensor
Параметры
mask
Булев тензор KD, где
K <= self.rank
.axis
Целочисленный тензор 0-D, представляющий ось в
self
для маскировки, гдеK + axis <= self.rank
.Возвращаемое значение
(self.rank - K + 1)
-мерный тензор, заполненный записями в этом тензоре, соответствующимиtrue
значениям вmask
.Возвращает местоположения ненулевых/истинных значений в этом тензоре.
Координаты возвращаются в двумерном тензоре, где первое измерение (строки) представляет количество ненулевых элементов, а второе измерение (столбцы) представляет координаты ненулевых элементов. Имейте в виду, что форма выходного тензора может меняться в зависимости от того, сколько истинных значений содержится в этом тензоре. Индексы выводятся в порядке строк.
Например:
// 'input' is [[true, false], [true, false]] // 'input' has 2 true values and so the output has 2 rows. // 'input' has rank of 2, and so the second dimension of the output has size 2. input.nonZeroIndices() // is [[0, 0], [1, 0]] // 'input' is [[[ true, false], [ true, false]], // [[false, true], [false, true]], // [[false, false], [false, true]]] // 'input' has 5 true values and so the output has 5 rows. // 'input' has rank 3, and so the second dimension of the output has size 3. input.nonZeroIndices() // is [[0, 0, 0], // [0, 1, 0], // [1, 0, 1], // [1, 1, 1], // [2, 1, 1]]
Декларация
public func nonZeroIndices() -> Tensor<Int64>
Возвращаемое значение
Тензор с формой
(num_true, rank(condition))
.Декларация
@differentiable(wrt: self) public func broadcasted(toShape shape: Tensor<Int32>) -> Tensor
Декларация
@differentiable(wrt: self) public func broadcasted(to shape: TensorShape) -> Tensor
Трансляция в ту же форму, что и указанный
Tensor
.Предварительное условие
Указанная форма должна быть совместима с трансляцией.Декларация
@differentiable(wrt: self) public func broadcasted<OtherScalar>(like other: Tensor<OtherScalar>) -> Tensor where OtherScalar : TensorFlowScalar
Декларация
public static func .= (lhs: inout Tensor, rhs: Tensor)
Извлекает срез из тензора, определенного нижней и верхней границами для каждого измерения.
Декларация
@differentiable(wrt: self) public func slice(lowerBounds: [Int], upperBounds: [Int]) -> Tensor
Параметры
lowerBounds
Нижние границы в каждом измерении.
upperBounds
Верхние границы для каждого измерения.
Декларация
@differentiable(wrt: self) public func slice(lowerBounds: Tensor<Int32>, sizes: Tensor<Int32>) -> Tensor
Декларация
@differentiable(wrt: self) public func slice(lowerBounds: [Int], sizes: [Int]) -> Tensor
Декларация
@differentiable(wrt: self) public subscript(ranges: TensorRangeExpression...) -> Tensor { get set }
Проверяет, что каждый элемент
axes
обозначает осьself
, и в противном случае останавливает программу с диагностикой.Декларация
func ensureValid( axes: Tensor<Int32>, function: StaticString = #function, file: StaticString = #file, line: UInt = #line )
Проверяет, что каждый элемент
axes
обозначает осьself
, и в противном случае останавливает программу с диагностикой.Декларация
func ensureValid( axes: [Int], function: StaticString = #function, file: StaticString = #file, line: UInt = #line )
Проверяет, что
k
обозначает осьself
, и в противном случае останавливает программу с диагностикой.Декларация
func ensureValid( axis k: Int, function: StaticString = #function, file: StaticString = #file, line: UInt = #line )
Декларация
public init<BatchSamples: Collection>(collating samples: BatchSamples) where BatchSamples.Element == Self
Создает тензор указанной формы и одного повторяющегося скалярного значения.
Декларация
@available(*, deprecated, renamed: "init(repeating:shape:﹚") public init(shape: TensorShape, repeating repeatedValue: Scalar)
Параметры
shape
Размеры тензора.
repeatedValue
Скалярное значение для повторения.
Создает тензор указанной формы и одного повторяющегося скалярного значения.
Декларация
@differentiable public init( repeating repeatedValue: Scalar, shape: TensorShape, on device: Device = .default )
Параметры
repeatedValue
Скалярное значение для повторения.
shape
Размеры тензора.
Создает тензор, передавая заданный скаляр заданному рангу со всеми размерностями, равными 1.
Декларация
public init(broadcasting scalar: Scalar, rank: Int, on device: Device = .default)
Создает тензор из массива тензоров (которые сами могут быть скалярами).
Декларация
@differentiable public init(_ elements: [Tensor])
Складывает
tensors
вдольaxis
измерения в новый тензор с рангом на один выше, чем текущий тензор, и каждый тензор вtensors
.Учитывая, что все
tensors
имеют форму[A, B, C]
иtensors.count = N
, тогда:- если
axis == 0
, то результирующий тензор будет иметь форму[N, A, B, C]
. - если
axis == 1
, то результирующий тензор будет иметь форму[A, N, B, C]
. - и т. д.
Например:
// 'x' is [1, 4] // 'y' is [2, 5] // 'z' is [3, 6] Tensor(stacking: [x, y, z]) // is [[1, 4], [2, 5], [3, 6]] Tensor(stacking: [x, y, z], alongAxis: 1) // is [[1, 2, 3], [4, 5, 6]]
Это противоположность
Tensor.unstacked(alongAxis:)
.Предварительное условие
Все тензоры должны иметь одинаковую форму.
Предварительное условие
axis
должна находиться в диапазоне[-rank, rank)
, гдеrank
— это ранг предоставленных тензоров.Декларация
@differentiable public init(stacking tensors: [Tensor], alongAxis axis: Int = 0)
Параметры
tensors
Тензоры для стека.
axis
Размер, по которому можно складывать. Отрицательные значения оборачиваются.
Возвращаемое значение
Сложный тензор.
- если
Объединяет
tensors
по измерениюaxis
.Учитывая, что
tensors[i].shape = [D0, D1, ... Daxis(i), ...Dn]
, объединенный результат имеет форму[D0, D1, ... Raxis, ...Dn]
, гдеRaxis = sum(Daxis(i))
. То есть данные входных тензоров объединяются по размерностиaxis
.Например:
// t1 is [[1, 2, 3], [4, 5, 6]] // t2 is [[7, 8, 9], [10, 11, 12]] Tensor(concatenating: [t1, t2]) // is [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] Tensor(concatenating: [t1, t2], alongAxis: 1) // is [[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12]] // t3 has shape [2, 3] // t4 has shape [2, 3] Tensor(concatenating: [t3, t4]) // has shape [4, 3] Tensor(concatenating: [t3, t4], alongAxis: 1) // has shape [2, 6]
Примечание
Если вы объединяете данные по новой оси, рассмотрите возможность использования
Tensor.init(stacking:alongAxis:)
.Предварительное условие
Все тензоры должны иметь одинаковый ранг, а все измерения, кроме
axis
должны быть равны.Предварительное условие
axis
должна находиться в диапазоне[-rank, rank)
, гдеrank
— это ранг предоставленных тензоров.Декларация
@differentiable public init(concatenating tensors: [Tensor], alongAxis axis: Int = 0)
Параметры
tensors
Тензоры для объединения.
axis
Измерение, по которому осуществляется объединение. Отрицательные значения оборачиваются.
Возвращаемое значение
Составной тензор.
Заменяет элементы этого тензора
other
на полосах, гдеmask
имеетtrue
.Предварительное условие
self
иother
должны иметь одинаковую форму. Еслиself
иother
скалярны,mask
также должна быть скалярной. Еслиself
other
имеют ранг больше или равный1
, тоmask
должна либо иметь ту же форму, что иself
, либо быть одномернымTensor
, таким образом, чтоmask.scalarCount == self.shape[0]
.Декларация
@differentiable(wrt: (self, other) ) public func replacing(with other: Tensor, where mask: Tensor<Bool>) -> Tensor
Возвращает true, если физический скалярный тип имеет пониженную точность.
В настоящее время физические скалярные типы пониженной точности включают только
BFloat16
.Декларация
public var isReducedPrecision: Bool { get }
Преобразует скаляр в тензор с тем же устройством и точностью, что и заданный тензор.
Декларация
@differentiable public init(_ value: Scalar, deviceAndPrecisionLike tensor: Tensor)
Возвращает копию,
self
в физический скалярный типBFloat16
.Декларация
public var toReducedPrecision: `Self` { get }
Возвращает копию
self
значения, преобразованную в физическийScalar
тип.Декларация
public var toFullPrecision: `Self` { get }
Число измерений
Tensor
.Декларация
public var rank: Int { get }
Форма
Tensor
.Декларация
public var shape: TensorShape { get }
Количество скаляров в
Tensor
.Декларация
public var scalarCount: Int { get }
Ранг тензора, представленный как
Tensor<Int32>
.Декларация
public var rankTensor: Tensor<Int32> { get }
Размеры тензора, представленные как
Tensor<Int32>
.Декларация
public var shapeTensor: Tensor<Int32> { get }
Количество скаляров в тензоре, представленном как
Tensor<Int32>
.Декларация
public var scalarCountTensor: Tensor<Int32> { get }
Возвращает
true
, еслиrank
равен 0, иfalse
в противном случае.Декларация
public var isScalar: Bool { get }
Возвращает один скалярный элемент, если
rank
равен 0, иnil
в противном случае.Декларация
public var scalar: Scalar? { get }
Преобразование в скалярное.
Предварительное условие
Тензор имеет ровно один скаляр.Декларация
@differentiable public func scalarized() -> Scalar
Декларация
public var array: ShapedArray<Scalar> { get }
Декларация
@differentiable public var scalars: [Scalar] { get }
Создает 0-D тензор из скалярного значения.
Декларация
@differentiable public init(_ value: Scalar, on device: Device = .default)
Создает 1D-тензор из скаляров.
Декларация
@differentiable public init(_ scalars: [Scalar], on device: Device = .default)
Создает 1D-тензор из скаляров.
Декларация
public init<C: Collection>( _ vector: C, on device: Device = .default ) where C.Element == Scalar
Создает тензор указанной формы и смежных скаляров в порядке следования строк.
Предварительное условие
Произведение размеров фигуры должно равняться количеству скаляров.Декларация
@differentiable public init(shape: TensorShape, scalars: [Scalar], on device: Device = .default)
Параметры
shape
Форма тензора.
scalars
Скалярное содержимое тензора.
Создает тензор указанной формы и смежных скаляров в порядке следования строк.
Предварительное условие
Произведение размеров фигуры должно равняться количеству скаляров.Декларация
public init( shape: TensorShape, scalars: UnsafeBufferPointer<Scalar>, on device: Device = .default )
Параметры
shape
Форма тензора.
scalars
Скалярное содержимое тензора.
Создает тензор указанной формы и смежных скаляров в порядке следования строк.
Предварительное условие
Произведение размеров фигуры должно равняться количеству скаляров.Создает тензор указанной формы и смежных скаляров в порядке следования строк.
Предварительное условие
Произведение размеров фигуры должно равняться количеству скаляров.Декларация
public init<C: Collection>( shape: TensorShape, scalars: C, on device: Device = .default ) where C.Element == Scalar
Параметры
shape
Форма тензора.
scalars
Скалярное содержимое тензора.
Тип элементов литерала массива.
Декларация
public typealias ArrayLiteralElement = _TensorElementLiteral<Scalar>
Создает тензор, инициализированный заданными элементами.
Декларация
public init(arrayLiteral elements: _TensorElementLiteral<Scalar>...)
Текстовое представление тензора.
Примечание
используйтеfullDescription
для некрасивого описания, показывающего все скаляры.Декларация
public var description: String { get }
Текстовое представление тензора. Возвращает сводное описание, если
summarize
имеет значение true и количество элементов в два раза превышаетedgeElementCount
.Декларация
public func description( lineWidth: Int = 80, edgeElementCount: Int = 3, summarizing: Bool = false ) -> String
Параметры
lineWidth
Максимальная ширина линии для печати. Используется для определения количества скаляров для печати в строке.
edgeElementCount
Максимальное количество элементов для печати до и после суммирования с помощью эллипсов (
...
).summarizing
Если это правда, суммировать описание, если количество элементов превышает вдвое
edgeElementCount
.Полное, некрасивое текстовое представление тензора, показывающее все скаляры.
Декларация
public var fullDescription: String { get }
Декларация
public var playgroundDescription: Any { get }
Декларация
public var customMirror: Mirror { get }
Аннотации, описывающие этот тензор.
Декларация
public var annotations: String { get }
Псевдоним для аннотаций.
Декларация
public var summary: String { get }
Декларация
public init(_owning tensorHandles: UnsafePointer<CTensorHandle>?)
Декларация
public init<C: RandomAccessCollection>( _handles: C ) where C.Element: _AnyTensorHandle
Декларация
public init(_ array: ShapedArray<Scalar>, on device: Device = .default)
Декларация
init(_xla: XLATensor)
Декларация
init(_xlaHandle: UnsafeMutablePointer<OpaqueXLATensor>)
Декларация
var xlaHandle: UnsafeMutablePointer<OpaqueXLATensor> { get }
Декларация
var xlaTensor: XLATensor { get }
Декларация
@differentiable(wrt: self) public func unbroadcasted(toShape otherShape: Tensor<Int32>) -> Tensor
Декларация
@differentiable(wrt: self) public func unbroadcasted<OtherScalar>(like other: Tensor<OtherScalar>) -> Tensor where OtherScalar : TensorFlowScalar
Декларация
@differentiable(wrt: self) public func unbroadcasted(to shape: TensorShape) -> Tensor
Режим, который определяет, как дополняется тензор.
Декларация
public enum PaddingMode
Возвращает тензор, дополненный константой в соответствии с указанными размерами заполнения.
Декларация
@differentiable(wrt: self) public func padded(forSizes sizes: [(before: Int, after: Int)], with value: Scalar = 0) -> Tensor
Возвращает дополненный тензор в соответствии с указанными размерами и режимом заполнения.
Декларация
@differentiable(wrt: self) public func padded(forSizes sizes: [(before: Int, after: Int)], mode: PaddingMode) -> Tensor
Возвращает тензор логических скаляров путем поэлементного вычисления
lhs < rhs
.Декларация
public static func .< (lhs: Tensor, rhs: Tensor) -> Tensor<Bool>
Возвращает тензор логических скаляров путем поэлементного вычисления
lhs <= rhs
.Декларация
public static func .<= (lhs: Tensor, rhs: Tensor) -> Tensor<Bool>
Возвращает тензор логических скаляров путем поэлементного вычисления
lhs > rhs
.Декларация
public static func .> (lhs: Tensor, rhs: Tensor) -> Tensor<Bool>
Возвращает тензор логических скаляров путем поэлементного вычисления
lhs >= rhs
.Декларация
public static func .>= (lhs: Tensor, rhs: Tensor) -> Tensor<Bool>
Возвращает тензор логических скаляров путем поэлементного вычисления
lhs < rhs
.Примечание
.<
поддерживает вещание.Декларация
public static func .< (lhs: Scalar, rhs: Tensor) -> Tensor<Bool>
Возвращает тензор логических скаляров путем поэлементного вычисления
lhs <= rhs
.Примечание
.<=
поддерживает вещание.Декларация
public static func .<= (lhs: Scalar, rhs: Tensor) -> Tensor<Bool>
Возвращает тензор логических скаляров путем поэлементного вычисления
lhs > rhs
.Примечание
.>
поддерживает вещание.Декларация
public static func .> (lhs: Scalar, rhs: Tensor) -> Tensor<Bool>
Возвращает тензор логических скаляров путем поэлементного вычисления
lhs >= rhs
.Примечание
.>=
поддерживает вещание.Декларация
public static func .>= (lhs: Scalar, rhs: Tensor) -> Tensor<Bool>
Возвращает тензор логических скаляров путем поэлементного вычисления
lhs < rhs
.Примечание
.<
поддерживает вещание.Декларация
public static func .< (lhs: Tensor, rhs: Scalar) -> Tensor<Bool>
Возвращает тензор логических скаляров путем поэлементного вычисления
lhs <= rhs
.Примечание
.<=
поддерживает вещание.Декларация
public static func .<= (lhs: Tensor, rhs: Scalar) -> Tensor<Bool>
Возвращает тензор логических скаляров путем поэлементного вычисления
lhs > rhs
.Примечание
.>
поддерживает вещание.Декларация
public static func .> (lhs: Tensor, rhs: Scalar) -> Tensor<Bool>
Возвращает тензор логических скаляров путем поэлементного вычисления
lhs >= rhs
.Примечание
.>=
поддерживает вещание.Декларация
public static func .>= (lhs: Tensor, rhs: Scalar) -> Tensor<Bool>
Возвращает тензор логических скаляров путем поэлементного вычисления
lhs == rhs
.Примечание
.==
поддерживает вещание.Декларация
public static func .== (lhs: Tensor, rhs: Tensor) -> Tensor<Bool>
Возвращает тензор логических скаляров путем поэлементного вычисления
lhs != rhs
.Примечание
.!=
поддерживает вещание.Декларация
public static func .!= (lhs: Tensor, rhs: Tensor) -> Tensor<Bool>
Возвращает тензор логических скаляров путем поэлементного вычисления
lhs == rhs
.Примечание
.==
поддерживает вещание.Декларация
public static func .== (lhs: Scalar, rhs: Tensor) -> Tensor<Bool>
Возвращает тензор логических скаляров путем поэлементного вычисления
lhs != rhs
.Примечание
.!=
поддерживает вещание.Декларация
public static func .!= (lhs: Scalar, rhs: Tensor) -> Tensor<Bool>
Возвращает тензор логических скаляров путем поэлементного вычисления
lhs == rhs
.Примечание
.==
поддерживает вещание.Декларация
public static func .== (lhs: Tensor, rhs: Scalar) -> Tensor<Bool>
Возвращает тензор логических скаляров путем поэлементного вычисления
lhs != rhs
.Примечание
.!=
поддерживает вещание.Декларация
public static func .!= (lhs: Tensor, rhs: Scalar) -> Tensor<Bool>
Возвращает тензор логических значений, указывающий, равны ли элементы
self
примерно таким же, как иother
.Предварительное условие
self
иother
должны иметь одинаковую форму.Декларация
public func elementsAlmostEqual( _ other: Tensor, tolerance: Scalar = Scalar.ulpOfOne.squareRoot() ) -> Tensor<Bool>
Возвращает
true
, если все элементыself
примерно равны элементамother
.Предварительное условие
self
иother
должны иметь одинаковую форму.Декларация
public func isAlmostEqual( to other: Tensor, tolerance: Scalar = Scalar.ulpOfOne.squareRoot() ) -> Bool
Выполняет перекрестную сумму реплик для этого тензора. Одна и та же сумма перекрестных реплик должна происходить на каждом из других устройств, участвующих в сумме.
Декларация
public mutating mutating func crossReplicaSum(_ scale: Double)
Декларация
@derivative init(repeating: shape)
Выполните поэлементное преобразование типа из тензора
Bool
.Декларация
public init(_ other: Tensor<Bool>)
Выполните поэлементное преобразование из другого
Tensor
.Декларация
@differentiable public init<OtherScalar>(_ other: Tensor<OtherScalar>) where OtherScalar : Numeric, OtherScalar : TensorFlowScalar
Декларация
@derivative init(_: <<error type>>)
Декларация
@derivative init(stacking: alongAxis)
Декларация
@derivative init(concatenating: alongAxis)
Создает тензор, в котором все скаляры установлены в ноль.
Декларация
public init(zeros shape: TensorShape, on device: Device = .default)
Параметры
shape
Форма тензора.
Создает тензор, в котором все скаляры равны единице.
Декларация
public init(ones shape: TensorShape, on device: Device = .default)
Параметры
shape
Форма тензора.
Создает тензор со всеми скалярами, установленными в ноль, который имеет ту же форму и тип, что и предоставленный тензор.
Декларация
public init(zerosLike other: Tensor)
Параметры
other
Тензор, форму и тип данных которого следует использовать.
Создает тензор, в котором все скаляры имеют ту же форму и тип, что и предоставленный тензор.
Декларация
public init(onesLike other: Tensor)
Параметры
other
Тензор, форму и тип данных которого следует использовать.
Создает одномерный тензор, представляющий последовательность от начального значения до конечного значения (но не включая его), шагая на указанную величину.
Декларация
public init( rangeFrom start: Scalar, to end: Scalar, stride: Scalar, on device: Device = .default )
Параметры
start
Начальное значение, используемое для последовательности. Если последовательность содержит какие-либо значения, первое из них —
start
.end
Конечное значение, ограничивающее последовательность.
end
никогда не является элементом результирующей последовательности.stride
Сумма, которую необходимо выполнить при каждой итерации.
stride
должен быть положительным.Создает одномерный тензор, представляющий последовательность от начального значения до конечного значения (но не включая его), шагая на указанную величину.
Декларация
public init(rangeFrom start: Tensor<Scalar>, to end: Tensor<Scalar>, stride: Tensor<Scalar>)
Параметры
start
Начальное значение, используемое для последовательности. Если последовательность содержит какие-либо значения, первое из них —
start
.end
Конечное значение, ограничивающее последовательность.
end
никогда не является элементом результирующей последовательности.stride
Сумма, которую необходимо выполнить при каждой итерации.
stride
должен быть положительным.Создает горячий тензор по заданным индексам. Местоположение, представленное
indices
, принимает значениеonValue
(по умолчанию1
), а все остальные местоположения принимают значениеoffValue
(по умолчанию0
). Если входныеindices
имеют рангn
, новый тензор будет иметь рангn+1
. Новая ось создается наaxis
измерения (по умолчанию новая ось добавляется в конце).Если
indices
является скаляром, форма нового тензора будетdepth
длины length .Если
indices
представляет собой вектор длиныfeatures
, выходная форма будет следующей: объекты x глубина, если ось == -1 глубина x объекты, если ось == 0Если
indices
представляют собой матрицу (пакет) с формой[batch, features]
, выходная форма будет следующей: партия x характеристики x глубина, если ось == -1 партия x глубина x характеристики, если ось == 1 глубина x партия x характеристики , если ось == 0Декларация
public init( oneHotAtIndices indices: Tensor<Int32>, depth: Int, onValue: Scalar = 1, offValue: Scalar = 0, axis: Int = -1 )
Параметры
indices
Tensor
индексов.depth
Скаляр, определяющий глубину одного горячего измерения.
onValue
Скаляр, определяющий значение в позиции, на которую указывает некоторый индекс в
indices
.offValue
Скаляр, определяющий значение в месте, на которое не ссылается какой-либо индекс в
indices
.axis
Ось для заполнения. По умолчанию —
-1
, новая самая внутренняя ось.
Создает одномерный тензор, представляющий последовательность от начального значения до конечного значения включительно, расположенную равномерно для создания указанного количества значений.
Декларация
public init( linearSpaceFrom start: Scalar, to end: Scalar, count: Int, on device: Device = .default )
Параметры
start
Начальное значение, используемое для последовательности. Если последовательность содержит какие-либо значения, первое из них —
start
.end
Конечное значение, ограничивающее последовательность.
end
— последний элемент результирующей последовательности.count
Количество значений в результирующей последовательности.
count
должен быть положительным.Создает одномерный тензор, представляющий последовательность от начального значения до конечного значения включительно, расположенную равномерно для создания указанного количества значений.
Предварительное условие
start
,to
иcount
должны быть тензорами, содержащими одно скалярное значение.Декларация
public init(linearSpaceFrom start: Tensor<Scalar>, to end: Tensor<Scalar>, count: Tensor<Int32>)
Параметры
start
Начальное значение, используемое для последовательности. Если последовательность содержит какие-либо значения, первое из них —
start
.end
Конечное значение, ограничивающее последовательность.
end
— последний элемент результирующей последовательности.count
Количество значений в результирующей последовательности.
count
должен быть положительным.
Создает тензор указанной формы, случайным образом выбирая скалярные значения из равномерного распределения между
lowerBound
иupperBound
.Декларация
public init( randomUniform shape: TensorShape, lowerBound: Tensor<Scalar>? = nil, upperBound: Tensor<Scalar>? = nil, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
Параметры
shape
Размеры тензора.
lowerBound
Нижняя граница распределения.
upperBound
Верхняя граница распределения.
seed
Начальная ценность.
Создает тензор указанной формы, случайным образом выбирая скалярные значения из равномерного распределения между
lowerBound
иupperBound
.Декларация
public init( randomUniform shape: TensorShape, lowerBound: Tensor<Scalar>? = nil, upperBound: Tensor<Scalar>? = nil, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
Параметры
shape
Размеры тензора.
lowerBound
Нижняя граница распределения.
upperBound
Верхняя граница распределения.
seed
Начальная ценность.
Создает тензор указанной формы, случайным образом выбирая скалярные значения из нормального распределения.
Декларация
public init( randomNormal shape: TensorShape, mean: Tensor<Scalar>? = nil, standardDeviation: Tensor<Scalar>? = nil, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
Параметры
shape
Размеры тензора.
mean
Среднее значение распределения.
standardDeviation
Стандартное отклонение распределения.
seed
Начальная ценность.
Создает тензор указанной формы, случайным образом выбирая скалярные значения из усеченного нормального распределения.
Декларация
public init( randomTruncatedNormal shape: TensorShape, mean: Tensor<Scalar>? = nil, standardDeviation: Tensor<Scalar>? = nil, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
Параметры
shape
Размеры тензора.
mean
Среднее значение распределения.
standardDeviation
Стандартное отклонение распределения.
seed
Начальная ценность.
Создает тензор путем извлечения выборок из категориального распределения.
Декларация
public init<T: TensorFlowFloatingPoint>( randomCategorialLogits: Tensor<T>, sampleCount: Int32, seed: TensorFlowSeed = Context.local.randomSeed )
Параметры
randomCategorialLogits
Двумерный тензор с формой
[batchSize, classCount]
. Каждый срез[i, :]
представляет собой ненормализованные логарифмические вероятности для всех классов.sampleCount
0-Д. Количество независимых выборок, которые нужно нарисовать для каждого среза строки.
seed
Начальная ценность.
Возвращаемое значение
Двумерный тензор с формой
[batchSize, sampleCount]
. Каждый срез[i, :]
содержит нарисованные метки классов с диапазоном[0, classCount)
.
Создает тензор указанной формы, выполняя универсальную инициализацию Glorot (Xavier).
Он извлекает случайные выборки из равномерного распределения между
-limit
иlimit
, сгенерированного генератором случайных чисел по умолчанию, гдеlimit
равенsqrt(6 / (fanIn + fanOut))
иfanIn
/fanOut
представляет собой количество входных и выходных функций, умноженное на восприимчивую размер поля.Ссылка: «Понимание сложности обучения нейронных сетей глубокого прямого распространения»
Декларация
public init( glorotUniform shape: TensorShape, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
Параметры
shape
Размеры тензора.
seed
Начальная ценность.
Создает тензор указанной формы, выполняя нормальную инициализацию Glorot (Xavier).
Он извлекает случайные выборки из усеченного нормального распределения с центром в
0
со стандартным отклонениемsqrt(2 / (fanIn + fanOut))
генерируемым генератором случайных чисел по умолчанию, гдеfanIn
/fanOut
представляют собой количество входных и выходных функций, умноженное на восприимчивое поле. размер.Ссылка: «Понимание сложности обучения нейронных сетей глубокого прямого распространения»
Декларация
public init( glorotNormal shape: TensorShape, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
Параметры
shape
Размеры тензора.
seed
Начальная ценность.
Создает тензор указанной формы, выполняя равномерную инициализацию He (Kaiming).
Он извлекает случайные выборки из равномерного распределения между
-limit
иlimit
, сгенерированного генератором случайных чисел по умолчанию, гдеlimit
— этоsqrt(6 / fanIn)
аfanIn
представляет собой количество входных объектов, умноженное на размер восприимчивого поля.Декларация
public init( heUniform shape: TensorShape, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
Параметры
shape
Размеры тензора.
seed
Начальная ценность.
Создает тензор указанной формы, выполняя нормальную инициализацию He (Kaiming).
Он извлекает случайные выборки из усеченного нормального распределения с центром в
0
со стандартным отклонениемsqrt(2 / fanIn))
сгенерированным генератором случайных чисел по умолчанию, гдеfanIn
представляет собой количество входных объектов, умноженное на размер восприимчивого поля.Декларация
public init( heNormal shape: TensorShape, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
Параметры
shape
Размеры тензора.
seed
Начальная ценность.
Создает тензор указанной формы, выполняя универсальную инициализацию LeCun.
Он извлекает случайные выборки из равномерного распределения между
-limit
иlimit
, сгенерированного генератором случайных чисел по умолчанию, гдеlimit
— этоsqrt(3 / fanIn)
аfanIn
представляет собой количество входных объектов, умноженное на размер восприимчивого поля.Ссылка: «Эффективный BackProp»
Декларация
public init( leCunUniform shape: TensorShape, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
Параметры
shape
Размеры тензора.
seed
Начальная ценность.
Создает тензор указанной формы, выполняя обычную инициализацию LeCun.
Он извлекает случайные выборки из усеченного нормального распределения с центром в
0
со стандартным отклонениемsqrt(1 / fanIn)
, сгенерированным генератором случайных чисел по умолчанию, гдеfanIn
представляет собой количество входных объектов, умноженное на размер восприимчивого поля.Ссылка: «Эффективный BackProp»
Декларация
public init( leCunNormal shape: TensorShape, seed: TensorFlowSeed = Context.local.randomSeed, on device: Device = .default )
Параметры
shape
Размеры тензора.
seed
Начальная ценность.
Создает ортогональную матрицу или тензор.
Если форма инициализируемого тензора двумерна, он инициализируется ортогональной матрицей, полученной в результате QR-разложения матрицы случайных чисел, полученной из нормального распределения. Если в матрице меньше строк, чем столбцов, то выходные данные будут иметь ортогональные строки. В противном случае выходные данные будут иметь ортогональные столбцы.
Если форма инициализируемого тензора более чем двумерна, инициализируется матрица формы
[shape[0] * ... * shape[rank - 2], shape[rank - 1]]
. Впоследствии матрица изменяется, чтобы придать тензору желаемой формы.Декларация
public init( orthogonal shape: TensorShape, gain: Tensor<Scalar> = Tensor<Scalar>(1), seed: TensorFlowSeed = Context.local.randomSeed )
Параметры
shape
Форма тензора.
gain
Мультипликативный коэффициент, применяемый к ортогональному тензору.
seed
Кортеж из двух целых чисел для заполнения генератора случайных чисел.
Возвращает [пакетную] диагональную часть [пакетного] тензора. Для экземпляра тензора формы
[..., M, N]
выходными данными является тензор формы[..., K]
, гдеK
равноmin(N, M)
.Например:
// 't' is [[1, 0, 0, 0] // [0, 2, 0, 0] // [0, 0, 3, 0] // [0, 0, 0, 4]] t.diagonalPart() // [1, 2, 3, 4]
Декларация
@differentiable public func diagonalPart() -> Tensor
Создает [пакетный] диагональный массив. Для экземпляра тензора формы
[..., M]
выходными данными является тензор формы[..., M, M]
.Например:
// 't' is [1, 2, 3, 4] t.diagonal() // [[1, 0, 0, 0] // [0, 2, 0, 0] // [0, 0, 3, 0] // [0, 0, 0, 4]]
Декларация
@differentiable public func diagonal() -> Tensor
Возвращает
self
с новыми диагональными значениями, учитывая, чтоself
является необязательной пакетной матрицей.Возвращенный тензор имеет ту же форму и значения, что и
self
, за исключением указанных диагоналей самых внутренних матриц, которые перезаписываются значениями вdiagonal
.Диагональ параметра: тензор с
rank - 1
представляющий новые значения диагонали.Декларация
public func withDiagonal(_ diagonal: Tensor<Scalar>) -> Tensor
Декларация
@differentiable(wrt: self) public func bandPart(_ subdiagonalCount: Int, _ superdiagonalCount: Int) -> Tensor
Возвращает копию самого внутреннего тензора, определенного границами центральной полосы. Выходные данные — тензор той же формы, что и экземпляр
[..., :, :]
.Например:
// 't' is [[ 0, 1, 2, 3] // [-1, 0, 1, 2] // [-2, -1, 0, 1] // [-3, -2, -1, 0]] t.bandPart(1, -1) // [[ 0, 1, 2, 3] // [-1, 0, 1, 2] // [ 0, -1, 0, 1] // [ 0, 0, -1, 0]] t.bandPart(2, 1) // [[ 0, 1, 0, 0] // [-1, 0, 1, 0] // [-2, -1, 0, 1] // [ 0, -2, -1, 0]]
Декларация
@differentiable public func bandPart(subdiagonalCount: Int, superdiagonalCount: Int) -> Tensor
Параметры
subdiagonalCount
Количество сохраняемых субдиагоналей. Если отрицательно, сохраните весь нижний треугольник.
superdiagonalCount
Количество сохраняемых супердиагоналей. Если отрицательно, сохраните весь верхний треугольник.
Возвращает QR-разложение каждой внутренней матрицы в тензоре, тензора с внутренними ортогональными матрицами
q
и тензора с внутренними верхними треугольными матрицамиr
, так что тензор равенmatmul(q, r)
.Декларация
public func qrDecomposition(fullMatrices: Bool = false) -> ( q: Tensor<Scalar>, r: Tensor<Scalar> )
Параметры
fullMatrices
Если
true
, вычислите полноразмерныеq
иr
. В противном случае вычислите только ведущие столбцыmin(shape[rank - 1], shape[rank - 2])
q
.Возвращает разложение
self
по сингулярному значению, учитывая, чтоself
является необязательной пакетной матрицей.Разложение по сингулярным значениям (SVD) необязательной пакетной матрицы
self
— это значенияs
,u
иv
, такие, что:self[..., :, :] = u[..., :, :] • s[..., :, :].diagonal() • v[..., :, :].transposed()`
self
must be a tensor with shape
[…, M, N]. Let
K = min(M, N)`.Предварительное условие
self
должен быть тензором формы[..., M, N]
.Декларация
public func svd(computeUV: Bool = true, fullMatrices: Bool = false) -> ( s: Tensor<Scalar>, u: Tensor<Scalar>?, v: Tensor<Scalar>? )
Параметры
computeUV
Если
true
, левый и правый сингулярные векторы вычисляются и возвращаются какu
иv
соответственно. Еслиfalse
,nil
значения возвращаются какu
иv
.fullMatrices
Если
true
,u
иv
соответственно имеют формы[..., M, M]
и[..., N, N]
. Еслиfalse
,u
иv
соответственно имеют формы[..., M, K]
и[..., K, N]
. Игнорируется, еслиcomputeUV
установлено значение false.Возвращаемое значение
- s: сингулярные значения формы
[..., K]
. Внутри каждого вектора сингулярные значения сортируются в порядке убывания. - u: левые сингулярные векторы.
- v: Правильные сингулярные векторы.
- s: сингулярные значения формы
Квадратный корень из
x
.Для реальных типов, если
x
отрицательно, результатом будет.nan
. Для сложных типов имеется разрез на отрицательной действительной оси.Декларация
@differentiable public static func sqrt(_ x: `Self`) -> Tensor<Scalar>
Косинус
x
, интерпретируемый как угол в радианах.Декларация
@differentiable public static func cos(_ x: `Self`) -> Tensor<Scalar>
Синус
x
, интерпретируемый как угол в радианах.Декларация
@differentiable public static func sin(_ x: `Self`) -> Tensor<Scalar>
Тангенс
x
, интерпретируемый как угол в радианах.Декларация
@differentiable public static func tan(_ x: `Self`) -> Tensor<Scalar>
Обратный косинус
x
в радианах.Декларация
@differentiable public static func acos(_ x: `Self`) -> Tensor<Scalar>
Обратная синус
x
в радианах.Декларация
@differentiable public static func asin(_ x: `Self`) -> Tensor<Scalar>
Обратная касательная
x
в радианах.Декларация
@differentiable public static func atan(_ x: `Self`) -> Tensor<Scalar>
Гиперболический косинус
x
.Декларация
@differentiable public static func cosh(_ x: `Self`) -> Tensor<Scalar>
Гиперболический синус
x
.Декларация
@differentiable public static func sinh(_ x: `Self`) -> Tensor<Scalar>
Гиперболическая касательная из
x
.Декларация
@differentiable public static func tanh(_ x: `Self`) -> Tensor<Scalar>
Обратный гиперболический косинус
x
Декларация
@differentiable public static func acosh(_ x: `Self`) -> Tensor<Scalar>
Обратная гиперболическая синус из
x
.Декларация
@differentiable public static func asinh(_ x: `Self`) -> Tensor<Scalar>
Обратная гиперболическая касательная из
x
.Декларация
@differentiable public static func atanh(_ x: `Self`) -> Tensor<Scalar>
Экспоненциальная функция, применяемая к
x
илиe**x
.Декларация
@differentiable public static func exp(_ x: `Self`) -> Tensor<Scalar>
Два подняты к власти
x
.Декларация
@differentiable public static func exp2(_ x: `Self`) -> Tensor<Scalar>
Десять поднято к власти
x
.Декларация
@differentiable public static func exp10(_ x: `Self`) -> Tensor<Scalar>
exp(x) - 1
оценен так, чтобы сохранить точность близко к нулю.Декларация
@differentiable public static func expm1(_ x: `Self`) -> Tensor<Scalar>
Естественный логарифм
x
.Декларация
@differentiable public static func log(_ x: `Self`) -> Tensor<Scalar>
Базовый-два логарифма
x
.Декларация
@differentiable public static func log2(_ x: `Self`) -> Tensor<Scalar>
Базовый логарифм
x
.Декларация
@differentiable public static func log10(_ x: `Self`) -> Tensor<Scalar>
log(1 + x)
оценивается так, чтобы сохранить точность близко к нулю.Декларация
@differentiable public static func log1p(_ x: `Self`) -> Tensor<Scalar>
exp(y log(x))
, рассчитанная без потери промежуточной точности.Для реальных типов, если
x
отрицателен, результат - NAN, даже еслиy
имеет неотъемлемое значение. Для сложных типов есть разрез на отрицательной реальной оси.Декларация
@differentiable public static func pow(_ x: `Self`, _ y: `Self`) -> Tensor<Scalar>
x
поднят кn
.Продукт
n
копийx
.Декларация
@differentiable public static func pow(_ x: `Self`, _ n: Int) -> Tensor<Scalar>
n
th root ofx
.Для реальных типов, если
x
отрицательный иn
ровный, результатом является NAN. Для сложных типов существует ветвь вдоль негативной реальной оси.Декларация
@differentiable public static func root(_ x: `Self`, _ n: Int) -> Tensor<Scalar>
Декларация
public typealias VectorSpaceScalar = Float
Декларация
public func scaled(by scale: Float) -> Tensor<Scalar>
Декларация
public func adding(_ scalar: Float) -> Tensor<Scalar>
Декларация
public func subtracting(_ scalar: Float) -> Tensor<Scalar>
Добавляет скаляр ко всем скалям тензора и производит сумму.
Декларация
@differentiable public static func + (lhs: Scalar, rhs: Tensor) -> Tensor
Добавляет скаляр ко всем скалям тензора и производит сумму.
Декларация
@differentiable public static func + (lhs: Tensor, rhs: Scalar) -> Tensor
Вычитает скаляр из каждого скаля тензора и создает разницу.
Декларация
@differentiable public static func - (lhs: Scalar, rhs: Tensor) -> Tensor
Вычитает скаляр из каждого скатара тензора и вызывает разницу
Декларация
@differentiable public static func - (lhs: Tensor, rhs: Scalar) -> Tensor
Добавляет два тензора и хранит результат в переменную левой стороны.
Примечание
+=
поддерживает вещание.Декларация
public static func += (lhs: inout Tensor, rhs: Tensor)
Добавляет скаляр ко всем скалям тензора и сохраняет результат в переменной левой стороны.
Декларация
public static func += (lhs: inout Tensor, rhs: Scalar)
Вычитает второй тенсор из первого и хранит результат в переменной левой стороны.
Примечание
-=
поддерживает вещание.Декларация
public static func -= (lhs: inout Tensor, rhs: Tensor)
Вычитает скаляр из каждого скаля тензора и сохраняет результат в переменной левой стороны.
Декларация
public static func -= (lhs: inout Tensor, rhs: Scalar)
Возвращает тензор, произведенный путем умножения двух тензоров.
Примечание
*
Поддерживает вещание.Декларация
@differentiable public static func * (lhs: Tensor, rhs: Tensor) -> Tensor
Возвращает тензор, умножая его на каждый скаляр тензора.
Декларация
@differentiable public static func * (lhs: Scalar, rhs: Tensor) -> Tensor
Умножается скаляр на каждом скатаре тензора и производит продукт.
Декларация
@differentiable public static func * (lhs: Tensor, rhs: Scalar) -> Tensor
Умножается два тензора и хранит результат в переменной левой стороны.
Примечание
*=
поддерживает вещание.Декларация
public static func *= (lhs: inout Tensor, rhs: Tensor)
Умножает тензор на скаляр, транслируя скаляр, и сохраняет результат в переменной левой стороны.
Декларация
public static func *= (lhs: inout Tensor, rhs: Scalar)
Возвращает коэффициент деления первого тензора на второй.
Примечание
/
поддерживает вещание.Декларация
@differentiable public static func / (lhs: Tensor, rhs: Tensor) -> Tensor
Возвращает коэффициент деления скаляр на тензор, транслируя скаляр.
Декларация
@differentiable public static func / (lhs: Scalar, rhs: Tensor) -> Tensor
Возвращает коэффициент деления тензора на скаляр, транслируя скаляр.
Декларация
@differentiable public static func / (lhs: Tensor, rhs: Scalar) -> Tensor
Разделит первый тензор на второй и хранит коэффициент в переменной левой стороны.
Декларация
public static func /= (lhs: inout Tensor, rhs: Tensor)
Разделит тензор на скаляр, транслируя скаляр и сохраняет коэффициент в переменной левой стороны.
Декларация
public static func /= (lhs: inout Tensor, rhs: Scalar)
Возвращает оставшуюся часть деления первого тензора на второй.
Примечание
%
поддерживает вещание.Декларация
public static func % (lhs: Tensor, rhs: Tensor) -> Tensor
Возвращает оставшуюся часть деления тензора на скаляр, транслируя скаляр.
Декларация
public static func % (lhs: Tensor, rhs: Scalar) -> Tensor
Возвращает оставшуюся часть разделения скаляр на тензор, транслируя скаляр.
Декларация
public static func % (lhs: Scalar, rhs: Tensor) -> Tensor
Разделит первый тензор на второй и хранит остаток в переменной левой стороны.
Декларация
public static func %= (lhs: inout Tensor, rhs: Tensor)
Делит тензор на скаляр и хранит остаток в переменной левой стороны.
Декларация
public static func %= (lhs: inout Tensor, rhs: Scalar)
Возвращает
!self
.Декларация
public func elementsLogicalNot() -> Tensor
Возвращает
self && other
элементе.Примечание
&&
поддерживает вещание.Декларация
public func elementsLogicalAnd(_ other: Tensor) -> Tensor
Возвращает
self && other
элемент, транслируяother
.Декларация
public func elementsLogicalAnd(_ other: Scalar) -> Tensor
Возвращает
self || other
элемент.Декларация
public func elementsLogicalOr(_ other: Tensor) -> Tensor
Возвращает
self || other
элементное, транслируяother
.Декларация
public func elementsLogicalOr(_ other: Scalar) -> Tensor
Возвращает
max(min(self, max), min)
.Декларация
@differentiable public func clipped(min: Tensor, max: Tensor) -> Tensor
Возвращает
max(min(self, max), min)
.Декларация
@differentiable(wrt: (self, min) ) public func clipped(min: Tensor, max: Scalar) -> Tensor
Возвращает
max(min(self, max), min)
.Декларация
@differentiable(wrt: (self, max) ) public func clipped(min: Scalar, max: Tensor) -> Tensor
Возвращает
max(min(self, max), min)
.Декларация
@differentiable(wrt: self) public func clipped(min: Scalar, max: Scalar) -> Tensor
Возвращает отрицание указанного тензора.
Декларация
@differentiable public prefix static func - (rhs: Tensor) -> Tensor
Декларация
@differentiable(wrt: self) public func squared() -> Tensor
Возвращает логический тензор, указывающий, какие элементы
x
являются конечными.Декларация
public var isFinite: Tensor<Bool> { get }
Возвращает логический тензор, указывающий, какие элементы
x
являются бесконечными.Декларация
public var isInfinite: Tensor<Bool> { get }
Возвращает логический тензор, указывающий, какие элементы
x
имеют NAN.Декларация
public var isNaN: Tensor<Bool> { get }
Возвращает
true
если все скаляры равныtrue
. В противном случае возвращаетfalse
.Декларация
public func all() -> Bool
Возвращает
true
если какие -либо скаляры равныtrue
. В противном случае возвращаетfalse
.Декларация
public func any() -> Bool
Выполняет логическую и работу вдоль указанных осей. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
public func all(squeezingAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Выполняет логическую и работу вдоль указанных осей. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
public func any(squeezingAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Выполняет логическую и работу вдоль указанных осей. Уменьшенные размеры сохраняются со значением 1.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
public func all(alongAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Выполняет логическую или операцию вдоль указанных осей. Уменьшенные размеры сохраняются со значением 1.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
public func any(alongAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Декларация
@differentiable public func min() -> Tensor
Декларация
@differentiable public func max() -> Tensor
Возвращает максимальные значения вдоль указанных осей. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func max(squeezingAxes axes: Tensor<Int32>) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает максимальные значения вдоль указанных осей. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func max(squeezingAxes axes: [Int]) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает максимальные значения вдоль указанных осей. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func max(squeezingAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает минимальные значения вдоль указанных осей. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func min(squeezingAxes axes: Tensor<Int32>) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает минимальные значения вдоль указанных осей. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func min(squeezingAxes axes: [Int]) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает минимальные значения вдоль указанных осей. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func min(squeezingAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает индексы максимальных значений вдоль указанных осей. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
public func argmax(squeezingAxis axis: Int) -> Tensor<Int32>
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает индексы минимальных значений вдоль указанных осей. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
public func argmin(squeezingAxis axis: Int) -> Tensor<Int32>
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает минимум вдоль указанных осей. Уменьшенные размеры сохраняются со значением 1.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func min(alongAxes axes: Tensor<Int32>) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает минимум вдоль указанных осей. Уменьшенные размеры сохраняются со значением 1.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func min(alongAxes axes: [Int]) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает минимум вдоль указанных осей. Уменьшенные размеры сохраняются со значением 1.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func min(alongAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает минимум вдоль указанных осей. Уменьшенные размеры сохраняются со значением 1.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func max(alongAxes axes: Tensor<Int32>) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает минимум вдоль указанных осей. Уменьшенные размеры сохраняются со значением 1.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func max(alongAxes axes: [Int]) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает минимум вдоль указанных осей. Уменьшенные размеры сохраняются со значением 1.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func max(alongAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает индекс максимального значения сплющенных скаляров.
Декларация
public func argmax() -> Tensor<Int32>
Возвращает индекс минимального значения сплющенных скаляр.
Декларация
public func argmin() -> Tensor<Int32>
Возвращает сумму вдоль указанных оси. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank...rank
.Декларация
@differentiable(wrt: self) public func sum(squeezingAxes axes: Tensor<Int32>) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает сумму вдоль указанных оси. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank...rank
.Декларация
@differentiable(wrt: self) public func sum(squeezingAxes axes: [Int]) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает сумму вдоль указанных оси. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank...rank
.Декларация
@differentiable(wrt: self) public func sum(squeezingAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Декларация
@differentiable(wrt: self) public func sum() -> Tensor
Возвращает сумму вдоль указанных оси. Уменьшенные размеры сохраняются со значением 1.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func sum(alongAxes axes: Tensor<Int32>) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает сумму вдоль указанных оси. Уменьшенные размеры сохраняются со значением 1.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func sum(alongAxes axes: [Int]) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает сумму вдоль указанных оси. Уменьшенные размеры сохраняются со значением 1.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func sum(alongAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает продукт вдоль указанных осей. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank...rank
.Декларация
@differentiable(wrt: self) public func product(squeezingAxes axes: Tensor<Int32>) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает продукт вдоль указанных осей. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank...rank
.Декларация
@differentiable(wrt: self) public func product(squeezingAxes axes: [Int]) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает продукт вдоль указанных осей. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank...rank
.Декларация
@differentiable(wrt: self) public func product(squeezingAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Декларация
@differentiable(wrt: self) public func product() -> Tensor
Возвращает продукт вдоль указанных осей. Уменьшенные размеры сохраняются со значением 1.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
public func product(alongAxes axes: Tensor<Int32>) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает продукт вдоль указанных осей. Уменьшенные размеры сохраняются со значением 1.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
public func product(alongAxes axes: [Int]) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает продукт вдоль указанных осей. Уменьшенные размеры сохраняются со значением 1.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
public func product(alongAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает среднее арифметику вдоль указанных осей. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank...rank
.Декларация
@differentiable(wrt: self) public func mean(squeezingAxes axes: Tensor<Int32>) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает среднее арифметику вдоль указанных осей. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank...rank
.Декларация
@differentiable(wrt: self) public func mean(squeezingAxes axes: [Int]) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает среднее арифметику вдоль указанных осей. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank...rank
.Декларация
@differentiable(wrt: self) public func mean(squeezingAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Декларация
@differentiable(wrt: self) public func mean() -> Tensor
Возвращает среднее арифметику вдоль указанных осей. Уменьшенные размеры сохраняются со значением 1.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func mean(alongAxes axes: Tensor<Int32>) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает среднее арифметику вдоль указанных осей. Уменьшенные размеры сохраняются со значением 1.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func mean(alongAxes axes: [Int]) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает среднее арифметику вдоль указанных осей. Уменьшенные размеры сохраняются со значением 1.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func mean(alongAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает дисперсию вдоль указанных осей. Уменьшенные размеры удаляются. Не применяет коррекцию Бесселя.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func variance(squeezingAxes axes: Tensor<Int32>) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает дисперсию вдоль указанных осей. Уменьшенные размеры удаляются. Не применяет коррекцию Бесселя.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func variance(squeezingAxes axes: [Int]) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает дисперсию вдоль указанных осей. Пониженные размеры сохраняются со значением 1. не применяет коррекцию Бесселя.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func variance(squeezingAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Декларация
@differentiable(wrt: self) public func variance() -> Tensor
Возвращает дисперсию вдоль указанных осей. Пониженные размеры сохраняются со значением 1. не применяет коррекцию Бесселя.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func variance(alongAxes axes: Tensor<Int32>) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает дисперсию вдоль указанных осей. Пониженные размеры сохраняются со значением 1. не применяет коррекцию Бесселя.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func variance(alongAxes axes: [Int]) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает дисперсию вдоль указанных осей. Пониженные размеры сохраняются со значением 1. не применяет коррекцию Бесселя.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func variance(alongAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает кумулятивную сумму этого тензора вдоль указанной оси. По умолчанию эта функция выполняет инклюзивную кумулятивную сумму, что означает, что первый элемент ввода идентичен первым элементам выхода:
Tensor<Float>([a, b, c]).cumulativeSum() = Tensor<Float>([a, a + b, a + b + c])
Установив
exclusive
аргумент наtrue
, вместо этого выполняется исключительная совокупная сумма:Tensor<Float>([a, b, c]).cumulativeSum(exclusive: true) = Tensor<Float>([0, a, a + b])
Установив
reverse
аргумент наtrue
, совокупная сумма выполняется в противоположном направлении:Tensor<Float>([a, b, c]).cumulativeSum(reverse: true) == Tensor<Float>([a + b + c, a + b, a])
Это более эффективно, чем отдельно обращать вспять результирующий тензор.
Предварительное условие
axis
должна быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func cumulativeSum( alongAxis axis: Int, exclusive: Bool = false, reverse: Bool = false ) -> Tensor
Параметры
axis
Ось, вдоль которой можно выполнить совокупную работу.
exclusive
Указывает, выполнять ли исключительную кумулятивную сумму.
reverse
Указывает, выполнять ли совокупную сумму в обратном порядке.
Возвращаемое значение
Результат совокупной операции суммы.
Возвращает кумулятивную сумму этого тензора вдоль указанной оси. По умолчанию эта функция выполняет инклюзивную кумулятивную сумму, что означает, что первый элемент ввода идентичен первым элементам выхода:
Tensor<Float>([a, b, c]).cumulativeSum() = Tensor<Float>([a, a + b, a + b + c])
Установив
exclusive
аргумент наtrue
, вместо этого выполняется исключительная совокупная сумма:Tensor<Float>([a, b, c]).cumulativeSum(exclusive: true) = Tensor<Float>([0, a, a + b])
Установив
reverse
аргумент наtrue
, совокупная сумма выполняется в противоположном направлении:Tensor<Float>([a, b, c]).cumulativeSum(reverse: true) == Tensor<Float>([a + b + c, a + b, a])
Это более эффективно, чем отдельно обращать вспять результирующий тензор.
Предварительное условие
axis.rank
должен быть0
.Предварительное условие
axis
должна быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func cumulativeSum( alongAxis axis: Tensor<Int32>, exclusive: Bool = false, reverse: Bool = false ) -> Tensor
Параметры
axis
Ось, вдоль которой можно выполнить совокупную работу.
exclusive
Указывает, выполнять ли исключительную кумулятивную сумму.
reverse
Указывает, выполнять ли совокупную сумму в обратном порядке.
Возвращаемое значение
Результат совокупной операции суммы.
Возвращает кумулятивный продукт этого тензора вдоль указанной оси. По умолчанию эта функция выполняет инклюзивный кумулятивный продукт, что означает, что первый элемент ввода идентичен первым элементам выхода:
Tensor<Float>([a, b, c]).cumulativeProduct() = Tensor<Float>([a, a * b, a * b * c])
Установив
exclusive
аргументtrue
, вместо этого выполняется эксклюзивный кумулятивный продукт:Tensor<Float>([a, b, c]).cumulativeProduct(exclusive: true) = Tensor<Float>([1, a, a * b])
Установив
reverse
аргумент наtrue
, совокупный продукт выполняется в противоположном направлении:Tensor<Float>([a, b, c]).cumulativeProduct(reverse: true) == Tensor<Float>([a * b * c, a * b, a])
Это более эффективно, чем отдельно обращать вспять результирующий тензор.
Предварительное условие
axis
должна быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func cumulativeProduct( alongAxis axis: Int, exclusive: Bool = false, reverse: Bool = false ) -> Tensor
Параметры
axis
Ось, вдоль которой можно выполнить совокупную работу продукта.
exclusive
Указывает, выполнять ли эксклюзивный кумулятивный продукт.
reverse
Указывает, выполнять ли совокупный продукт в обратном порядке.
Возвращаемое значение
Результат совокупной работы продукта.
Возвращает кумулятивный продукт этого тензора вдоль указанной оси. По умолчанию эта функция выполняет инклюзивный кумулятивный продукт, что означает, что первый элемент ввода идентичен первым элементам выхода:
Tensor<Float>([a, b, c]).cumulativeProduct() = Tensor<Float>([a, a * b, a * b * c])
Установив
exclusive
аргументtrue
, вместо этого выполняется эксклюзивный кумулятивный продукт:Tensor<Float>([a, b, c]).cumulativeProduct(exclusive: true) = Tensor<Float>([1, a, a * b])
Установив
reverse
аргумент наtrue
, совокупный продукт выполняется в противоположном направлении:Tensor<Float>([a, b, c]).cumulativeProduct(reverse: true) == Tensor<Float>([a * b * c, a * b, a])
Это более эффективно, чем отдельно обращать вспять результирующий тензор.
Предварительное условие
axis
должна иметь ранг0
.Предварительное условие
axis
должна быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func cumulativeProduct( alongAxis axis: Tensor<Int32>, exclusive: Bool = false, reverse: Bool = false ) -> Tensor
Параметры
axis
Ось, вдоль которой можно выполнить совокупную работу продукта.
exclusive
Указывает, выполнять ли эксклюзивный кумулятивный продукт.
reverse
Указывает, выполнять ли совокупный продукт в обратном порядке.
Возвращаемое значение
Результат совокупной работы продукта.
Возвращает стандартное отклонение элементов вдоль указанных осей. Уменьшенные размеры сохраняются со значением
1
. Не применяет коррекцию Бесселя.Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func standardDeviation(squeezingAxes axes: Tensor<Int32>) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает стандартное отклонение элементов вдоль указанных осей. Уменьшенные размеры сохраняются со значением
1
. Не применяет коррекцию Бесселя.Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func standardDeviation(squeezingAxes axes: [Int]) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает стандартное отклонение элементов вдоль указанных осей. Уменьшенные размеры сохраняются со значением
1
. Не применяет коррекцию Бесселя.Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func standardDeviation(squeezingAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает стандартное отклонение всех элементов в этом тензоре. Не применяет коррекцию Бесселя.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func standardDeviation() -> Tensor
Возвращает стандартное отклонение элементов вдоль указанных осей. Уменьшенные размеры сохраняются со значением
1
. Не применяет коррекцию Бесселя.Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func standardDeviation(alongAxes axes: Tensor<Int32>) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает стандартное отклонение элементов вдоль указанных осей. Уменьшенные размеры сохраняются со значением
1
. Не применяет коррекцию Бесселя.Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func standardDeviation(alongAxes axes: [Int]) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает стандартное отклонение элементов вдоль указанных осей. Уменьшенные размеры сохраняются со значением
1
. Не применяет коррекцию Бесселя.Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func standardDeviation(alongAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает
log(exp(self).sum(squeezingAxes: axes))
. Уменьшенные размеры удаляются.Эта функция является более численной стабильной, чем вычислительный
log(exp(self).sum(squeezingAxes: axes))
непосредственно. Это позволяет избежать переполнений, вызванных вычислениемexp
крупных входов и недостатков, вызванных вычислениемlog
небольших входов.Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func logSumExp(squeezingAxes axes: Tensor<Int32>) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает
log(exp(self).sum(squeezingAxes: axes))
. Уменьшенные размеры удаляются.Эта функция является более численной стабильной, чем вычислительный
log(exp(self).sum(squeezingAxes: axes))
непосредственно. Это позволяет избежать переполнений, вызванных вычислениемexp
крупных входов и недостатков, вызванных вычислениемlog
небольших входов.Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func logSumExp(squeezingAxes axes: [Int]) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает
log(exp(self).sum(squeezingAxes: axes))
. Уменьшенные размеры удаляются.Эта функция является более численной стабильной, чем вычислительный
log(exp(self).sum(squeezingAxes: axes))
непосредственно. Это позволяет избежать переполнений, вызванных вычислениемexp
крупных входов и недостатков, вызванных вычислениемlog
небольших входов.Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func logSumExp(squeezingAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает
log(exp(self).sum())
. Результат - скаляр.Эта функция является более численной стабильной, чем вычислительный
log(exp(self).sum())
напрямую. Это позволяет избежать переполнений, вызванных вычислениемexp
крупных входов и недостатков, вызванных вычислениемlog
небольших входов.Декларация
@differentiable(wrt: self) public func logSumExp() -> Tensor
Возвращает
log(exp(self).sum(alongAxes: axes))
. Уменьшенные размеры сохраняются со значением1
.Эта функция является более численной стабильной, чем вычислительный
log(exp(self).sum(alongAxes: axes))
. Это позволяет избежать переполнений, вызванных вычислениемexp
крупных входов и недостатков, вызванных вычислениемlog
небольших входов.Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func logSumExp(alongAxes axes: Tensor<Int32>) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает
log(exp(self).sum(alongAxes: axes))
. Уменьшенные размеры сохраняются со значением1
.Эта функция является более численной стабильной, чем вычислительный
log(exp(self).sum(alongAxes: axes))
. Это позволяет избежать переполнений, вызванных вычислениемexp
крупных входов и недостатков, вызванных вычислениемlog
небольших входов.Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func logSumExp(alongAxes axes: [Int]) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает
log(exp(self).sum(alongAxes: axes))
. Уменьшенные размеры сохраняются со значением1
.Эта функция является более численной стабильной, чем вычислительный
log(exp(self).sum(alongAxes: axes))
. Это позволяет избежать переполнений, вызванных вычислениемexp
крупных входов и недостатков, вызванных вычислениемlog
небольших входов.Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func logSumExp(alongAxes axes: Int...) -> Tensor
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает среднее значение и дисперсию этого тензора вдоль указанных осей. Уменьшенные размеры удаляются.
Предварительное условие
axes
должны иметь ранг1
.Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func moments(squeezingAxes axes: Tensor<Int32>) -> Moments<Scalar>
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает среднее значение и дисперсию этого тензора вдоль указанных осей. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func moments(squeezingAxes axes: [Int]) -> Moments<Scalar>
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает среднее значение и дисперсию этого тензора вдоль указанных осей. Уменьшенные размеры удаляются.
Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func moments(squeezingAxes axes: Int...) -> Moments<Scalar>
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает среднее значение и дисперсию элементов этого тензора.
Декларация
@differentiable(wrt: self) public func moments() -> Moments<Scalar>
Возвращает среднее значение и дисперсию этого тензора вдоль указанных осей. Уменьшенные размеры сохраняются со значением
1
.Предварительное условие
axes
должны иметь ранг1
.Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func moments(alongAxes axes: Tensor<Int32>) -> Moments<Scalar>
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает среднее значение и дисперсию этого тензора вдоль указанных осей. Уменьшенные размеры сохраняются со значением
1
.Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func moments(alongAxes axes: [Int]) -> Moments<Scalar>
Параметры
axes
Размеры, которые нужно уменьшить.
Возвращает среднее значение и дисперсию этого тензора вдоль указанных осей. Уменьшенные размеры сохраняются со значением
1
.Предварительное условие
Каждое значение вaxes
должно быть в диапазоне-rank..<rank
.Декларация
@differentiable(wrt: self) public func moments(alongAxes axes: Int...) -> Moments<Scalar>
Параметры
axes
Размеры, которые нужно уменьшить.
Выполняет умножение матрицы между двумя тензорами и дает результат.
Декларация
@differentiable public static func • (lhs: Tensor, rhs: Tensor) -> Tensor
Декларация
static func vjpInitDeviceAndPrecisionLike( _ value: Scalar, deviceAndPrecisionLike tensor: Tensor ) -> (value: Tensor, pullback: (Tensor) -> (Scalar, Tensor))
Возвращает тензор, вычисленный из пакетной нормализации входа вдоль указанной оси.
В частности, возвращает
(self - mu) / (var + epsilon) * gamma + beta
гдеmu
иvar
являются соответственно средним значением и дисперсиейself
вдольaxis
.Декларация
@differentiable(wrt: (self, offset, scale) public func batchNormalized( alongAxis axis: Int, offset: Tensor = Tensor(0), scale: Tensor = Tensor(1), epsilon: Scalar = 0.001 ) -> Tensor
Параметры
axis
Партийное измерение.
offset
Смещение, также известное как бета.
scale
Шкала, также известная как гамма.
epsilon
Небольшое значение добавило знаменателю для численной стабильности.
Объединяет два тензора вдоль последней оси.
Декларация
@differentiable public static func concatenate(_ lhs: Tensor, _ rhs: Tensor) -> Tensor
Добавляет два значения и дает их сумму.
Декларация
@differentiable public static func sum(_ lhs: Tensor, _ rhs: Tensor) -> Tensor
В среднем два значения.
Декларация
@differentiable public static func average(_ lhs: Tensor, _ rhs: Tensor) -> Tensor
Умножается два значения.
Декларация
@differentiable public static func multiply(_ lhs: Tensor, _ rhs: Tensor) -> Tensor
Сделайте два значения.
Декларация
@differentiable public static func stack(_ lhs: Tensor, _ rhs: Tensor) -> Tensor
Декларация
@derivative init(shape: scalars)
Декларация
public static func == (lhs: Tensor, rhs: Tensor) -> Bool
Декларация
public static func != (lhs: Tensor, rhs: Tensor) -> Bool
Декларация
public func encode(to encoder: Encoder) throws
Декларация
public init(from decoder: Decoder) throws
Скалярная ноль тензор.
Декларация
public static var zero: Tensor { get }
Добавляет два тензора и производит их сумму.
Примечание
+
поддерживает вещание.Декларация
@differentiable public static func + (lhs: Tensor, rhs: Tensor) -> Tensor
Вычитает один тензор из другого и вызывает их разницу.
Примечание
-
Поддерживает вещание.Декларация
@differentiable public static func - (lhs: Tensor, rhs: Tensor) -> Tensor
Скалярное тензор.
Декларация
public static var one: Tensor { get }
Возвращает элемент взаимного
self
.Декларация
public var reciprocal: Tensor { get }
Умножается два тензора по элементу и производит их продукт.
Примечание
.*
Поддерживает вещание.Декларация
public static func .* (lhs: Tensor, rhs: Tensor) -> Tensor
Декларация
public typealias TangentVector = Tensor
Декларация
public var zeroTangentVectorInitializer: () -> TangentVector { get }
Добавляет аннотацию.
Примечание: поддерживается только x10. Для других бэкэндов, ямеодифицированное
self
возвращается.Декларация
@differentiable(wrt: self) public func annotate(_ annotation: String) -> Tensor<Scalar>
Параметры
annotation
Аннотация должна быть добавлена.
Возвращаемое значение
Аннотированный тензор.
Декларация
@derivative func vjpAnnotate(_ annotation: String) -> ( value: Tensor<Scalar>, pullback: (Tensor<Scalar>) -> Tensor<Scalar> )