המבנים הבאים זמינים ברחבי העולם.
שרשור של שני רצפים עם אותו סוג אלמנט.
הַצהָרָה
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
תצוגה מסובבת על אוסף.
הַצהָרָה
public struct RotatedCollection<Base> : Collection where Base : Collection
extension RotatedCollection: BidirectionalCollection where Base: BidirectionalCollection
extension RotatedCollection: RandomAccessCollection where Base: RandomAccessCollection
הַצהָרָה
public struct AnyDifferentiable : Differentiable
ערך נגזרת שנמחק מהסוג.
הסוג
AnyDerivative
מעביר את הפעולות שלו לערך נגזרת בסיס שרירותי התואם ל-Differentiable
ו-AdditiveArithmetic
, ומסתיר את הפרטים של הערך הבסיסי.הַצהָרָה
@frozen public struct AnyDerivative : Differentiable & AdditiveArithmetic
מערך רב ממדי של אלמנטים שהוא הכללה של וקטורים ומטריצות למימדים בעלי פוטנציאל גבוה יותר.
הפרמטר הגנרי
Scalar
מתאר את סוג הסקלרים בטנזור (כגוןInt32
,Float
וכו').הַצהָרָה
@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
פונקציית נסיגה המבצעת טרנספוזיציה של שידור שני
Tensors
.הַצהָרָה
public struct BroadcastingPullback
הקשר המאחסן מידע קונטקסטואלי של שרשור מקומי המשמש את ממשקי API של למידה עמוקה כגון שכבות.
השתמש ב-
Context.local
כדי לאחזר את ההקשר הנוכחי של השרשור המקומי.דוגמאות:
- הגדר את שלב הלמידה הנוכחי לאימון כך ששכבות כמו
BatchNorm
יחשבו את הממוצע והשונות כשהן מיושמות על תשומות.
Context.local.learningPhase = .training
- הגדר את שלב הלמידה הנוכחי להסקת מסקנות כך ששכבות כמו
Dropout
לא ייפלטו יחידות כאשר יוחלו על קלט.
Context.local.learningPhase = .inference
הַצהָרָה
public struct Context
- הגדר את שלב הלמידה הנוכחי לאימון כך ששכבות כמו
שכבת קונבולציה 1-D (למשל פיתול זמני על פני סדרת זמן).
שכבה זו יוצרת מסנן קונבולציה שמתפתל עם קלט השכבה כדי לייצר טנזור של יציאות.
הַצהָרָה
@frozen public struct Conv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
שכבת פיתול דו מימדי (למשל פיתול מרחבי על פני תמונות).
שכבה זו יוצרת מסנן קונבולציה שמתפתל עם קלט השכבה כדי לייצר טנזור של יציאות.
הַצהָרָה
@frozen public struct Conv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
שכבת קונבולציה תלת מימדית עבור פיתול מרחבי/מרחבי-זמני על פני תמונות.
שכבה זו יוצרת מסנן קונבולציה שמתפתל עם קלט השכבה כדי לייצר טנזור של יציאות.
הַצהָרָה
@frozen public struct Conv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
שכבת קונבולציית טרנספוזיציה 1-D (למשל קונבולוציית טרנספוזיציה זמנית על פני תמונות).
שכבה זו יוצרת מסנן קונבולוציה שמסובב-טרנספוזיציה עם קלט השכבה כדי לייצר טנזור של יציאות.
הַצהָרָה
@frozen public struct TransposedConv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
שכבת טרנספוזיציה דו-ממדית (למשל קונבולוציית טרנספוזיה מרחבית על פני תמונות).
שכבה זו יוצרת מסנן קונבולוציה שמסובב-טרנספוזיציה עם קלט השכבה כדי לייצר טנזור של יציאות.
הַצהָרָה
@frozen public struct TransposedConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
שכבת טרנספוזיציה תלת מימדית (למשל קונבולוציית טרנספוזיציה מרחבית על פני תמונות).
שכבה זו יוצרת מסנן קונבולוציה שמסובב-טרנספוזיציה עם קלט השכבה כדי לייצר טנזור של יציאות.
הַצהָרָה
@frozen public struct TransposedConv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
שכבת פיתול דו-ממדית לעומק.
שכבה זו יוצרת מסנני קונבולציה ניתנים להפרדה שמתפתלים עם קלט השכבה כדי לייצר טנזור של יציאות.
הַצהָרָה
@frozen public struct DepthwiseConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
שכבה להוספת ריפוד אפס בממד הזמני.
הַצהָרָה
public struct ZeroPadding1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבה להוספת ריפוד אפס במידות המרחביות.
הַצהָרָה
public struct ZeroPadding2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבה להוספת ריפוד אפס בממדים המרחביים/מרחבי-זמניים.
הַצהָרָה
public struct ZeroPadding3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבת קונבולציה 1-D הניתנת להפרדה.
שכבה זו מבצעת פיתול עומק הפועל בנפרד על ערוצים ולאחריה פיתול נקודתי המערבב ערוצים.
הַצהָרָה
@frozen public struct SeparableConv1D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
שכבת פיתול דו מימדי ניתנת להפרדה.
שכבה זו מבצעת פיתול עומק הפועל בנפרד על ערוצים ולאחריה פיתול נקודתי המערבב ערוצים.
הַצהָרָה
@frozen public struct SeparableConv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
שכבה שטוחה.
שכבה שטוחה משטחת את הקלט בעת יישום מבלי להשפיע על גודל האצווה.
הַצהָרָה
@frozen public struct Flatten<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבת צורה מחדש.
הַצהָרָה
@frozen public struct Reshape<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבה שכוללת פונקציה הניתנת להבדלה מותאמת אישית.
הַצהָרָה
public struct Function<Input, Output> : ParameterlessLayer where Input : Differentiable, Output : Differentiable
ערך טיפוס דינמי של TensorFlow שניתן ליצור מסוגים התואמים ל-
TensorFlowScalar
.הַצהָרָה
public struct TensorDataType : Equatable
הַצהָרָה
מייצג סט פוטנציאלי גדול של אלמנטים.
ניתן להשתמש
Dataset
כדי לייצג צינור קלט כאוסף של טנסור אלמנטים.הַצהָרָה
@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
הסוג המאפשר איטרציה על רכיבי מערך נתונים.
הַצהָרָה
@available(*, deprecated) @frozen public struct DatasetIterator<Element> where Element : TensorGroup
extension DatasetIterator: IteratorProtocol
מבנה דמוי 2-טופל התואם ל-TensorGroup המייצג טופלה של 2 סוגים התואמים ל-
TensorGroup
.הַצהָרָה
@frozen public struct Zip2TensorGroup<T, U> : TensorGroup where T : TensorGroup, U : TensorGroup
שכבת רשת עצבית מחוברת בצפיפות.
Dense
מיישמת אתactivation(matmul(input, weight) + bias)
, כאשרweight
הוא מטריצת משקל,bias
היא וקטור הטיה,activation
היא פונקציית הפעלה נקודתית.שכבה זו תומכת גם בטנסורי משקל תלת-ממדיים עם מטריצות הטיה דו-ממדיות. במקרה זה, הממד הראשון של שניהם מטופל כגודל האצווה המיושר עם הממד הראשון של
input
ומשתמשים בגרסה האצווה של פעולתmatmul(_:_:)
, ובכך משתמשים במשקל והטיה שונים עבור כל אלמנט באצווה קלט.הַצהָרָה
@frozen public struct Dense<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
מכשיר שעליו ניתן להקצות
Tensor
s.הַצהָרָה
public struct Device
extension Device: Equatable
extension Device: CustomStringConvertible
שכבת נשירה.
נשירה מורכבת מהגדרה אקראית של חלק מיחידות הקלט ל
0
בכל עדכון במהלך זמן האימון, מה שעוזר במניעת התאמת יתר.הַצהָרָה
@frozen public struct Dropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
GaussianNoise
מוסיף רעש שנדגם מהתפלגות נורמלית.לרעש שנוסף תמיד יש אפס ממוצע, אבל יש לו סטיית תקן הניתנת להגדרה.
הַצהָרָה
public struct GaussianNoise<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
GaussianDropout
מכפיל את הקלט עם הרעש שנדגם מהתפלגות נורמלית בממוצע 1.0.מכיוון שמדובר בשכבת סדירות, היא פעילה רק בזמן האימון. במהלך היסק,
GaussianDropout
עובר דרך הקלט ללא שינוי.הַצהָרָה
public struct GaussianDropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבת נשירת אלפא.
Alpha Dropout הוא
Dropout
ששומר על ממוצע ושונות של כניסות לערכים המקוריים שלהם, על מנת להבטיח את תכונת הנרמול העצמי גם לאחר נשירה זו. Alpha Dropout מתאים היטב ליחידות לינאריות מעריכיות בקנה מידה על ידי הגדרה אקראית של הפעלות לערך הרוויה השלילי.מקור: Self-Normalizing Neural Networks: https://arxiv.org/abs/1706.02515
הַצהָרָה
@frozen public struct AlphaDropout<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבת הטבעה.
Embedding
היא למעשה טבלת חיפוש הממפה אינדקסים מאוצר מילים קבוע לייצוגי וקטור בגודל קבוע (צפוף), למשל[[0], [3]] -> [[0.25, 0.1], [0.6, -0.2]]
.הַצהָרָה
public struct Embedding<Scalar> : Module where Scalar : TensorFlowFloatingPoint
מבנה ריק המייצג
TangentVector
s ריקים עבור שכבות ללא פרמטרים.הַצהָרָה
public struct EmptyTangentVector: EuclideanDifferentiable, VectorProtocol, ElementaryFunctions, PointwiseMultiplicative, KeyPathIterable
זוג רגעים ראשונים ושניים (כלומר, ממוצע ושונות).
פֶּתֶק
זה נחוץ מכיוון שלא ניתן להבדיל סוגי tuple.הַצהָרָה
public struct Moments<Scalar> : Differentiable where Scalar : TensorFlowFloatingPoint
שכבת הרחבה מורפולוגית דו מימדית
שכבה זו מחזירה את ההתרחבות המורפוגית של טנזור הקלט עם המסננים שסופקו
הַצהָרָה
@frozen public struct Dilation2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
שכבת שחיקה מורפולוגית דו מימדית
שכבה זו מחזירה את השחיקה המורפוגית של טנזור הקלט עם המסננים שסופקו
הַצהָרָה
@frozen public struct Erosion2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
מבחר עצלן של אלמנטים, בסדר נתון, מאוסף בסיס כלשהו.
הַצהָרָה
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
אוסף של הפרוסות הרציפות הארוכות ביותר שאינן חופפות מאוסף
Base
כלשהו, החל מהאלמנט הראשון שלו, ובעלות אורך מקסימלי קבוע כלשהו.לרכיבים של אוסף זה, מלבד האחרון, לכולם יש
count
שלbatchSize
, אלא אם כןBase.count % batchSize !=0
, ובמקרה זהcount
של האצווה האחרונה היאbase.count % batchSize.
הַצהָרָה
public struct Slices<Base> where Base : Collection
extension Slices: Collection
שכבת נורמליזציה אצווה.
מנרמל את ההפעלה של השכבה הקודמת בכל אצווה, כלומר מחיל טרנספורמציה השומרת על ההפעלה הממוצעת קרובה ל
0
ועל סטיית התקן של ההפעלה קרובה ל1
.התייחסות: נורמליזציה של אצווה: האצת אימון רשת עמוק על ידי הפחתת הסטת משתנים פנימית .
הַצהָרָה
@frozen public struct BatchNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
שכבה המיישמת נורמליזציה של שכבות על מיני-אצט של כניסות.
הפניה: נורמליזציה של שכבה .
הַצהָרָה
@frozen public struct LayerNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
שכבה המיישמת נורמליזציה קבוצתית על מיני-אצט של כניסות.
התייחסות: נורמליזציה קבוצתית .
הַצהָרָה
@frozen public struct GroupNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
שכבה המיישמת נורמליזציה של מופעים על מיני-אצט של כניסות.
הַצהָרָה
@frozen public struct InstanceNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
ציין עבור שלב בודד של משקל בודד בתוך מייעל.
הַצהָרָה
public struct OptimizerWeightStepState
גישה למדינה גלובלית דרך
StateAccessor
.הַצהָרָה
public struct OptimizerState
[String: Float]
אך ניתן לגשת לאלמנטים כאילו היו חברים.הַצהָרָה
@dynamicMemberLookup public struct HyperparameterDictionary
אופטימיזר שעובד על קבוצת פרמטרים בודדת.
הַצהָרָה
public struct ParameterGroupOptimizer
עטיפה בטוחה לסוג סביב ערך אינדקס
Int
עבור ערכים מקומיים למיטוב.הַצהָרָה
public struct LocalAccessor
עטיפה בטוחה לסוג סביב ערך אינדקס
Int
עבור ערכים גלובליים למיטוב.הַצהָרָה
public struct GlobalAccessor
עטיפה בטוחה לסוג סביב ערך אינדקס
Int
עבור ערכי מצב אופטימיזציה.הַצהָרָה
public struct StateAccessor
בונה
ParameterGroupOptimizer
. זה משמש למעשה ברמה של משקל בודד בדגם. מיפוי מקבוצות פרמטרים שנבחרו על ידי ([Bool]
ל-ParameterGroupOptimizer) מגדיר את המייעל הסופי.הַצהָרָה
public struct ParameterGroupOptimizerBuilder
שכבת איגום מקסימלית עבור נתונים זמניים.
הַצהָרָה
@frozen public struct MaxPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבת איגום מקסימלית לנתונים מרחביים.
הַצהָרָה
@frozen public struct MaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבת איגום מקסימלית לנתונים מרחביים או מרחביים-זמניים.
הַצהָרָה
@frozen public struct MaxPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבת איגום ממוצעת לנתונים זמניים.
הַצהָרָה
@frozen public struct AvgPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבת איגום ממוצעת לנתונים מרחביים.
הַצהָרָה
@frozen public struct AvgPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבת איגום ממוצעת לנתונים מרחביים או מרחביים-זמניים.
הַצהָרָה
@frozen public struct AvgPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבת איגום ממוצעת גלובלית לנתונים זמניים.
הַצהָרָה
@frozen public struct GlobalAvgPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבת איגום ממוצעת גלובלית לנתונים מרחביים.
הַצהָרָה
@frozen public struct GlobalAvgPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבת איגום ממוצעת גלובלית לנתונים מרחביים ומרחב-זמניים.
הַצהָרָה
@frozen public struct GlobalAvgPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבת איסוף מקסימלית גלובלית לנתונים זמניים.
הַצהָרָה
@frozen public struct GlobalMaxPool1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבת איסוף מקסימלית גלובלית לנתונים מרחביים.
הַצהָרָה
@frozen public struct GlobalMaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבת איסוף מקסימלית גלובלית לנתונים מרחביים ומרחבי-זמניים.
הַצהָרָה
@frozen public struct GlobalMaxPool3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבת איסוף מקסימלית חלקית עבור נתונים מרחביים. הערה:
FractionalMaxPool
אין מימוש XLA, ולכן עשויות להיות לו השלכות ביצועים.הַצהָרָה
@frozen public struct FractionalMaxPool2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
PythonObject
מייצג אובייקט ב- Python ותומך בחיפוש חברים דינמי. כל גישת חבר כמוobject.foo
תבקש באופן דינמי את זמן הריצה של Python עבור חבר עם השם שצוין באובייקט זה.PythonObject
מועבר ומוחזר מכל קריאות הפונקציה Python והפניות לחבר. הוא תומך בחשבון Python סטנדרטיים ואופרטורים להשוואה.באופן פנימי,
PythonObject
מיושם כמצביע שנספר הפניות ל- Python C APIPyObject
.הַצהָרָה
@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
מעטפת
PythonObject
המאפשרת זריקת קריאות למתודה. חריגים המיוצרים על ידי פונקציות Python באים לידי ביטוי כשגיאות Swift ונזרקות.פֶּתֶק
זה מכוון שלThrowingPythonObject
אין את התכונה@dynamicCallable
מכיוון שתחביר הקריאה אינו אינטואיטיבי:x.throwing(arg1, arg2, ...)
. השיטות עדיין ייקראוdynamicallyCall
עד לדיון/עיצוב נוסף.הַצהָרָה
public struct ThrowingPythonObject
מעטפת
PythonObject
המאפשרת גישה לחברים. פעולות גישת חבר מחזירות תוצאהOptional
. כאשר הגישה לחבר נכשל,nil
מוחזר.הַצהָרָה
@dynamicMemberLookup public struct CheckingPythonObject
ממשק לפייתון.
PythonInterface
מאפשר אינטראקציה עם Python. ניתן להשתמש בו כדי לייבא מודולים ולגשת באופן דינמי לסוגים ולפונקציות המובנות של Python.פֶּתֶק
זה לא מיועד ל-PythonInterface
להיות אתחול ישירות. במקום זאת, אנא השתמש במופע הגלובלי שלPythonInterface
בשםPython
.הַצהָרָה
@dynamicMemberLookup public struct PythonInterface
הַצהָרָה
public struct PythonLibrary
מחולל מספרים אקראיים שנמחק על ידי סוג.
הסוג
AnyRandomNumberGenerator
מעביר פעולות של יצירת מספרים אקראיים למחולל מספרים אקראיים בסיסיים, ומסתיר את הסוג הבסיסי הספציפי שלו.הַצהָרָה
public struct AnyRandomNumberGenerator : RandomNumberGenerator
יישום של
SeedableRandomNumberGenerator
באמצעות ARC4.ARC4 הוא צופן זרם שיוצר זרם פסאודו אקראי של בתים. PRNG זה משתמש בזרע כמפתח שלו.
ARC4 מתואר ב-Schneier, B., "Applied Cryptography: Protocols, Algorithms, and Source Code in C", מהדורה 2, 1996.
מחולל בודד אינו בטוח בחוט, אך מחוללים נפרדים אינם חולקים מצב. הנתונים האקראיים שנוצרו הם באיכות גבוהה, אך אינם מתאימים ליישומי הצפנה.
הַצהָרָה
@frozen public struct ARC4RandomNumberGenerator : SeedableRandomNumberGenerator
יישום של
SeedableRandomNumberGenerator
באמצעות Threefry. סלמון וחב'. SC 2011. מספרים אקראיים מקבילים: קלים כמו 1, 2, 3. http://www.thesalmons.org/john/random123/papers/random123sc11.pdfמבנה זה מיישם 20 סיבובים Threefry2x32 PRNG. זה חייב להיות זרע עם ערך של 64 סיביות.
מחולל בודד אינו בטוח בחוט, אך מחוללים נפרדים אינם חולקים מצב. הנתונים האקראיים שנוצרו הם באיכות גבוהה, אך אינם מתאימים ליישומי הצפנה.
הַצהָרָה
public struct ThreefryRandomNumberGenerator : SeedableRandomNumberGenerator
יישום של
SeedableRandomNumberGenerator
באמצעות Philox. סלמון וחב'. SC 2011. מספרים אקראיים מקבילים: קלים כמו 1, 2, 3. http://www.thesalmons.org/john/random123/papers/random123sc11.pdfמבנה זה מיישם 10 סיבובים של Philox4x32 PRNG. זה חייב להיות זרע עם ערך של 64 סיביות.
מחולל בודד אינו בטוח בחוט, אך מחוללים נפרדים אינם חולקים מצב. הנתונים האקראיים שנוצרו הם באיכות גבוהה, אך אינם מתאימים ליישומי הצפנה.
הַצהָרָה
public struct PhiloxRandomNumberGenerator : SeedableRandomNumberGenerator
הַצהָרָה
@frozen public struct UniformIntegerDistribution<T> : RandomDistribution where T : FixedWidthInteger
הַצהָרָה
@frozen public struct UniformFloatingPointDistribution<T: BinaryFloatingPoint>: RandomDistribution where T.RawSignificand: FixedWidthInteger
הַצהָרָה
@frozen public struct NormalDistribution<T: BinaryFloatingPoint>: RandomDistribution where T.RawSignificand: FixedWidthInteger
הַצהָרָה
@frozen public struct BetaDistribution : RandomDistribution
קלט לרשת עצבית חוזרת.
הַצהָרָה
public struct RNNCellInput<Input, State> : Differentiable where Input : Differentiable, State : Differentiable
extension RNNCellInput: EuclideanDifferentiable where Input: EuclideanDifferentiable, State: EuclideanDifferentiable
פלט לרשת עצבית חוזרת.
הַצהָרָה
public struct RNNCellOutput<Output, State> : Differentiable where Output : Differentiable, State : Differentiable
extension RNNCellOutput: EuclideanDifferentiable where Output: EuclideanDifferentiable, State: EuclideanDifferentiable
תא RNN בסיסי.
הַצהָרָה
public struct BasicRNNCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
תא LSTM.
הַצהָרָה
public struct LSTMCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
תא GRU.
הַצהָרָה
public struct GRUCell<Scalar> : RecurrentLayerCell where Scalar : TensorFlowFloatingPoint
הַצהָרָה
public struct RecurrentLayer<Cell> : Layer where Cell : RecurrentLayerCell
extension RecurrentLayer: Equatable where Cell: Equatable
extension RecurrentLayer: AdditiveArithmetic where Cell: AdditiveArithmetic
הַצהָרָה
public struct BidirectionalRecurrentLayer<Cell: RecurrentLayerCell>: Layer where Cell.TimeStepOutput: Mergeable
שכבה המרכיבה ברצף שתי שכבות אחרות או יותר.
דוגמאות:
- בנה מודל פרספטרון דו-שכבתי פשוט עבור 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) }
- בנה מקודד אוטומטי עבור 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) }
הַצהָרָה
@_functionBuilder public struct LayerBuilder
ShapedArray
הוא מערך רב מימדי. יש לו צורה, שיש לה סוג[Int]
ומגדירה את ממדי המערך, ומשתמשת ב-TensorBuffer
פנימי כאחסון.הַצהָרָה
@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
פרוסה רציפה של מופע
ShapedArray
אוShapedArraySlice
.ShapedArraySlice
מאפשר פעולות מהירות ויעילות על פרוסות רצופות של מופעיShapedArray
. למופעיShapedArraySlice
אין אחסון משלהם. במקום זאת, הם מספקים מבט על האחסון שלShapedArray
הבסיסי שלהם.ShapedArraySlice
יכול לייצג שני סוגים שונים של פרוסות: מערכי אלמנטים ומערכים משנה.מערכי אלמנטים הם אלמנטים תת-ממדיים של
ShapedArray
: הדרגה שלהם היא אחת פחות מזו של הבסיס שלהם. פרוסות מערך אלמנטים מתקבלות על ידי אינדקס של מופעShapedArray
עם אינדקסInt32
יחיד.לְדוּגמָה:
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]].
מערכי משנה הם טווח רציף של האלמנטים ב-
ShapedArray
. הדרגה של תת-מערך זהה לזו של הבסיס שלו, אבל הממד המוביל שלו הוא ספירת טווח הפרוסות. פרוסות תת-מערך מתקבלות על ידי אינדקס שלShapedArray
עםRange<Int32>
המייצג טווח של אלמנטים (במימד המוביל). שיטות כמוprefix(:)
suffix(:)
אשר אינדקס פנימית עם טווח מייצרות גם תת-מערך.לְדוּגמָה:
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]].
הַצהָרָה
@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
הוא מערך רב מימדי שהאלמנטים שלו הםString
s.הַצהָרָה
@frozen public struct StringTensor
extension StringTensor: TensorGroup
TensorHandle
הוא הסוג המשמש את ops. הוא כולל סוגScalar
, שבו מערכות פנימיות מהדר יכולות להשתמש כדי לקבוע את סוגי הנתונים של פרמטרים כאשר הם מחולצים לתוכנית טנזור.הַצהָרָה
public struct TensorHandle<Scalar> where Scalar : _TensorFlowDataTypeCompatible
extension TensorHandle: TensorGroup
הַצהָרָה
public struct ResourceHandle
extension ResourceHandle: TensorGroup
הַצהָרָה
public struct VariantHandle
extension VariantHandle: TensorGroup
מבנה המייצג צורה של טנזור.
TensorShape
היא עטיפה דקה סביב מערך של מספרים שלמים המייצגים ממדי צורות. כל סוגי הטנסור משתמשים ב-TensorShape
כדי לייצג את צורתם.הַצהָרָה
@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 מקרוב את
[WritableKeyPath<Base, Tensor<Float>]
אבל הוא יעיל יותר. זה שימושי לכתיבת מטובי אופטימיזציה גנריים שרוצים למפות את ההדרגות, את המשקלים הקיימים ואינדקס שניתן להשתמש בו כדי למצוא משקלים מאוחסנים בעזרה. זה מעט יותר יעיל (~2x) אבל זה יכול להיות טוב יותר מכיוון שהוא מחליף תקורה מעט יותר גבוהה (הפניית מצביע נוספת) על כך שלא צריך לעשות עבודת O(depth_of_tree) שנדרשת עם רשימה פשוטה כדי לעקוב אחר כל KeyPath בנפרד.הַצהָרָה
public struct TensorVisitorPlan<Base>
שכבת upsampling עבור כניסות 1-D.
הַצהָרָה
@frozen public struct UpSampling1D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבת upsampling עבור כניסות דו-ממדיות.
הַצהָרָה
@frozen public struct UpSampling2D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
שכבת upsampling עבור כניסות תלת מימדיות.
הַצהָרָה
@frozen public struct UpSampling3D<Scalar> : ParameterlessLayer where Scalar : TensorFlowFloatingPoint
אוסף מוני חיזוי נכונים וסיכומי הפסד.
הַצהָרָה
public struct HostStatistics