کتابخانه‌ی استاندارد · هوش مصنوعی

شبکه عصبی ai.nn

لایه‌های شبکه‌ی عصبی: خطی، پیچشی، بازگشتی، ترنسفورمر و نقطه‌ی بازرسی.

واردسازی هوش مصنوعی.شبکه عصبی

نام آرگومان‌ها شناسه‌ی خود کد است و معادل فارسی ندارد؛ گونه‌ها، کلیدواژه‌ها و نام بسته‌ها با معادل فارسی نوشته می‌شوند.

این بسته لایه‌های آماده برای ساختن شبکه‌ی عصبی در سلام را دارد: لایه‌ی خطی، پیچشی، ادغام، نرمال‌سازی، جاسازی، LSTM و GRU، توجه و بلوک‌های ترنسفورمر، به همراه مقداردهی آغازین وزن‌ها و نقطه‌ی بازرسی. وزن‌های همه‌ی لایه‌ها در یک مخزن پارامتر نگه داشته می‌شوند. هر لایه را با تابعی «... جدید» و نامی یکتا بسازید و در هر گام پیشرو آن را روی نوار مشتق‌گیری خودکار صدا بزنید. ترتیبی چند لایه را پشت سر هم اجرا می‌کند. خود آموزش کار بهینه‌سازی است.

برای مدلی که دیگری آموزش داده، آن را با onnx بار کنید. برای مدل‌های کلاسیک مثل درخت تصمیم، k-means یا رگرسیون لجستیک روی داده‌ی جدولی، ml کوتاه‌تر است و حلقه‌ی آموزش نمی‌خواهد.

اشتباه‌های رایج

  • مقدار هر لایه فقط شماره‌ی وزن‌هایش در مخزن را نگه می‌دارد، نه خود وزن‌ها را. همان مخزنی را به پیشرو بدهید که به تابع سازنده داده‌اید.
  • نام‌ها باید یکتا باشند. افزودن این را نمی‌سنجد و نقطه‌ی بازرسی هر تانسور را در نخستین پارامتری با همان نام بار می‌کند، پس نام تکراری بارگذاری را خراب می‌کند.
  • ترتیبی فقط لایه‌هایی را می‌پذیرد که پیشرو آن‌ها مخزن را می‌گیرد: لایه خطی، لایه پیچشی، نرمال‌سازها و لایه‌های فعال‌سازی. حذف تصادفی، لایه بیشینه‌گیری، لایه میانگین‌گیری و تخت‌سازی را خودتان میان آن‌ها صدا بزنید.
  • نقطه‌ی بازرسی فقط مخزن پارامتر را نگه می‌دارد. میانگین و واریانس جاری نرمال‌سازی دسته و وضعیت بهینه‌ساز ذخیره نمی‌شوند.
  • پیش از ارزیابی نوار.training = نادرست بگذارید تا حذف تصادفی دیگر چیزی حذف نکند و نرمال‌سازی دسته از میانگین‌های جاری‌اش استفاده کند.

نخستین شبکه: XOR

XOR کوچک‌ترین مسئله‌ای است که هیچ خط راستی حلش نمی‌کند، پس آزمون اول کلاسیک برای شبکه‌ای با یک لایه‌ی پنهان است. ترتیبی یک لایه‌ی خطی با هشت واحد، یک لایه تانژانت هذلولی و لایه‌ی خطی دومی با یک خروجی را پشت هم می‌گذارد. زیان آنتروپی دودویی لوجیت است که خروجی خام را می‌گیرد و سیگموئید را خودش اعمال می‌کند؛ پایدارتر از انجام آن در دو گام. پس از آموزش، سیگموئید از بسته‌ی تانسور خروجی‌ها را به احتمال تبدیل می‌کند و گرد کردن پاسخ را می‌دهد.

nn-guide-xor.salam
واردسازی هوش مصنوعی.شبکه عصبی
واردسازی هوش مصنوعی.مشتق‌گیری خودکار
واردسازی هوش مصنوعی.بهینه‌سازی
واردسازی هوش مصنوعی.تانسور

تابع جدول(مقدارها: اعشار۶۴[]، سطرها: صحیح، ستون‌ها: صحیح): تانسور.تانسور:
    ناپایا داده := وکتور {} برگردان وکتور<اعشار۳۲>
    هر م در مقدارها:
        داده.بیفزا(م برگردان اعشار۳۲)
    پایان
    ناپایا شکل := تانسور.شکل دو(سطرها، ستون‌ها)
    برگشت تانسور.از آرایه(شکل، داده)
پایان

تابع ریشه:
    ناپایا ورودی‌ها := جدول([۰.۰، ۰.۰، ۰.۰، ۱.۰، ۱.۰، ۰.۰، ۱.۰، ۱.۰]، ۴، ۲)
    ناپایا برچسب ها := جدول([۰.۰، ۱.۰، ۱.۰، ۰.۰]، ۴، ۱)
    ناپایا مخزن := شبکه عصبی.مخزن پارامتر {}
    ناپایا مولد := تانسور.مولد تصادفی جدید(۷)
    ناپایا مدل := شبکه عصبی.ترتیبی {}
    مدل.افزودن(شبکه عصبی.لایه خطی جدید(مخزن، "hidden"، ۲، ۸، مولد))
    مدل.افزودن(شبکه عصبی.لایه تانژانت هذلولی {})
    مدل.افزودن(شبکه عصبی.لایه خطی جدید(مخزن، "out"، ۸، ۱، مولد))
    ناپایا آدام := بهینه‌سازی.آدام { نرخ یادگیری = ۰.۰۵ }
    ناپایا نوار := مشتق‌گیری خودکار.نوار جدید(۱)
    ناپایا مقدار زیان := ۰.۰
    تکرار ۵۰۰:
        نوار.بازنشانی()
        مخزن.صفر کردن گرادیان()
        لوجیت ها := مدل.پیشرو(نوار، مخزن، مشتق‌گیری خودکار.ورودی(نوار، ورودی‌ها))
        زیان := مشتق‌گیری خودکار.آنتروپی دودویی لوجیت(نوار، لوجیت ها، مشتق‌گیری خودکار.ثابت(نوار، برچسب ها))
        مشتق‌گیری خودکار.پس‌انتشار(نوار، زیان)
        آدام.گام(مخزن)
        مقدار زیان = مشتق‌گیری خودکار.مقدار(نوار، زیان).عنصر(۰)
    پایان
    سرچاپ "زیان کمتر از ۰.۰۵:"، مقدار زیان < ۰.۰۵
    نوار.بازنشانی()
    احتمال ها := تانسور.سیگموئید(مشتق‌گیری خودکار.مقدار(نوار، مدل.پیشرو(نوار، مخزن، مشتق‌گیری خودکار.ورودی(نوار، ورودی‌ها))))
    تکرار ۴ در ی:
        سرچاپ ورودی‌ها.در دو(ی، ۰)، "xor"، ورودی‌ها.در دو(ی، ۱)، "="، (احتمال ها.عنصر(ی) + ۰.۵) برگردان صحیح
    پایان
    نوار.آزادسازی()
    آدام.آزادسازی()
    مخزن.آزادسازی()
پایان
خروجیزیان کمتر از ۰.۰۵: true 0 xor 0 = 0 0 xor 1 = 1 1 xor 0 = 1 1 xor 1 = 0

حلقه‌ی آموزش در هر برنامه همان پنج خط را دارد: بازنشانی نوار، صفر کردن گرادیان مخزن، اجرای پیشرو و زیان، پس‌انتشار، و گام بهینه‌ساز. دانه‌ای که به مولد تصادفی جدید می‌دهید وزن‌های آغازین را ثابت می‌کند، پس هر اجرا را می‌شود دقیقا تکرار کرد.

دسته‌بندی در چند دسته

برای بیش از دو دسته، لایه‌ی آخر برای هر دسته یک خروجی دارد و زیان آنتروپی متقاطع لوجیت است که شماره‌ی دسته‌ها را به شکل یک وکتور<صحیح> ساده می‌گیرد. پیش‌بینی دسته‌ای است که بزرگ‌ترین خروجی را دارد و با نمایه بیشینه محور پیدا می‌شود. این‌جا شصت نقطه گرد سه مرکز بی‌خطا جدا می‌شوند؛ روی داده‌ی واقعی دقت را روی نمونه‌هایی بسنجید که مدل با آن‌ها آموزش ندیده است.

nn-guide-classify.salam
واردسازی هوش مصنوعی.شبکه عصبی
واردسازی هوش مصنوعی.مشتق‌گیری خودکار
واردسازی هوش مصنوعی.بهینه‌سازی
واردسازی هوش مصنوعی.تانسور

تابع ریشه:
    ناپایا مولد := تانسور.مولد تصادفی جدید(۵)
    ناپایا نقطه ها := تانسور.صفرها دو(۶۰، ۲)
    ناپایا برچسب ها := وکتور {} برگردان وکتور<صحیح>
    تکرار ۶۰ در ی:
        دسته := ی % ۳
        برچسب ها.بیفزا(دسته)
        مرکز ایکس := (دسته برگردان اعشار۶۴) * ۲.۰
        مرکز ایگرگ := ((دسته % ۲) برگردان اعشار۶۴) * ۲.۰
        نقطه ها.تنظیم در دو(ی، ۰، مرکز ایکس + مولد.نرمال بعدی() * ۰.۳)
        نقطه ها.تنظیم در دو(ی، ۱، مرکز ایگرگ + مولد.نرمال بعدی() * ۰.۳)
    پایان
    ناپایا مخزن := شبکه عصبی.مخزن پارامتر {}
    ناپایا مدل := شبکه عصبی.ترتیبی {}
    مدل.افزودن(شبکه عصبی.لایه خطی جدید(مخزن، "fc1"، ۲، ۱۶، مولد))
    مدل.افزودن(شبکه عصبی.لایه یکسوساز {})
    مدل.افزودن(شبکه عصبی.لایه خطی جدید(مخزن، "fc2"، ۱۶، ۳، مولد))
    ناپایا آدام := بهینه‌سازی.آدام { نرخ یادگیری = ۰.۰۵ }
    ناپایا نوار := مشتق‌گیری خودکار.نوار جدید(۱)
    تکرار ۲۰۰:
        نوار.بازنشانی()
        مخزن.صفر کردن گرادیان()
        لوجیت ها := مدل.پیشرو(نوار، مخزن، مشتق‌گیری خودکار.ورودی(نوار، نقطه ها))
        زیان := مشتق‌گیری خودکار.آنتروپی متقاطع لوجیت(نوار، لوجیت ها، برچسب ها)
        مشتق‌گیری خودکار.پس‌انتشار(نوار، زیان)
        آدام.گام(مخزن)
    پایان
    نوار.بازنشانی()
    حدس ها := تانسور.نمایه بیشینه محور(مشتق‌گیری خودکار.مقدار(نوار، مدل.پیشرو(نوار، مخزن، مشتق‌گیری خودکار.ورودی(نوار، نقطه ها)))، ۱، نادرست)
    ناپایا امتیاز := ۰
    تکرار ۶۰ در ی:
        اگر حدس ها.عنصر(ی) برگردان صحیح == برچسب ها.بگیر(ی):
            امتیاز++
        پایان
    پایان
    سرچاپ "درست:"، امتیاز، "از ۶۰"
    نوار.آزادسازی()
    آدام.آزادسازی()
    مخزن.آزادسازی()
پایان
خروجیدرست: 60 از ۶۰

((دسته % ۲) برگردان اعشار۶۴) * ۲.۰ را با پرانتز بنویسید. بدون آن، برگردان اعشار۶۴ * گونه‌ی اشاره‌گر اعشار۶۴* خوانده می‌شود و خط کامپایل نمی‌شود.

ذخیره و بارگذاری وزن‌ها

نقطه‌ی بازرسی هر تانسور یک مخزن پارامتر را زیر نام لایه‌اش نگه می‌دارد. برای بارگذاری، همان لایه‌ها را با همان نام‌ها و شکل‌ها بسازید و بعد بارگذاری نقطه بازرسی (از فایل) یا بارگذاری نقطه بازرسی از بافر (از حافظه) را صدا بزنید؛ وزن‌های آغازین رونویسی می‌شوند. مدل دوم زیر با وزن‌های تصادفی دیگری شروع می‌کند، پاسخ دیگری می‌دهد، و پس از بارگذاری دقیقا مثل اولی پاسخ می‌دهد.

nn-guide-checkpoint.salam
واردسازی هوش مصنوعی.شبکه عصبی
واردسازی هوش مصنوعی.مشتق‌گیری خودکار
واردسازی هوش مصنوعی.تانسور
واردسازی فشرده سازی

تابع ساختن(مخزن &: شبکه عصبی.مخزن پارامتر، دانه: صحیح۶۴): شبکه عصبی.ترتیبی:
    ناپایا مولد := تانسور.مولد تصادفی جدید(دانه)
    ناپایا مدل := شبکه عصبی.ترتیبی {}
    مدل.افزودن(شبکه عصبی.لایه خطی جدید(مخزن، "fc1"، ۳، ۴، مولد))
    مدل.افزودن(شبکه عصبی.لایه گلو {})
    مدل.افزودن(شبکه عصبی.لایه خطی جدید(مخزن، "fc2"، ۴، ۲، مولد))
    برگشت مدل
پایان

تابع اجرا(مدل &: شبکه عصبی.ترتیبی، مخزن &: شبکه عصبی.مخزن پارامتر، ایکس &: تانسور.تانسور): تانسور.تانسور:
    ناپایا نوار := مشتق‌گیری خودکار.نوار جدید(۱)
    خروجی := تانسور.همانند(مشتق‌گیری خودکار.مقدار(نوار، مدل.پیشرو(نوار، مخزن، مشتق‌گیری خودکار.ورودی(نوار، ایکس))))
    نوار.آزادسازی()
    برگشت خروجی
پایان

تابع ریشه خطادار:
    ناپایا ایکس := تانسور.یک‌ها(تانسور.شکل دو(۱، ۳))
    ناپایا آموزش دیده := شبکه عصبی.مخزن پارامتر {}
    ناپایا اولی := ساختن(آموزش دیده، ۱)
    ناپایا ذخیره := شبکه عصبی.ذخیره نقطه بازرسی در بافر(آموزش دیده)

    ناپایا تازه := شبکه عصبی.مخزن پارامتر {}
    ناپایا دومی := ساختن(تازه، ۹۹)
    سرچاپ "پیش از بارگذاری، خروجی یکی است:"، تانسور.همه نزدیک(اجرا(اولی، آموزش دیده، ایکس)، اجرا(دومی، تازه، ایکس)، ۰.۰۰۰۰۰۱)
    تلاش شبکه عصبی.بارگذاری نقطه بازرسی از بافر(ذخیره، تازه)
    ناپایا دیگر := شبکه عصبی.مخزن پارامتر {}
    _ := ساختن(دیگر، ۵)
    _ := ساختن(دیگر، ۶)
    تلاش:
        شبکه عصبی.بارگذاری نقطه بازرسی از بافر(ذخیره، دیگر)
    گرفتن خطا خ:
        سرچاپ "مدلی دیگر:"، خ.به رشته()
    پایان
    دیگر.آزادسازی()
    سرچاپ "پس از بارگذاری، خروجی یکی است:"، تانسور.همه نزدیک(اجرا(اولی، آموزش دیده، ایکس)، اجرا(دومی، تازه، ایکس)، ۰.۰۰۰۰۰۱)
    سرچاپ "پارامترها:"، تازه.شمار()
    فشرده سازی.آزادسازی بافر(ذخیره)
    آموزش دیده.آزادسازی()
    تازه.آزادسازی()
پایان
خروجیپیش از بارگذاری، خروجی یکی است: false مدلی دیگر: checkpoint: the checkpoint has 4 parameters, the model has 8 (offset 12) پس از بارگذاری، خروجی یکی است: true پارامترها: 4

بارگذاری نقطه بازرسی و بارگذاری نقطه بازرسی از بافر خطاداراند. پیش از نوشتن هر وزنی کل پرونده بررسی می‌شود: CRC (nn.crc)، شمار پارامترها (nn.param_count، مثل مخزن سوم بالا که لایه‌ها را دو بار دارد)، هر نام (nn.unknown_param) و هر شکل (nn.shape). پس پس از خطا مخزن دقیقا همان است که بود. مسیری که با .gz تمام شود هنگام ذخیره با gzip فشرده و هنگام بارگذاری باز می‌شود. بارگذاری با نام جور می‌شود، پس تغییر نام یک لایه نقطه‌های بازرسی قدیمی را خراب می‌کند. نام‌ها را ثابت نگه دارید و کدی را که مدل را می‌سازد در یک تابع بگذارید که هم برای آموزش و هم برای بارگذاری به کار رود، مثل ساختن در این‌جا.

کدام لایه برای کدام کار

دادهلایه‌ها
سطرهایی از عددلایه خطی جدید با لایه یکسوساز، لایه گلو یا لایه تانژانت هذلولی میانشان
تصویرلایه پیچشی جدید، لایه بیشینه‌گیری، نرمال‌سازی دسته جدید، بعد تخت‌سازی و لایه خطی جدید
واژه‌ها و توکن‌هاجاسازی جدید و موقعیت سینوسی
دنباله‌ها، گام به گامحافظه کوتاه‌مدت بلند جدید، واحد بازگشتی دروازه‌دار جدید، گام آخر
دنباله‌ها، یک‌جاتوجه چندسر جدید، لایه رمزگذار ترنسفورمر جدید، ماسک علّی
آموزش پایدارترنرمال‌سازی لایه جدید، نرمال‌سازی جذر میانگین مربعات جدید، حذف تصادفی

گونه‌ها

توجه چندسر MultiHeadAttention

ساختار توجه چندسر
توجه چندسر.
نامانگلیسیگونهتوضیح
وزن پرسشwqلایه خطیلایه‌ی پرسش.
وزن کلیدwkلایه خطیلایه‌ی کلید.
وزن مقدارwvلایه خطیلایه‌ی مقدار.
وزن خروجیwoلایه خطیلایه‌ی خروجی.
اندازهdimصحیح = 0اندازه.
سرهاheadsصحیح = 1شمار سرها.
حذف تصادفیdropoutاعشار۶۴ = 0احتمال حذف.
علیcausalمنطقی = نادرستهر جایگاه فقط جایگاه‌های پیشین را ببیند.
ai-nn-Sequence.salam
واردسازی هوش مصنوعی.شبکه عصبی
واردسازی هوش مصنوعی.مشتق‌گیری خودکار
واردسازی هوش مصنوعی.تانسور

تابع شکل(نوار &: مشتق‌گیری خودکار.نوار، گره: صحیح): رشته:
    برگشت تانسور.رشته شکل(مشتق‌گیری خودکار.مقدار(نوار، گره))
پایان

تابع ریشه:
    دسته := ۲
    طول := ۳
    بعد := ۸
    ناپایا مخزن := شبکه عصبی.مخزن پارامتر {}
    ناپایا مولد := تانسور.مولد تصادفی جدید(۱۱)
    ناپایا نوار := مشتق‌گیری خودکار.نوار جدید(۱)

    جاسازی := شبکه عصبی.جاسازی جدید(مخزن، "embed"، ۱۰، بعد، مولد)
    ناپایا توکن‌ها := وکتور {} برگردان وکتور<صحیح>
    هر ت در [۱، ۲، ۳، ۴، ۵، ۶]:
        توکن‌ها.بیفزا(ت)
    پایان
    ح := جاسازی.پیشرو(نوار، مخزن، توکن‌ها)
    ناپایا مکان := شبکه عصبی.موقعیت سینوسی(دسته، طول، بعد)
    ح۲ := مشتق‌گیری خودکار.جمع(نوار، ح، مشتق‌گیری خودکار.ورودی(نوار، مکان))
    سرچاپ شکل(نوار، ح)، تانسور.رشته شکل(مکان)

    توجه := شبکه عصبی.توجه چندسر جدید(مخزن، "attn"، بعد، ۲، ۰.۰، مولد)
    سرچاپ شکل(نوار، توجه.پیشرو(نوار، مخزن، ح۲، دسته، طول))
    رمزگذار := شبکه عصبی.لایه رمزگذار ترنسفورمر جدید(مخزن، "enc"، بعد، ۲، ۱۶، ۰.۰، مولد)
    سرچاپ شکل(نوار، رمزگذار.پیشرو(نوار، مخزن، ح۲، دسته، طول))
    رمزگشا := شبکه عصبی.لایه رمزگشای ترنسفورمر جدید(مخزن، "dec"، بعد، ۲، ۱۶، ۰.۰، مولد)
    سرچاپ شکل(نوار، رمزگشا.پیشرو(نوار، مخزن، ح۲، دسته، طول))
    ناپایا ماسک := شبکه عصبی.ماسک علّی(طول)
    سرچاپ تانسور.به رشته(تانسور.کوچکتر از عدد(ماسک، -۱.۰))

    ناپایا دنباله := تانسور.یک‌ها(تانسور.شکل دو(طول * دسته، ۴))
    حافظه := شبکه عصبی.حافظه کوتاه‌مدت بلند جدید(مخزن، "lstm"، ۴، ۶، مولد)
    دروازه := شبکه عصبی.واحد بازگشتی دروازه‌دار جدید(مخزن، "gru"، ۴، ۶، مولد)
    ورودی د := مشتق‌گیری خودکار.ورودی(نوار، دنباله)
    حالت‌ها := حافظه.پیشرو(نوار، مخزن، ورودی د، طول، دسته)
    حالت‌ها۲ := دروازه.پیشرو(نوار، مخزن، ورودی د، طول، دسته)
    سرچاپ شکل(نوار، حالت‌ها)، شکل(نوار، حالت‌ها۲)، شکل(نوار، شبکه عصبی.گام آخر(نوار، حالت‌ها، طول، دسته))
    سرچاپ مخزن.شمار() > ۱۰
    نوار.آزادسازی()
    مخزن.آزادسازی()
پایان
خروجی6x8 6x8 6x8 6x8 6x8 tensor(3x3)[0 1 1 0 0 1 0 0 0] 6x6 6x6 2x6 true

پیشرو forward

تابع پیشرو(tp &: مشتق‌گیری خودکار.نوار، ps &: مخزن پارامتر، x: صحیح، batch: صحیح، seq: صحیح): صحیح
خودتوجهی روی ورودی با دسته و طول.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Sequence.salam

لایه رمزگذار ترنسفورمر TransformerEncoderLayer

ساختار لایه رمزگذار ترنسفورمر
یک لایه‌ی ترنسفورمر: توجه و شبکه‌ی پیشرو، هر دو با نرمال‌سازی و پیوند باقیمانده.
نامانگلیسیگونهتوضیح
توجهattnتوجه چندسرتوجه.
نرمال‌ساز نخستln1نرمال‌سازی لایهنرمال‌سازی نخست.
نرمال‌ساز دومln2نرمال‌سازی لایهنرمال‌سازی دوم.
پیشروی نخستff1لایه خطیلایه‌ی پیشروی نخست.
پیشروی دومff2لایه خطیلایه‌ی پیشروی دوم.
حذف تصادفیdropoutاعشار۶۴ = 0احتمال حذف.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Sequence.salam

پیشرو forward

تابع پیشرو(tp &: مشتق‌گیری خودکار.نوار، ps &: مخزن پارامتر، x: صحیح، batch: صحیح، seq: صحیح): صحیح
خروجی لایه را روی نوار حساب می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Sequence.salam

پارامتر Parameter

ساختار پارامتر
یک پارامتر آموختنی.
نامانگلیسیگونهتوضیح
نامnameرشته = ""نام.
مقدارvalueتانسور.تانسورمقدار.
گرادیانgradتانسور.تانسورگرادیان.
ai-nn-Layers.salam
واردسازی هوش مصنوعی.شبکه عصبی
واردسازی هوش مصنوعی.مشتق‌گیری خودکار
واردسازی هوش مصنوعی.بهینه‌سازی
واردسازی هوش مصنوعی.تانسور
واردسازی سیستم عامل
واردسازی فشرده سازی

تابع ریشه خطادار:
    ناپایا مخزن := شبکه عصبی.مخزن پارامتر {}
    ناپایا مولد := تانسور.مولد تصادفی جدید(۳)
    لایه۱ := شبکه عصبی.لایه خطی جدید(مخزن، "fc1"، ۲، ۸، مولد)
    لایه۲ := شبکه عصبی.لایه خطی بی‌بایاس(مخزن، "fc2"، ۸، ۱، مولد)
    ناپایا مدل := شبکه عصبی.ترتیبی {}
    مدل.افزودن(لایه۱)
    مدل.افزودن(شبکه عصبی.لایه تانژانت هذلولی {})
    مدل.افزودن(لایه۲)
    سرچاپ مخزن.شمار()

    ناپایا ورودی‌ها := تانسور.تغییر شکل(تانسور.بازه گام(۸)، تانسور.شکل دو(۴، ۲))
    تانسور.مقیاس درجا(ورودی‌ها، ۰.۲۵)
    ناپایا هدف := تانسور.صفرها دو(۴، ۱)
    تکرار ۴ در ش:
        هدف.تنظیم در(ش، ورودی‌ها.در دو(ش، ۰) + ورودی‌ها.در دو(ش، ۱))
    پایان
    ناپایا آدام := بهینه‌سازی.آدام { نرخ یادگیری = ۰.۰۵ }
    ناپایا نوار := مشتق‌گیری خودکار.نوار جدید(۱)
    ناپایا آخرین := ۰.۰
    تکرار ۳۰۰:
        نوار.بازنشانی()
        مخزن.صفر کردن گرادیان()
        خروجی := مدل.پیشرو(نوار، مخزن، مشتق‌گیری خودکار.ورودی(نوار، ورودی‌ها))
        زیان := مشتق‌گیری خودکار.خطای میانگین مربعات(نوار، خروجی، مشتق‌گیری خودکار.ثابت(نوار، هدف))
        مشتق‌گیری خودکار.پس‌انتشار(نوار، زیان)
        آدام.گام(مخزن)
        آخرین = مشتق‌گیری خودکار.مقدار(نوار، زیان).عنصر(۰)
    پایان
    سرچاپ آخرین < ۰.۰۱
    ناپایا پ := مخزن.عنصر(لایه۱.شماره وزن)
    سرچاپ پ.نام، تانسور.رشته شکل(پ.مقدار)، تانسور.رشته شکل(پ.گرادیان)
    گره وزن := شبکه عصبی.پیوند(نوار، مخزن، لایه۱.شماره وزن)
    سرچاپ تانسور.رشته شکل(مشتق‌گیری خودکار.مقدار(نوار، گره وزن))

    مسیر := سیستم عامل.پوشه موقت() + "/salam_mlp.ckpt"
    سرچاپ شبکه عصبی.ذخیره نقطه بازرسی(مسیر، مخزن)
    تلاش شبکه عصبی.بارگذاری نقطه بازرسی(مسیر، مخزن)
    ناپایا بافر := شبکه عصبی.ذخیره نقطه بازرسی در بافر(مخزن)
    تلاش شبکه عصبی.بارگذاری نقطه بازرسی از بافر(بافر، مخزن)
    فشرده سازی.تنظیم بایت(بافر، ۲۰، ۰)
    تلاش:
        شبکه عصبی.بارگذاری نقطه بازرسی از بافر(بافر، مخزن)
    گرفتن خطا خ:
        سرچاپ خ.کد
    پایان
    فشرده سازی.آزادسازی بافر(بافر)

    ناپایا تصویرها := تانسور.یک‌ها(تانسور.شکل چهار(۲، ۱، ۸، ۸))
    پیچش := شبکه عصبی.لایه پیچشی جدید(مخزن، "conv"، ۱، ۴، ۳، ۱، ۱، مولد)
    ناپایا نرم دسته := شبکه عصبی.نرمال‌سازی دسته جدید(مخزن، "bn"، ۴)
    نرم گروه := شبکه عصبی.نرمال‌سازی گروهی جدید(مخزن، "gn"، ۴، ۲)
    بیشینه := شبکه عصبی.لایه بیشینه‌گیری { اندازه پنجره = ۲، گام = ۲ }
    میانگین := شبکه عصبی.لایه میانگین‌گیری {}
    ح := پیچش.پیشرو(نوار، مخزن، مشتق‌گیری خودکار.ورودی(نوار، تصویرها))
    ح۲ := نرم گروه.پیشرو(نوار، مخزن، نرم دسته.پیشرو(نوار، مخزن، ح))
    ح۳ := میانگین.پیشرو(نوار، بیشینه.پیشرو(نوار، شبکه عصبی.لایه یکسوساز {}.پیشرو(نوار، مخزن، ح۲)))
    تخت := شبکه عصبی.تخت‌سازی(نوار، ح۳)
    سرچاپ تانسور.رشته شکل(مشتق‌گیری خودکار.مقدار(نوار، ح))، تانسور.رشته شکل(مشتق‌گیری خودکار.مقدار(نوار، تخت))

    ردیف := مشتق‌گیری خودکار.ورودی(نوار، تانسور.یک‌ها(تانسور.شکل دو(۲، ۴)))
    نرم لایه := شبکه عصبی.نرمال‌سازی لایه جدید(مخزن، "ln"، ۴)
    نرم جذر := شبکه عصبی.نرمال‌سازی جذر میانگین مربعات جدید(مخزن، "rms"، ۴)
    حذف := شبکه عصبی.حذف تصادفی { احتمال حذف = ۰.۰ }
    گلو := شبکه عصبی.لایه گلو {}
    خ := گلو.پیشرو(نوار، مخزن، حذف.پیشرو(نوار، نرم جذر.پیشرو(نوار، مخزن، نرم لایه.پیشرو(نوار، مخزن، ردیف))))
    سرچاپ تانسور.رشته شکل(مشتق‌گیری خودکار.مقدار(نوار، خ))

    ناپایا وزن := تانسور.صفرها دو(۶۴، ۶۴)
    شبکه عصبی.ژاویر یکنواخت(وزن، ۶۴، ۶۴، مولد)
    سرچاپ تانسور.بیشینه همه(تانسور.قدر مطلق(وزن)) <= ۰.۲۲
    شبکه عصبی.ژاویر نرمال(وزن، ۶۴، ۶۴، مولد)
    شبکه عصبی.کایمینگ یکنواخت(وزن، ۶۴، مولد)
    سرچاپ تانسور.بیشینه همه(تانسور.قدر مطلق(وزن)) <= ۰.۳۱
    شبکه عصبی.کایمینگ نرمال(وزن، ۶۴، مولد)
    سرچاپ تانسور.بیشینه همه(تانسور.قدر مطلق(وزن)) > ۰.۰

    نوار.آزادسازی()
    آدام.آزادسازی()
    مدل.آزادسازی()
    نرم دسته.آزادسازی()
    مخزن.آزادسازی()
پایان
خروجی3 true fc1.w 2x8 2x8 2x8 true nn.crc 2x4x8x8 2x16 2x4 true true true

مخزن پارامتر ParamStore

ساختار مخزن پارامتر
مخزن پارامترها؛ همه‌ی وزن‌های مدل آنجاست و لایه‌ها با شماره به آن‌ها اشاره می‌کنند.
نامانگلیسیگونهتوضیح
پارامترهاitemsوکتور<پارامتر>پارامترها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

افزودن add

تابع افزودن(name: رشته، t: تانسور.تانسور): صحیح
پارامتر می‌افزاید و شماره‌اش را برمی‌گرداند. تکراری بودن نام سنجیده نمی‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

شمار count

تابع شمار(): صحیح
شمار پارامترها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

عنصر at

تابع عنصر(h: صحیح): پارامتر
پارامتر شماره‌ی h.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

صفر کردن گرادیان zero_grad

تابع صفر کردن گرادیان()
گرادیان‌ها را صفر می‌کند؛ در آغاز هر گام.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

آزادسازی free

تابع آزادسازی()
همه را آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

حافظه کوتاه‌مدت بلند LSTM

ساختار حافظه کوتاه‌مدت بلند
شبکه‌ی حافظه‌ی کوتاه‌مدت بلند.
نامانگلیسیگونهتوضیح
وزن‌ورودیwxلایه خطیوزن ورودی.
وزن حالتwhلایه خطیوزن حالت.
اندازه حالتhiddenصحیح = 0اندازه‌ی حالت.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Sequence.salam

پیشرو forward

تابع پیشرو(tp &: مشتق‌گیری خودکار.نوار، ps &: مخزن پارامتر، x: صحیح، seq: صحیح، batch: صحیح): صحیح
حالت همه‌ی گام‌ها را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Sequence.salam

واحد بازگشتی دروازه‌دار GRU

ساختار واحد بازگشتی دروازه‌دار
واحد بازگشتی دروازه‌دار.
نامانگلیسیگونهتوضیح
وزن‌ورودیwxلایه خطیوزن ورودی.
وزن حالتwhلایه خطیوزن حالت.
اندازه حالتhiddenصحیح = 0اندازه‌ی حالت.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Sequence.salam

پیشرو forward

تابع پیشرو(tp &: مشتق‌گیری خودکار.نوار، ps &: مخزن پارامتر، x: صحیح، seq: صحیح، batch: صحیح): صحیح
حالت همه‌ی گام‌ها را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Sequence.salam

لایه Layer

میانجی لایه
رابط لایه: هر چیزی که پیشرو دارد و در ترتیبی می‌نشیند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

لایه یکسوساز ReluLayer

ساختار لایه یکسوساز
لایه‌ی یکسوساز برای ترتیبی.
نامانگلیسیگونهتوضیح
بی‌کاربردunusedصحیح = 0بی‌کاربرد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

پیشرو forward

تابع پیشرو(tp &: مشتق‌گیری خودکار.نوار، _ps &: مخزن پارامتر، x: صحیح): صحیح
خروجی لایه را روی نوار حساب می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

لایه گلو GeluLayer

ساختار لایه گلو
لایه‌ی GELU برای ترتیبی.
نامانگلیسیگونهتوضیح
بی‌کاربردunusedصحیح = 0بی‌کاربرد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

پیشرو forward

تابع پیشرو(tp &: مشتق‌گیری خودکار.نوار، _ps &: مخزن پارامتر، x: صحیح): صحیح
خروجی لایه را روی نوار حساب می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

لایه تانژانت هذلولی TanhLayer

ساختار لایه تانژانت هذلولی
لایه‌ی تانژانت هذلولی برای ترتیبی.
نامانگلیسیگونهتوضیح
بی‌کاربردunusedصحیح = 0بی‌کاربرد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

پیشرو forward

تابع پیشرو(tp &: مشتق‌گیری خودکار.نوار، _ps &: مخزن پارامتر، x: صحیح): صحیح
خروجی لایه را روی نوار حساب می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

ترتیبی Sequential

ساختار ترتیبی
زنجیره‌ای از لایه‌ها که پشت سر هم اجرا می‌شوند.
نامانگلیسیگونهتوضیح
لایه‌هاlayersوکتورلایه‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

افزودن add

تابع افزودن(l: dyn لایه)
لایه‌ای به انتها می‌افزاید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

پیشرو forward

تابع پیشرو(tp &: مشتق‌گیری خودکار.نوار، ps &: مخزن پارامتر، x: صحیح): صحیح
ورودی را از همه‌ی لایه‌ها می‌گذراند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

آزادسازی free

تابع آزادسازی()
زنجیره را آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

لایه پیچشی Conv2D

ساختار لایه پیچشی
لایه‌ی پیچش دوبعدی.
نامانگلیسیگونهتوضیح
شماره وزنwصحیح = -1شماره‌ی وزن.
شماره سوگیریbصحیح = -1شماره‌ی سوگیری.
گامstrideصحیح = 1گام.
حاشیهpadصحیح = 0لایه‌گذاری.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

پیشرو forward

تابع پیشرو(tp &: مشتق‌گیری خودکار.نوار، ps &: مخزن پارامتر، x: صحیح): صحیح
خروجی لایه را روی نوار حساب می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

لایه بیشینه‌گیری MaxPool2D

ساختار لایه بیشینه‌گیری
لایه‌ی بیشینه‌گیری دوبعدی.
نامانگلیسیگونهتوضیح
اندازه پنجرهsizeصحیح = 2اندازه‌ی پنجره.
گامstrideصحیح = 2گام.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

پیشرو forward

تابع پیشرو(tp &: مشتق‌گیری خودکار.نوار، x: صحیح): صحیح
خروجی لایه را روی نوار حساب می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

لایه میانگین‌گیری AvgPool2D

ساختار لایه میانگین‌گیری
لایه‌ی میانگین‌گیری دوبعدی.
نامانگلیسیگونهتوضیح
اندازه پنجرهsizeصحیح = 2اندازه‌ی پنجره.
گامstrideصحیح = 2گام.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

پیشرو forward

تابع پیشرو(tp &: مشتق‌گیری خودکار.نوار، x: صحیح): صحیح
خروجی لایه را روی نوار حساب می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

جاسازی Embedding

ساختار جاسازی
جدول جاسازی: هر شماره‌ی واژه یک بردار.
نامانگلیسیگونهتوضیح
شماره جدولwصحیح = -1شماره‌ی جدول.
اندازه واژگانvocabصحیح = 0اندازه‌ی واژگان.
اندازهdimصحیح = 0اندازه‌ی بردار.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Sequence.salam

پیشرو forward

تابع پیشرو(tp &: مشتق‌گیری خودکار.نوار، ps &: مخزن پارامتر، indices &: وکتور<صحیح>): صحیح
بردارهای شماره‌ها را برمی‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Sequence.salam

نرمال‌سازی لایه LayerNorm

ساختار نرمال‌سازی لایه
نرمال‌سازی لایه.
نامانگلیسیگونهتوضیح
شماره گاماgammaصحیح = -1شماره‌ی گاما.
شماره بتاbetaصحیح = -1شماره‌ی بتا.
اپسیلونepsاعشار۶۴ = 1e-05عدد کوچک پایداری.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

پیشرو forward

تابع پیشرو(tp &: مشتق‌گیری خودکار.نوار، ps &: مخزن پارامتر، x: صحیح): صحیح
خروجی لایه را روی نوار حساب می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

نرمال‌سازی دسته BatchNorm

ساختار نرمال‌سازی دسته
نرمال‌سازی دسته. میانگین‌های جاری‌اش در خود لایه است نه در مخزن، پس نقطه‌ی بازرسی آن‌ها را ذخیره نمی‌کند.
نامانگلیسیگونهتوضیح
شماره گاماgammaصحیح = -1شماره‌ی گاما.
شماره بتاbetaصحیح = -1شماره‌ی بتا.
میانگین جاریrunning_meanتانسور.تانسورمیانگین جاری برای پیش‌بینی.
واریانس جاریrunning_varتانسور.تانسورواریانس جاری.
تکانهmomentumاعشار۶۴ = 0.1ضریب به‌روزرسانی آمار جاری.
اپسیلونepsاعشار۶۴ = 1e-05عدد کوچک پایداری.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

پیشرو forward

تابع پیشرو(tp &: مشتق‌گیری خودکار.نوار، ps &: مخزن پارامتر، x: صحیح): صحیح
خروجی لایه را روی نوار حساب می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

آزادسازی free

تابع آزادسازی()
آمار جاری را آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

نرمال‌سازی گروهی GroupNorm

ساختار نرمال‌سازی گروهی
نرمال‌سازی گروهی.
نامانگلیسیگونهتوضیح
شماره گاماgammaصحیح = -1شماره‌ی گاما.
شماره بتاbetaصحیح = -1شماره‌ی بتا.
گروه‌هاgroupsصحیح = 1شمار گروه‌ها.
اپسیلونepsاعشار۶۴ = 1e-05عدد کوچک پایداری.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

پیشرو forward

تابع پیشرو(tp &: مشتق‌گیری خودکار.نوار، ps &: مخزن پارامتر، x: صحیح): صحیح
خروجی لایه را روی نوار حساب می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

نرمال‌سازی جذر میانگین مربعات RMSNorm

ساختار نرمال‌سازی جذر میانگین مربعات
نرمال‌سازی جذر میانگین مربعات.
نامانگلیسیگونهتوضیح
شماره گاماgammaصحیح = -1شماره‌ی گاما.
اپسیلونepsاعشار۶۴ = 1e-05عدد کوچک پایداری.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

پیشرو forward

تابع پیشرو(tp &: مشتق‌گیری خودکار.نوار، ps &: مخزن پارامتر، x: صحیح): صحیح
خروجی لایه را روی نوار حساب می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

لایه خطی Linear

ساختار لایه خطی
لایه‌ی خطی: xW+b.
نامانگلیسیگونهتوضیح
شماره وزنwصحیح = -1شماره‌ی وزن.
شماره سوگیریbصحیح = -1شماره‌ی سوگیری.
اندازه‌ورودیin_featuresصحیح = 0اندازه‌ی ورودی.
اندازه خروجیout_featuresصحیح = 0اندازه‌ی خروجی.
سوگیری داردhas_biasمنطقی = درستسوگیری دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

پیشرو forward

تابع پیشرو(tp &: مشتق‌گیری خودکار.نوار، ps &: مخزن پارامتر، x: صحیح): صحیح
خروجی لایه را روی نوار حساب می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

حذف تصادفی Dropout

ساختار حذف تصادفی
لایه‌ی حذف تصادفی.
نامانگلیسیگونهتوضیح
احتمال حذفpاعشار۶۴ = 0.1احتمال حذف.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

پیشرو forward

تابع پیشرو(tp &: مشتق‌گیری خودکار.نوار، x: صحیح): صحیح
خروجی لایه را روی نوار حساب می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

تابع‌ها

ذخیره نقطه بازرسی در بافر SaveCheckpointBuf

تابع ذخیره نقطه بازرسی در بافر(ps &: مخزن پارامتر): فشرده سازی.بافر بایت
پارامترها در بافر.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

بارگذاری نقطه بازرسی از بافر LoadCheckpointBuf

تابع بارگذاری نقطه بازرسی از بافر(buf: فشرده سازی.بافر بایت، ps &: مخزن پارامتر): Throws<منطقی>
پارامترها را از بافر بارگذاری می‌کند. اول کل نقطه‌ی بازرسی بررسی می‌شود (CRC، بایت‌های جادویی، نسخه، شمار، نام‌ها و شکل‌ها) و تا همه جور نباشند چیزی نوشته نمی‌شود؛ وگرنه خطایی با کد nn. می‌دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

ذخیره نقطه بازرسی SaveCheckpoint

تابع ذخیره نقطه بازرسی(path: رشته، ps &: مخزن پارامتر): منطقی
همه‌ی پارامترها را در پرونده ذخیره می‌کند؛ اگر مسیر با .gz تمام شود با gzip فشرده می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

بارگذاری نقطه بازرسی LoadCheckpoint

تابع بارگذاری نقطه بازرسی(path: رشته، ps &: مخزن پارامتر): Throws<منطقی>
پارامترها را از پرونده با نام بارگذاری می‌کند. برای پرونده‌ای که نیست یافت نشد و در غیر این صورت خطاهای بارگذاری نقطه بازرسی از بافر را می‌دهد، با نام پرونده در مسیر.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

توجه چندسر جدید NewMultiHeadAttention

تابع توجه چندسر جدید(ps &: مخزن پارامتر، name: رشته، dim: صحیح، heads: صحیح، dropout: اعشار۶۴، g &: تانسور.مولد تصادفی): توجه چندسر
توجه چندسر با اندازه و شمار سرها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Sequence.salam

لایه رمزگذار ترنسفورمر جدید NewTransformerEncoderLayer

تابع لایه رمزگذار ترنسفورمر جدید(ps &: مخزن پارامتر، name: رشته، dim: صحیح، heads: صحیح، ff_dim: صحیح، dropout: اعشار۶۴، g &: تانسور.مولد تصادفی): لایه رمزگذار ترنسفورمر
لایه‌ی رمزگذار.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Sequence.salam

ماسک علّی CausalMask

تابع ماسک علّی(seq: صحیح): تانسور.تانسور
ماسک علّی: منفی بی‌نهایت بالای قطر.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Sequence.salam

لایه رمزگشای ترنسفورمر جدید NewTransformerDecoderLayer

تابع لایه رمزگشای ترنسفورمر جدید(ps &: مخزن پارامتر، name: رشته، dim: صحیح، heads: صحیح، ff_dim: صحیح، dropout: اعشار۶۴، g &: تانسور.مولد تصادفی): لایه رمزگذار ترنسفورمر
لایه‌ی رمزگشا: همان، با توجه علّی برای مدل زبانی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Sequence.salam

پیوند Bind

تابع پیوند(tp &: مشتق‌گیری خودکار.نوار، ps &: مخزن پارامتر، h: صحیح): صحیح
پارامتر را به نوار وصل می‌کند و گره‌اش را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

حافظه کوتاه‌مدت بلند جدید NewLSTM

تابع حافظه کوتاه‌مدت بلند جدید(ps &: مخزن پارامتر، name: رشته، in_f: صحیح، hidden: صحیح، g &: تانسور.مولد تصادفی): حافظه کوتاه‌مدت بلند
LSTM با اندازه‌ی ورودی و حالت.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Sequence.salam

واحد بازگشتی دروازه‌دار جدید NewGRU

تابع واحد بازگشتی دروازه‌دار جدید(ps &: مخزن پارامتر، name: رشته، in_f: صحیح، hidden: صحیح، g &: تانسور.مولد تصادفی): واحد بازگشتی دروازه‌دار
GRU با اندازه‌ی ورودی و حالت.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Sequence.salam

گام آخر LastStep

تابع گام آخر(tp &: مشتق‌گیری خودکار.نوار، out: صحیح، seq: صحیح، batch: صحیح): صحیح
حالت گام آخر هر دنباله؛ برای دسته‌بندی دنباله.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Sequence.salam

لایه پیچشی جدید NewConv2D

تابع لایه پیچشی جدید(ps &: مخزن پارامتر، name: رشته، in_ch: صحیح، out_ch: صحیح، k: صحیح، stride: صحیح، pad: صحیح، g &: تانسور.مولد تصادفی): لایه پیچشی
لایه‌ی پیچش با کانال‌ها، اندازه‌ی هسته، گام و لایه‌گذاری.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

تخت‌سازی Flatten

تابع تخت‌سازی(tp &: مشتق‌گیری خودکار.نوار، x: صحیح): صحیح
همه‌ی ابعاد جز نخست را یکی می‌کند؛ بین پیچش و لایه‌ی خطی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

جاسازی جدید NewEmbedding

تابع جاسازی جدید(ps &: مخزن پارامتر، name: رشته، vocab: صحیح، dim: صحیح، g &: تانسور.مولد تصادفی): جاسازی
جدول جاسازی با واژگان و اندازه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Sequence.salam

موقعیت سینوسی SinusoidalPositions

تابع موقعیت سینوسی(batch: صحیح، seq: صحیح، dim: صحیح): تانسور.تانسور
جاسازی موقعیت سینوسی ترنسفورمر اصلی برای دسته و طول.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Sequence.salam

نرمال‌سازی لایه جدید NewLayerNorm

تابع نرمال‌سازی لایه جدید(ps &: مخزن پارامتر، name: رشته، dim: صحیح): نرمال‌سازی لایه
نرمال‌سازی لایه با اندازه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

نرمال‌سازی دسته جدید NewBatchNorm

تابع نرمال‌سازی دسته جدید(ps &: مخزن پارامتر، name: رشته، channels: صحیح): نرمال‌سازی دسته
نرمال‌سازی دسته با کانال‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

نرمال‌سازی گروهی جدید NewGroupNorm

تابع نرمال‌سازی گروهی جدید(ps &: مخزن پارامتر، name: رشته، channels: صحیح، groups: صحیح): نرمال‌سازی گروهی
نرمال‌سازی گروهی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

نرمال‌سازی جذر میانگین مربعات جدید NewRMSNorm

تابع نرمال‌سازی جذر میانگین مربعات جدید(ps &: مخزن پارامتر، name: رشته، dim: صحیح): نرمال‌سازی جذر میانگین مربعات
نرمال‌سازی جذر میانگین مربعات.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

لایه خطی جدید NewLinear

تابع لایه خطی جدید(ps &: مخزن پارامتر، name: رشته، in_f: صحیح، out_f: صحیح، g &: تانسور.مولد تصادفی): لایه خطی
لایه‌ی خطی با وزن‌های آغازین کایمینگ.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

لایه خطی بی‌بایاس NewLinearNoBias

تابع لایه خطی بی‌بایاس(ps &: مخزن پارامتر، name: رشته، in_f: صحیح، out_f: صحیح، g &: تانسور.مولد تصادفی): لایه خطی
لایه‌ی خطی بی سوگیری.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

ژاویر یکنواخت XavierUniform

تابع ژاویر یکنواخت(t &: تانسور.تانسور، fan_in: صحیح، fan_out: صحیح، g &: تانسور.مولد تصادفی)
مقداردهی ژاویر یکنواخت؛ برای لایه‌های با tanh و سیگموئید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

ژاویر نرمال XavierNormal

تابع ژاویر نرمال(t &: تانسور.تانسور، fan_in: صحیح، fan_out: صحیح، g &: تانسور.مولد تصادفی)
مقداردهی ژاویر نرمال.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

کایمینگ یکنواخت KaimingUniform

تابع کایمینگ یکنواخت(t &: تانسور.تانسور، fan_in: صحیح، g &: تانسور.مولد تصادفی)
مقداردهی کایمینگ یکنواخت؛ برای لایه‌های با یکسوساز.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam

کایمینگ نرمال KaimingNormal

تابع کایمینگ نرمال(t &: تانسور.تانسور، fan_in: صحیح، g &: تانسور.مولد تصادفی)
مقداردهی کایمینگ نرمال.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: ai-nn-Layers.salam