Các kiến trúc

Các cấu trúc sau đây có sẵn trên toàn cầu.

  • Sự kết hợp của hai chuỗi có cùng loại phần tử.

    Tuyên ngôn

    public struct Concatenation<Base1: Sequence, Base2: Sequence>: Sequence
    where Base1.Element == Base2.Element
    extension Concatenation: Collection where Base1: Collection, Base2: Collection
    extension Concatenation: BidirectionalCollection
    where Base1: BidirectionalCollection, Base2: BidirectionalCollection
    extension Concatenation: RandomAccessCollection
    where Base1: RandomAccessCollection, Base2: RandomAccessCollection
  • Chế độ xem được xoay trên một bộ sưu tập.

    Tuyên ngôn

    public struct RotatedCollection<Base> : Collection where Base : Collection
    extension RotatedCollection: BidirectionalCollection
    where Base: BidirectionalCollection
    extension RotatedCollection: RandomAccessCollection
    where Base: RandomAccessCollection
  • Tuyên ngôn

    public struct AnyDifferentiable : Differentiable
  • Một giá trị phái sinh được loại bỏ.

    Loại AnyDerivative chuyển tiếp các hoạt động của nó tới một giá trị phái sinh cơ sở cơ bản tùy ý tuân theo DifferentiableAdditiveArithmetic , ẩn các chi tiết cụ thể của giá trị cơ bản.

    Tuyên ngôn

    @frozen
    public struct AnyDerivative : Differentiable & AdditiveArithmetic
  • Mảng đa chiều gồm các phần tử là sự tổng quát hóa của vectơ và ma trận thành các chiều có khả năng cao hơn.

    Tham số chung Scalar mô tả loại đại số vô hướng trong tensor (chẳng hạn như Int32 , Float , v.v.).

    Tuyên ngôn

    @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
  • Hàm pullback thực hiện chuyển đổi phát sóng hai Tensors .

    Tuyên ngôn

    public struct BroadcastingPullback
  • Ngữ cảnh lưu trữ thông tin theo ngữ cảnh cục bộ theo luồng được sử dụng bởi các API học sâu chẳng hạn như các lớp.

    Sử dụng Context.local để truy xuất bối cảnh luồng cục bộ hiện tại.

    Ví dụ:

    • Đặt giai đoạn học tập hiện tại thành đào tạo để các lớp như BatchNorm sẽ tính toán giá trị trung bình và phương sai khi áp dụng cho đầu vào.
      Context.local.learningPhase = .training
    
    • Đặt giai đoạn học hiện tại thành suy luận để các lớp như Dropout sẽ không loại bỏ các đơn vị khi áp dụng cho đầu vào.
      Context.local.learningPhase = .inference
    

    Tuyên ngôn

    public struct Context
  • Lớp tích chập 1-D (ví dụ: tích chập theo thời gian trên chuỗi thời gian).

    Lớp này tạo ra một bộ lọc tích chập được tích hợp với đầu vào của lớp để tạo ra một tensor đầu ra.

    Tuyên ngôn

    @frozen
    public struct Conv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lớp tích chập 2-D (ví dụ: tích chập không gian trên hình ảnh).

    Lớp này tạo ra một bộ lọc tích chập được tích hợp với đầu vào của lớp để tạo ra một tensor đầu ra.

    Tuyên ngôn

    @frozen
    public struct Conv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lớp tích chập 3-D để tích chập không gian/không gian-thời gian trên hình ảnh.

    Lớp này tạo ra một bộ lọc tích chập được tích hợp với đầu vào của lớp để tạo ra một tensor đầu ra.

    Tuyên ngôn

    @frozen
    public struct Conv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lớp tích chập chuyển đổi 1-D (ví dụ: tích chập chuyển đổi thời gian trên hình ảnh).

    Lớp này tạo ra một bộ lọc tích chập được chuyển đổi tích chập với đầu vào của lớp để tạo ra một tenxơ đầu ra.

    Tuyên ngôn

    @frozen
    public struct TransposedConv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lớp tích chập chuyển đổi 2-D (ví dụ: tích chập chuyển đổi không gian trên hình ảnh).

    Lớp này tạo ra một bộ lọc tích chập được chuyển đổi tích chập với đầu vào của lớp để tạo ra một tenxơ đầu ra.

    Tuyên ngôn

    @frozen
    public struct TransposedConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lớp tích chập chuyển đổi 3-D (ví dụ: tích chập chuyển đổi không gian trên hình ảnh).

    Lớp này tạo ra một bộ lọc tích chập được chuyển đổi tích chập với đầu vào của lớp để tạo ra một tenxơ đầu ra.

    Tuyên ngôn

    @frozen
    public struct TransposedConv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lớp tích chập theo chiều sâu 2-D.

    Lớp này tạo ra các bộ lọc tích chập có thể tách rời được tích hợp với đầu vào của lớp để tạo ra một tensor đầu ra.

    Tuyên ngôn

    @frozen
    public struct DepthwiseConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Một lớp để thêm phần đệm bằng 0 vào chiều thời gian.

    Tuyên ngôn

    public struct ZeroPadding1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Một lớp để thêm phần đệm bằng 0 vào các kích thước không gian.

    Tuyên ngôn

    public struct ZeroPadding2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Một lớp để thêm phần đệm bằng 0 vào các chiều không gian/không gian-thời gian.

    Tuyên ngôn

    public struct ZeroPadding3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lớp tích chập có thể phân tách 1-D.

    Lớp này thực hiện tích chập theo chiều sâu hoạt động riêng biệt trên các kênh, sau đó là tích chập theo chiều điểm để trộn các kênh.

    Tuyên ngôn

    @frozen
    public struct SeparableConv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lớp tích chập có thể phân tách 2-D.

    Lớp này thực hiện tích chập theo chiều sâu hoạt động riêng biệt trên các kênh, sau đó là tích chập theo chiều điểm để trộn các kênh.

    Tuyên ngôn

    @frozen
    public struct SeparableConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Một lớp phẳng.

    Một lớp làm phẳng sẽ làm phẳng đầu vào khi được áp dụng mà không ảnh hưởng đến kích thước lô.

    Tuyên ngôn

    @frozen
    public struct Flatten<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Một lớp định hình lại.

    Tuyên ngôn

    @frozen
    public struct Reshape<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Một lớp bao quanh một hàm khả vi tùy chỉnh.

    Tuyên ngôn

    public struct Function<Input, Output> : ParameterlessLayer where Input : Differentiable, Output : Differentiable
  • Giá trị loại động TensorFlow có thể được tạo từ các loại tuân theo TensorFlowScalar .

    Tuyên ngôn

    public struct TensorDataType : Equatable
  • Tuyên ngôn

    @frozen
    public struct BFloat16
    extension BFloat16: TensorFlowScalar
    extension BFloat16: XLAScalarType
  • Đại diện cho một tập hợp lớn các phần tử.

    Dataset có thể được sử dụng để biểu diễn đường dẫn đầu vào dưới dạng tập hợp các tensor phần tử.

    Tuyên ngôn

    @available(*, deprecated, message: "Datasets will be removed in S4TF v0.10. Please use the new Batches API instead.")
    @frozen
    public struct Dataset<Element> where Element : TensorGroup
    extension Dataset: Sequence
  • Loại cho phép lặp lại các phần tử của tập dữ liệu.

    Tuyên ngôn

    @available(*, deprecated)
    @frozen
    public struct DatasetIterator<Element> where Element : TensorGroup
    extension DatasetIterator: IteratorProtocol
  • Cấu trúc giống như 2 bộ tuân theo TensorGroup đại diện cho bộ gồm 2 loại tuân theo TensorGroup .

    Tuyên ngôn

    @frozen
    public struct Zip2TensorGroup<T, U> : TensorGroup where T : TensorGroup, U : TensorGroup
  • Một lớp mạng lưới thần kinh được kết nối dày đặc.

    Dense triển khai hoạt động activation(matmul(input, weight) + bias) , trong đó weight là ma trận trọng số, bias là vectơ thiên vị và activation là hàm kích hoạt theo phần tử.

    Lớp này cũng hỗ trợ các tensor trọng lượng 3-D với ma trận sai lệch 2-D. Trong trường hợp này, thứ nguyên đầu tiên của cả hai đều được coi là kích thước lô được căn chỉnh với kích thước input đầu tiên và biến thể lô của thao tác matmul(_:_:) được sử dụng, do đó sử dụng trọng số và độ lệch khác nhau cho từng phần tử trong lô đầu vào.

    Tuyên ngôn

    @frozen
    public struct Dense<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Một thiết bị mà Tensor s có thể được phân bổ trên đó.

    Tuyên ngôn

    public struct Device
    extension Device: Equatable
    extension Device: CustomStringConvertible
  • Một lớp bỏ học.

    Bỏ học bao gồm việc đặt ngẫu nhiên một phần đơn vị đầu vào thành 0 ở mỗi lần cập nhật trong thời gian đào tạo, điều này giúp ngăn ngừa việc trang bị quá mức.

    Tuyên ngôn

    @frozen
    public struct Dropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • GaussianNoise thêm nhiễu được lấy mẫu từ phân phối chuẩn.

    Tiếng ồn được thêm vào luôn có giá trị trung bình bằng 0 nhưng có độ lệch chuẩn có thể định cấu hình.

    Tuyên ngôn

    public struct GaussianNoise<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • GaussianDropout nhân đầu vào với nhiễu được lấy mẫu từ phân phối chuẩn có giá trị trung bình là 1,0.

    Vì đây là lớp chính quy nên nó chỉ hoạt động trong thời gian đào tạo. Trong quá trình suy luận, GaussianDropout chuyển qua đầu vào chưa được sửa đổi.

    Tuyên ngôn

    public struct GaussianDropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Một lớp bỏ học Alpha.

    Alpha Dropout là Dropout giữ giá trị trung bình và phương sai của đầu vào về giá trị ban đầu của chúng, để đảm bảo thuộc tính tự chuẩn hóa ngay cả sau lần bỏ học này. Alpha Dropout rất phù hợp với Đơn vị tuyến tính hàm mũ theo tỷ lệ bằng cách đặt ngẫu nhiên các kích hoạt thành giá trị bão hòa âm.

    Nguồn: Mạng thần kinh tự chuẩn hóa: https://arxiv.org/abs/1706.02515

    Tuyên ngôn

    @frozen
    public struct AlphaDropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Một lớp nhúng.

    Embedding thực sự là một bảng tra cứu ánh xạ các chỉ mục từ một từ vựng cố định sang các biểu diễn vectơ có kích thước cố định (dày đặc), ví dụ: [[0], [3]] -> [[0.25, 0.1], [0.6, -0.2]] .

    Tuyên ngôn

    public struct Embedding<Scalar> : Module where Scalar : TensorFlowFloatingPoint
  • Một cấu trúc trống biểu thị các TangentVector trống cho các lớp không tham số.

  • Cặp khoảnh khắc thứ nhất và thứ hai (nghĩa là giá trị trung bình và phương sai).

    Ghi chú

    Điều này là cần thiết vì các kiểu tuple không thể phân biệt được.

    Tuyên ngôn

    public struct Moments<Scalar> : Differentiable where Scalar : TensorFlowFloatingPoint
  • Lớp giãn nở hình thái 2-D

    Lớp này trả về độ giãn hình thái của tensor đầu vào với các bộ lọc được cung cấp

    Tuyên ngôn

    @frozen
    public struct Dilation2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Lớp xói mòn hình thái 2-D

    Lớp này trả về sự xói mòn hình thái của tensor đầu vào với các bộ lọc được cung cấp

    Tuyên ngôn

    @frozen
    public struct Erosion2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Một lựa chọn lười biếng của các phần tử, theo một thứ tự nhất định, từ một số bộ sưu tập cơ sở.

    Tuyên ngôn

    public struct Sampling<Base: Collection, Selection: Collection>
    where Selection.Element == Base.Index
    extension Sampling: SamplingProtocol
    extension Sampling: Collection
    extension Sampling: BidirectionalCollection
      where Selection: BidirectionalCollection
    extension Sampling: RandomAccessCollection
      where Selection: RandomAccessCollection
  • Một tập hợp các lát cắt liền kề không chồng chéo dài nhất của một số Bộ sưu tập Base , bắt đầu với phần tử đầu tiên và có độ dài tối đa cố định.

    Các phần tử của bộ sưu tập này, ngoại trừ phần cuối cùng, tất cả đều có count lượng batchSize , trừ khi Base.count % batchSize !=0 , trong trường hợp đó count của đợt cuối cùng là base.count % batchSize.

    Tuyên ngôn

    public struct Slices<Base> where Base : Collection
    extension Slices: Collection
  • Một lớp chuẩn hóa hàng loạt.

    Bình thường hóa các kích hoạt của lớp trước ở mỗi đợt, tức là áp dụng một phép biến đổi duy trì kích hoạt trung bình gần bằng 0 và độ lệch chuẩn kích hoạt gần bằng 1 .

    Tham khảo: Chuẩn hóa hàng loạt: Tăng tốc đào tạo mạng sâu bằng cách giảm sự thay đổi hiệp phương sai nội bộ .

    Tuyên ngôn

    @frozen
    public struct BatchNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Một lớp áp dụng chuẩn hóa lớp trên một loạt đầu vào nhỏ.

    Tham khảo: Chuẩn hóa lớp .

    Tuyên ngôn

    @frozen
    public struct LayerNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Một lớp áp dụng chuẩn hóa nhóm cho một loạt đầu vào nhỏ.

    Tham khảo: Chuẩn hóa nhóm .

    Tuyên ngôn

    @frozen
    public struct GroupNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Một lớp áp dụng chuẩn hóa phiên bản trên một loạt đầu vào nhỏ.

    Tham khảo: Chuẩn hóa sơ thẩm: Thành phần còn thiếu để tạo kiểu nhanh .

    Tuyên ngôn

    @frozen
    public struct InstanceNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
  • Nêu rõ từng bước của một trọng số bên trong trình tối ưu hóa.

    Tuyên ngôn

    public struct OptimizerWeightStepState
  • Trạng thái toàn cầu được truy cập thông qua StateAccessor .

    Tuyên ngôn

    public struct OptimizerState
  • [String: Float] nhưng các phần tử có thể được truy cập như thể chúng là thành viên.

    Tuyên ngôn

    @dynamicMemberLookup
    public struct HyperparameterDictionary
  • Trình tối ưu hóa hoạt động trên một nhóm tham số duy nhất.

    Tuyên ngôn

    public struct ParameterGroupOptimizer
  • Trình bao bọc an toàn kiểu xung quanh giá trị chỉ mục Int cho các giá trị cục bộ của trình tối ưu hóa.

    Tuyên ngôn

    public struct LocalAccessor
  • Trình bao bọc an toàn kiểu xung quanh giá trị chỉ mục Int cho các giá trị toàn cục của trình tối ưu hóa.

    Tuyên ngôn

    public struct GlobalAccessor
  • Trình bao bọc an toàn kiểu xung quanh giá trị chỉ mục Int cho các giá trị trạng thái của trình tối ưu hóa.

    Tuyên ngôn

    public struct StateAccessor
  • Xây dựng ParameterGroupOptimizer . Điều này về cơ bản được sử dụng ở cấp độ của một trọng lượng duy nhất trong mô hình. Ánh xạ từ các nhóm tham số được chọn bởi ( [Bool] tới ParameterGroupOptimizer) xác định trình tối ưu hóa cuối cùng.

    Tuyên ngôn

    public struct ParameterGroupOptimizerBuilder
  • Lớp tổng hợp tối đa cho dữ liệu tạm thời.

    Tuyên ngôn

    @frozen
    public struct MaxPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lớp tổng hợp tối đa cho dữ liệu không gian.

    Tuyên ngôn

    @frozen
    public struct MaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lớp tổng hợp tối đa cho dữ liệu không gian hoặc không gian-thời gian.

    Tuyên ngôn

    @frozen
    public struct MaxPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Một lớp tổng hợp trung bình cho dữ liệu tạm thời.

    Tuyên ngôn

    @frozen
    public struct AvgPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Một lớp tổng hợp trung bình cho dữ liệu không gian.

    Tuyên ngôn

    @frozen
    public struct AvgPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lớp tổng hợp trung bình cho dữ liệu không gian hoặc không gian-thời gian.

    Tuyên ngôn

    @frozen
    public struct AvgPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lớp tổng hợp trung bình toàn cầu cho dữ liệu tạm thời.

    Tuyên ngôn

    @frozen
    public struct GlobalAvgPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lớp tổng hợp trung bình toàn cầu cho dữ liệu không gian.

    Tuyên ngôn

    @frozen
    public struct GlobalAvgPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lớp tổng hợp trung bình toàn cầu cho dữ liệu không gian và không gian-thời gian.

    Tuyên ngôn

    @frozen
    public struct GlobalAvgPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lớp tổng hợp tối đa toàn cầu cho dữ liệu tạm thời.

    Tuyên ngôn

    @frozen
    public struct GlobalMaxPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lớp tổng hợp tối đa toàn cầu cho dữ liệu không gian.

    Tuyên ngôn

    @frozen
    public struct GlobalMaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lớp tổng hợp tối đa toàn cầu cho dữ liệu không gian và không gian-thời gian.

    Tuyên ngôn

    @frozen
    public struct GlobalMaxPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Lớp tổng hợp tối đa phân đoạn cho dữ liệu không gian. Lưu ý: FractionalMaxPool không triển khai XLA và do đó có thể ảnh hưởng đến hiệu suất.

    Tuyên ngôn

    @frozen
    public struct FractionalMaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • PythonObject đại diện cho một đối tượng trong Python và hỗ trợ tra cứu thành viên động. Bất kỳ quyền truy cập thành viên nào như object.foo sẽ tự động yêu cầu thời gian chạy Python cho thành viên có tên được chỉ định trong đối tượng này.

    PythonObject được chuyển đến và trả về từ tất cả các lệnh gọi hàm và tham chiếu thành viên của Python. Nó hỗ trợ các toán tử so sánh và số học Python tiêu chuẩn.

    Trong nội bộ, PythonObject được triển khai dưới dạng con trỏ được tính tham chiếu tới API PyObject của Python C.

    Tuyên ngôn

    @dynamicCallable
    @dynamicMemberLookup
    public struct PythonObject
    extension PythonObject : CustomStringConvertible
    extension PythonObject : CustomPlaygroundDisplayConvertible
    extension PythonObject : CustomReflectable
    extension PythonObject : PythonConvertible, ConvertibleFromPython
    extension PythonObject : SignedNumeric
    extension PythonObject : Strideable
    extension PythonObject : Equatable, Comparable
    extension PythonObject : Hashable
    extension PythonObject : MutableCollection
    extension PythonObject : Sequence
    extension PythonObject : ExpressibleByBooleanLiteral, ExpressibleByIntegerLiteral,
    ExpressibleByFloatLiteral, ExpressibleByStringLiteral
    extension PythonObject : ExpressibleByArrayLiteral, ExpressibleByDictionaryLiteral
  • Trình bao bọc PythonObject cho phép thực hiện các lệnh gọi phương thức. Các ngoại lệ do các hàm Python tạo ra được phản ánh dưới dạng lỗi Swift và bị ném ra.

    Ghi chú

    Việc ThrowingPythonObject cố ý không có thuộc tính @dynamicCallable vì cú pháp cuộc gọi không trực quan: x.throwing(arg1, arg2, ...) . Các phương thức sẽ vẫn được đặt tên dynamicallyCall cho đến khi thảo luận/thiết kế thêm.

    Tuyên ngôn

    public struct ThrowingPythonObject
  • Trình bao bọc PythonObject cho phép thành viên truy cập. Hoạt động truy cập thành viên trả về kết quả Optional . Khi quyền truy cập của thành viên không thành công, nil được trả về.

    Tuyên ngôn

    @dynamicMemberLookup
    public struct CheckingPythonObject
  • Một giao diện cho Python.

    PythonInterface cho phép tương tác với Python. Nó có thể được sử dụng để nhập các mô-đun và truy cập động các loại và hàm dựng sẵn của Python.

    Ghi chú

    Nó không nhằm mục đích khởi tạo trực tiếp PythonInterface . Thay vào đó, vui lòng sử dụng phiên bản toàn cầu của PythonInterface có tên là Python .

    Tuyên ngôn

    @dynamicMemberLookup
    public struct PythonInterface
  • Tuyên ngôn

    public struct PythonLibrary
  • Một trình tạo số ngẫu nhiên được xóa kiểu.

    Loại AnyRandomNumberGenerator chuyển tiếp các hoạt động tạo số ngẫu nhiên tới một trình tạo số ngẫu nhiên cơ bản, ẩn loại cơ bản cụ thể của nó.

    Tuyên ngôn

    public struct AnyRandomNumberGenerator : RandomNumberGenerator
  • Việc triển khai SeedableRandomNumberGenerator bằng ARC4.

    ARC4 là một mật mã luồng tạo ra luồng byte giả ngẫu nhiên. PRNG này sử dụng hạt giống làm khóa của nó.

    ARC4 được mô tả trong Schneier, B., “Mật mã ứng dụng: Giao thức, thuật toán và mã nguồn trong C”, tái bản lần 2, 1996.

    Một trình tạo riêng lẻ không an toàn cho luồng, nhưng các trình tạo riêng biệt không chia sẻ trạng thái. Dữ liệu ngẫu nhiên được tạo ra có chất lượng cao nhưng không phù hợp với các ứng dụng mã hóa.

    Tuyên ngôn

    @frozen
    public struct ARC4RandomNumberGenerator : SeedableRandomNumberGenerator
  • Triển khai SeedableRandomNumberGenerator bằng Threefry. Cá hồi và cộng sự. SC 2011. Các số ngẫu nhiên song song: dễ như 1, 2, 3. http://www.thesalmons.org/john/random123/papers/random123sc11.pdf

    Cấu trúc này triển khai PRNG Threefry2x32 20 vòng. Nó phải được gieo với giá trị 64-bit.

    Một trình tạo riêng lẻ không an toàn cho luồng, nhưng các trình tạo riêng biệt không chia sẻ trạng thái. Dữ liệu ngẫu nhiên được tạo ra có chất lượng cao nhưng không phù hợp với các ứng dụng mã hóa.

    Tuyên ngôn

    public struct ThreefryRandomNumberGenerator : SeedableRandomNumberGenerator
  • Triển khai SeedableRandomNumberGenerator bằng Philox. Cá hồi và cộng sự. SC 2011. Các số ngẫu nhiên song song: dễ như 1, 2, 3. http://www.thesalmons.org/john/random123/papers/random123sc11.pdf

    Cấu trúc này triển khai PRNG Philox4x32 10 vòng. Nó phải được gieo với giá trị 64-bit.

    Một trình tạo riêng lẻ không an toàn cho luồng, nhưng các trình tạo riêng biệt không chia sẻ trạng thái. Dữ liệu ngẫu nhiên được tạo ra có chất lượng cao nhưng không phù hợp với các ứng dụng mã hóa.

    Tuyên ngôn

    public struct PhiloxRandomNumberGenerator : SeedableRandomNumberGenerator
  • Tuyên ngôn

    @frozen
    public struct UniformIntegerDistribution<T> : RandomDistribution where T : FixedWidthInteger
  • Tuyên ngôn

    @frozen
    public struct UniformFloatingPointDistribution<T: BinaryFloatingPoint>: RandomDistribution
    where T.RawSignificand: FixedWidthInteger
  • Tuyên ngôn

    @frozen
    public struct NormalDistribution<T: BinaryFloatingPoint>: RandomDistribution
    where T.RawSignificand: FixedWidthInteger
  • Tuyên ngôn

    @frozen
    public struct BetaDistribution : RandomDistribution
  • Một đầu vào của mạng nơ-ron hồi quy.

    Tuyên ngôn

    public struct RNNCellInput<Input, State> : Differentiable where Input : Differentiable, State : Differentiable
    extension RNNCellInput: EuclideanDifferentiable
    where Input: EuclideanDifferentiable, State: EuclideanDifferentiable
  • Một đầu ra cho một mạng lưới thần kinh tái phát.

    Tuyên ngôn

    public struct RNNCellOutput<Output, State> : Differentiable where Output : Differentiable, State : Differentiable
    extension RNNCellOutput: EuclideanDifferentiable
    where Output: EuclideanDifferentiable, State: EuclideanDifferentiable
  • Một tế bào RNN cơ bản.

    Tuyên ngôn

    public struct BasicRNNCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
  • Một tế bào LSTM.

    Tuyên ngôn

    public struct LSTMCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
  • Một tế bào GRU.

    Tuyên ngôn

    public struct GRUCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
  • Tuyên ngôn

    public struct RecurrentLayer<Cell> : Layer where Cell : RecurrentLayerCell
    extension RecurrentLayer: Equatable where Cell: Equatable
    extension RecurrentLayer: AdditiveArithmetic where Cell: AdditiveArithmetic
  • Tuyên ngôn

    public struct BidirectionalRecurrentLayer<Cell: RecurrentLayerCell>: Layer
    where Cell.TimeStepOutput: Mergeable
  • Một lớp bao gồm hai hoặc nhiều lớp khác một cách tuần tự.

    Ví dụ:

    • Xây dựng mô hình perceptron 2 lớp đơn giản cho MNIST:
    let inputSize = 28 * 28
    let hiddenSize = 300
    var classifier = Sequential {
         Dense<Float>(inputSize: inputSize, outputSize: hiddenSize, activation: relu)
         Dense<Float>(inputSize: hiddenSize, outputSize: 3, activation: identity)
     }
    
    • Xây dựng bộ mã hóa tự động cho MNIST:
    var autoencoder = Sequential {
        // The encoder.
        Dense<Float>(inputSize: 28 * 28, outputSize: 128, activation: relu)
        Dense<Float>(inputSize: 128, outputSize: 64, activation: relu)
        Dense<Float>(inputSize: 64, outputSize: 12, activation: relu)
        Dense<Float>(inputSize: 12, outputSize: 3, activation: relu)
        // The decoder.
        Dense<Float>(inputSize: 3, outputSize: 12, activation: relu)
        Dense<Float>(inputSize: 12, outputSize: 64, activation: relu)
        Dense<Float>(inputSize: 64, outputSize: 128, activation: relu)
        Dense<Float>(inputSize: 128, outputSize: imageHeight * imageWidth, activation: tanh)
    }
    

    Tuyên ngôn

    public struct Sequential<Layer1: Module, Layer2: Layer>: Module
        where Layer1.Output == Layer2.Input,
              Layer1.TangentVector.VectorSpaceScalar == Layer2.TangentVector.VectorSpaceScalar
    extension Sequential: Layer where Layer1: Layer
  • Tuyên ngôn

    @_functionBuilder
    public struct LayerBuilder
  • ShapedArray là một mảng nhiều chiều. Nó có hình dạng, có kiểu [Int] và xác định kích thước mảng, đồng thời sử dụng TensorBuffer bên trong làm bộ lưu trữ.

    Tuyên ngôn

    @frozen
    public struct ShapedArray<Scalar> : _ShapedArrayProtocol
    extension ShapedArray: RandomAccessCollection, MutableCollection
    extension ShapedArray: CustomStringConvertible
    extension ShapedArray: CustomPlaygroundDisplayConvertible
    extension ShapedArray: CustomReflectable
    extension ShapedArray: ExpressibleByArrayLiteral where Scalar: TensorFlowScalar
    extension ShapedArray: Equatable where Scalar: Equatable
    extension ShapedArray: Hashable where Scalar: Hashable
    extension ShapedArray: Codable where Scalar: Codable
  • Một lát liền kề của một phiên bản ShapedArray hoặc ShapedArraySlice .

    ShapedArraySlice cho phép vận hành nhanh chóng, hiệu quả trên các lát liền kề của các phiên bản ShapedArray . Các phiên bản ShapedArraySlice không có bộ lưu trữ riêng. Thay vào đó, họ cung cấp chế độ xem về bộ lưu trữ ShapedArray cơ sở của họ. ShapedArraySlice có thể biểu diễn hai loại lát cắt khác nhau: mảng phần tử và mảng con.

    Mảng phần tử là các phần tử có chiều thứ nguyên phụ của ShapedArray : thứ hạng của chúng nhỏ hơn một bậc so với cơ sở của chúng. Các lát mảng phần tử thu được bằng cách lập chỉ mục một thể hiện ShapedArray với chỉ mục Int32 số ít.

    Ví dụ:

        var matrix = ShapedArray(shape: [2, 2], scalars: [0, 1, 2, 3])
        // `matrix` represents [[0, 1], [2, 3]].
    
        let element = matrix[0]
        // `element` is a `ShapedArraySlice` with shape [2]. It is an element
        // array, specifically the first element in `matrix`: [0, 1].
    
        matrix[1] = ShapedArraySlice(shape: [2], scalars: [4, 8])
        // The second element in `matrix` has been mutated.
        // `matrix` now represents [[0, 1, 4, 8]].
    

    Mảng con là một phạm vi liền kề của các phần tử trong ShapedArray . Thứ hạng của một mảng con giống như thứ hạng của mảng cơ sở, nhưng thứ nguyên chính của nó là số lượng của phạm vi lát cắt. Các lát cắt mảng con thu được bằng cách lập chỉ mục một ShapedArray với Range<Int32> đại diện cho một phạm vi phần tử (trong chiều thứ nguyên chính). Các phương thức như prefix(:)suffix(:) lập chỉ mục nội bộ với một phạm vi cũng tạo ra mảng con.

    Ví dụ:

        let zeros = ShapedArray(repeating: 0, shape: [3, 2])
        var matrix = ShapedArray(shape: [3, 2], scalars: Array(0..<6))
        // `zeros` represents [[0, 0], [0, 0], [0, 0]].
        // `matrix` represents [[0, 1], [2, 3], [4, 5]].
    
        let subarray = matrix.prefix(2)
        // `subarray` is a `ShapedArraySlice` with shape [2, 2]. It is a slice
        // of the first 2 elements in `matrix` and represents [[0, 1], [2, 3]].
    
        matrix[0..<2] = zeros.prefix(2)
        // The first 2 elements in `matrix` have been mutated.
        // `matrix` now represents [[0, 0], [0, 0], [4, 5]].
    

    Tuyên ngôn

    @frozen
    public struct ShapedArraySlice<Scalar> : _ShapedArrayProtocol
    extension ShapedArraySlice: RandomAccessCollection, MutableCollection
    extension ShapedArraySlice: CustomStringConvertible
    extension ShapedArraySlice: CustomPlaygroundDisplayConvertible
    extension ShapedArraySlice: CustomReflectable
    extension ShapedArraySlice: ExpressibleByArrayLiteral where Scalar: TensorFlowScalar
    extension ShapedArraySlice: Equatable where Scalar: Equatable
    extension ShapedArraySlice: Hashable where Scalar: Hashable
    extension ShapedArraySlice: Codable where Scalar: Codable
  • StringTensor là một mảng đa chiều có các phần tử là String s.

    Tuyên ngôn

    @frozen
    public struct StringTensor
    extension StringTensor: TensorGroup
  • TensorHandle là loại được sử dụng bởi ops. Nó bao gồm một kiểu Scalar mà phần bên trong của trình biên dịch có thể sử dụng để xác định kiểu dữ liệu của các tham số khi chúng được trích xuất thành chương trình tensor.

    Tuyên ngôn

    public struct TensorHandle<Scalar> where Scalar : _TensorFlowDataTypeCompatible
    extension TensorHandle: TensorGroup
  • Tuyên ngôn

    public struct ResourceHandle
    extension ResourceHandle: TensorGroup
  • Tuyên ngôn

    public struct VariantHandle
    extension VariantHandle: TensorGroup
  • Một cấu trúc biểu diễn hình dạng của tensor.

    TensorShape là một lớp bao bọc mỏng xung quanh một mảng các số nguyên biểu thị kích thước hình dạng. Tất cả các loại tensor đều sử dụng TensorShape để thể hiện hình dạng của chúng.

    Tuyên ngôn

    @frozen
    public struct TensorShape : ExpressibleByArrayLiteral
    extension TensorShape: Collection, MutableCollection
    extension TensorShape: RandomAccessCollection
    extension TensorShape: RangeReplaceableCollection
    extension TensorShape: Equatable
    extension TensorShape: Codable
    extension TensorShape: CustomStringConvertible
  • TensorVisitorPlan gần đúng [WritableKeyPath<Base, Tensor<Float>] nhưng hiệu quả hơn. Điều này hữu ích khi viết các trình tối ưu hóa chung muốn ánh xạ theo độ dốc, trọng số hiện có và chỉ mục có thể được sử dụng để tìm trọng số được lưu trữ phụ trợ. Điều này hiệu quả hơn một chút (~2 lần) nhưng có thể tốt hơn vì nó đánh đổi chi phí cao hơn một chút (tham chiếu con trỏ bổ sung) để không phải thực hiện công việc O(độ sâu_of_tree) được yêu cầu với một danh sách đơn giản để theo dõi từng KeyPath riêng lẻ.

    Tuyên ngôn

    public struct TensorVisitorPlan<Base>
  • Một lớp lấy mẫu cho đầu vào 1-D.

    Tuyên ngôn

    @frozen
    public struct UpSampling1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Một lớp lấy mẫu cho đầu vào 2-D.

    Tuyên ngôn

    @frozen
    public struct UpSampling2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Một lớp lấy mẫu cho đầu vào 3-D.

    Tuyên ngôn

    @frozen
    public struct UpSampling3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
  • Thu thập các bộ đếm dự đoán chính xác và tổng số tổn thất.

    Tuyên ngôn

    public struct HostStatistics