텐서 개요

Swift for TensorFlow API는 가속화된 계산을 수행하기 위한 기본 수단으로 Tensor 유형을 사용합니다. Tensor 값의 다차원 배열을 나타내며 Tensor 에 대한 작업은 두 백엔드 중 하나를 사용하여 사용 가능한 가속기로 자동으로 전달됩니다.

Tensor 포함된 값의 유형에 대해 일반적 입니다. 이러한 값의 유형은 TensorFlowScalar 준수해야 하며 일반적인 유형은 Float , Int32Bool 입니다. 예를 들어, 미리 결정된 값으로 두 개의 Float 포함하는 Tensor 를 초기화하려면 다음을 수행할 수 있습니다.

let tensor1 = Tensor<Float>([0.0, 1.0, 2.0])
let tensor2 = Tensor<Float>([1.5, 2.5, 3.5])

<Float> 유형 매개변수를 생략했다면 Swift는 Tensor<Double> 유형을 추론할 것입니다. Double Swift의 부동 소수점 리터럴의 기본 유형입니다. Float 값은 기계 학습 계산에서 더 일반적인 경향이 있으므로 여기서는 이를 사용합니다.

많은 일반 연산자가 Tensor 를 사용합니다. 예를 들어, 그 중 두 개를 추가하고 결과를 얻으려면 다음을 수행할 수 있습니다.

let tensor3 = tensor1 + tensor2

Tensor 에서 수행할 수 있는 작업의 전체 목록은 API 문서 에서 확인할 수 있습니다.

_Raw 작업

Tensor 작업은 가속기를 사용하는 두 가지 다른 방법으로 지원되지만 통합된 상위 수준 인터페이스를 가지고 있습니다. 내부적으로는 문제의 Tensor 에 사용되는 백엔드에 따라 _RawXLA 또는 _RawTFEager 버전으로 전달되는 _Raw 작업이 정의됩니다. TensorFlow 또는 X10에 대한 이러한 _Raw 바인딩은 자동으로 생성됩니다.

일반적으로 _Raw 작업과 직접 상호 작용할 필요는 없습니다. 관용적 Swift 인터페이스는 이들 위에 구성되었으며 이것이 일반적으로 Tensor 계산을 수행하는 방법입니다.

그러나 모든 기본 TensorFlow 작업에 일치하는 Swift 인터페이스가 있는 것은 아니므로 때때로 코드에서 _Raw 연산자에 액세스해야 할 수도 있습니다. 그렇게 해야 하는 경우 이것이 어떻게 작동하는지 보여주는 대화형 튜토리얼을 사용할 수 있습니다.