ПиТорцх обезбеђује модул торцх.нн који нам помаже у креирању и обуци неуронске мреже. Прво ћемо обучити основну неуронску мрежу на МНИСТ скупу података без употребе било каквих карактеристика из ових модела. Користићемо само основну функционалност ПиТорцх тензора, а затим ћемо постепено додавати једну по једну функцију из торцх.нн.
торцх.нн нам пружа много више класа и модула за имплементацију и обуку неуронске мреже.
нн пакет садржи следеће модуле и класе:
Да не | Класа и модул | Опис |
---|---|---|
1. | торцх.нн.Параметер | То је тип тензора који се сматра параметром модула. |
2. | Контејнери | |
1) бакља.нн.Модул | То је основна класа за све модуле неуронске мреже. | |
2) бакља.нн.Секвенцијална | То је секвенцијални контејнер у који ће се модули додати истим редоследом којим се прослеђују у конструктору. | |
3) торцх.нн.МодулеЛист | Ово ће задржати подмодуле на листи. | |
4) торцх.нн.МодулеДицт | Ово ће задржати подмодуле у директоријуму. | |
5) торцх.нн.ПараметерЛист | Ово ће задржати параметре на листи. | |
6) торцх.нн.параметерДицт | Ово ће задржати параметре у директоријуму. | |
3. | Конволуцијски слојеви | |
1) торцх.нн.Цонв1д | Овај пакет ће се користити за примену 1Д конволуције преко улазног сигнала састављеног од неколико улазних равни. | |
2) торцх.нн.Цонв2д | Овај пакет ће се користити за примену 2Д конволуције преко улазног сигнала састављеног од неколико улазних равни. | |
3) торцх.нн.Цонв3д | Овај пакет ће се користити за примену 3Д конволуције преко улазног сигнала састављеног од неколико улазних равни. | |
4) торцх.нн.ЦонвТранспосе1д | Овај пакет ће се користити за примену 1Д транспонованог конволуционог оператора на улазну слику састављену од неколико улазних равни. | |
5) торцх.нн.ЦонвТранспосе2д | Овај пакет ће се користити за примену 2Д транспонованог оператора конволуције на улазну слику састављену од неколико улазних равни. | |
6) торцх.нн.ЦонвТранспосе3д | Овај пакет ће се користити за примену 3Д транспонованог оператора конволуције на улазну слику састављену од неколико улазних равни. | |
7) бакља.нн.Разклопити | Користи се за издвајање клизних локалних блокова из скупног улазног тензора. | |
8) торцх.нн.Фолд | Користи се за комбиновање низа клизних локалних блокова у велики тензор који садржи. | |
4. | Обједињавање слојева | |
1) торцх.нн.МакПоол1д | Користи се за примену 1Д мак удруживања преко улазног сигнала састављеног од неколико улазних равни. | |
2) торцх.нн.МакПоол2д | Користи се за примену 2Д мак удруживања преко улазног сигнала састављеног од неколико улазних равни. | |
3) торцх.нн.МакПоол3д | Користи се за примену 3Д мак удруживања преко улазног сигнала састављеног од неколико улазних равни. | |
4) торцх.нн.МакУнпоол1д | Користи се за израчунавање делимичног инверзног од МакПоол1д. | |
5) торцх.нн.МакУнпоол2д | Користи се за израчунавање делимичног инверзног од МакПоол2д. | |
6) торцх.нн.МакУнпоол3д | Користи се за израчунавање делимичног инверзног од МакПоол3д. | |
7) торцх.нн.АвгПоол1д | Користи се за примену 1Д просечног удруживања преко улазног сигнала састављеног од неколико улазних равни. | |
8) торцх.нн.АвгПоол2д | Користи се за примену 2Д просечног удруживања преко улазног сигнала састављеног од неколико улазних равни. | |
9) торцх.нн.АвгПоол3д | Користи се за примену 3Д просечног удруживања преко улазног сигнала састављеног од неколико улазних равни. | |
10) торцх.нн.ФрацтионалМакПоол2д | Користи се за примену 2Д фракционог максималног удруживања преко улазног сигнала састављеног од неколико улазних равни. | |
11) торцх.нн.ЛППоол1д | Користи се за примену 1Д удруживања просечне снаге преко улазног сигнала састављеног од неколико улазних равни. | |
12) торцх.нн.ЛППоол2д | Користи се за примену 2Д удруживања просечне снаге преко улазног сигнала састављеног од неколико улазних равни. | |
13) торцх.нн.АдавтивеМакПоол1д | Користи се за примену 1Д адаптивног максималног удруживања преко улазног сигнала састављеног од неколико улазних равни. | |
14) торцх.нн.АдавтивеМакПоол2д | Користи се за примену 2Д адаптивног максималног удруживања преко улазног сигнала састављеног од неколико улазних равни. | |
15) торцх.нн.АдавтивеМакПоол3д | Користи се за примену 3Д адаптивног максималног удруживања преко улазног сигнала састављеног од неколико улазних равни. | |
16) торцх.нн.АдавтивеАвгПоол1д | Користи се за примену 1Д адаптивног просечног удруживања преко улазног сигнала састављеног од неколико улазних равни. | |
17) торцх.нн.АдавтивеАвгПоол2д | Користи се за примену 2Д адаптивног просечног удруживања преко улазног сигнала састављеног од неколико улазних равни. | |
18) торцх.нн.АдавтивеАвгПоол3д | Користи се за примену 3Д адаптивног просечног удруживања преко улазног сигнала састављеног од неколико улазних равни. | |
5. | Паддинг лаиерс | |
1) торцх.нн.РефлецтионПад1д | Запуниће улазни тензор користећи рефлексију границе улаза. | |
2) торцх.нн.РефлацтионПад2д | Запуниће улазни тензор користећи рефлексију границе улаза. | |
3) торцх.нн.РеплицатионПад1 | Запуниће улазни тензор користећи репликацију границе улаза. | |
4) торцх.нн.РеплицатионПад2д | Запуниће улазни тензор користећи репликацију границе улаза. | |
5) торцх.нн.РеплицатионПад3д | Запуниће улазни тензор користећи репликацију границе улаза. | |
6) торцх.нн.ЗероПад2д | Попуниће границе улазног тензора нулом. | |
7) торцх.нн.ЦонстантПад1д | Попуниће границе улазног тензора константном вредношћу. | |
8) торцх.нн.ЦонстантПад2д | Попуниће границе улазног тензора константном вредношћу. | |
9) торцх.нн.ЦонстантПад3д | Попуниће границе улазног тензора константном вредношћу. | |
6. | Нелинеарне активације (пондерисана сума, нелинеарност) | |
1) торцх.нн.ЕЛУ | Користиће се за примену функције по елементима: ЕЛУ(к)=мак(0,к)+мин(0,α*(екп(к)-1)) | |
2) торцх.нн.Хардсхринк | Користиће се за примену функције чврстог скупљања по елементима: | |
3) торцх.нн.ЛеакиРеЛУ | Користиће се за примену функције по елементима: ЛеакиРеЛу(к)=мак(0,к) +негативан_нагиб*мин(0,к) | |
4) торцх.нн.ЛогСигмоид | Користиће се за примену функције по елементима: | |
5) торцх.нн.МултихеадАттентион | Користи се да омогући моделу да прати информације из различитих подпростора репрезентације | |
6) бакља.нн.ПРеЛУ | Користиће се за примену функције по елементима: ПРЕЛУ(к)=мак(0,к)+а*мин(0,к) | |
7) торцх.нн.РеЛУ | Користиће се за примену функције исправљене линеарне јединице по елементима: РеЛУ(к)=мак(0,к) | |
8) торцх.нн.РеЛУ6 | Користиће се за примену функције по елементима: РеЛУ6(к)=мин(мак(0,к),6) | |
9) бакља.нн.РРеЛУ | Користиће се за примену насумичне функције исправљене линеарне јединице која цури, по елементима, као што је описано у раду: | |
10) бакља.нн.СЕЛУ | Користиће се за примену функције по елементима као: СЕЛУ(к)=размера*(макс(0,к)+ мин(0,а*(екп(к)-1))) Овде је α= 1,6732632423543772848170429916717 и размера = 1,0507009873554804934193349852946. | |
11) бакља.нн.МЕТА | Користиће се за примену функције по елементима као: | |
12) бакља.нн.Сигмоид | Користиће се за примену функције по елементима као: | |
13) торцх.нн.Софтплус | Користиће се за примену функције по елементима као: | |
14) торцх.нн.Софтсхринк | Користиће се за примену функције меког скупљања елементарно као: | |
15) торцх.нн.Софтсигн | Користиће се за примену функције по елементима као: | |
16) бакља.нн.Танх | Користиће се за примену функције по елементима као: | |
17) торцх.нн.Танхсхринк | Користиће се за примену функције по елементима као: Танхсхринк(к)=к-Танх(к) | |
18) бакља.нн.Праг | Користиће се за прагове сваког елемента улазног тензора. Праг је дефинисан као: | |
7. | Нелинеарне активације (остало) | |
1) торцх.нн.Софтмин | Користи се за примену функције софтмин на н-димензионални улазни тензор за њихово поновно скалирање. Након тога, елементи н-димензионалног тензора излаза се налазе у опсегу 0, 1 и збир до 1. Софтмин је дефинисан као: | |
2) торцх.нн.Софтмак | Користи се за примену софтмак функције на н-димензионални улазни тензор за њихово поновно скалирање. Након тога, елементи н-димензионалног тензора излаза налазе се у опсегу 0, 1 и збир до 1. Софтмак је дефинисан као: | |
3) торцх.нн.Софтмак2д | Користи се за примену СофтМак-а преко карактеристика на сваку просторну локацију. | |
4) торцх.нн.ЛогСофтмак | Користи се за примену ЛогСофтмак функције на н-димензионални улазни тензор. ЛофСофтмак функција се може дефинисати као: | |
5) торцх.нн.АдаптивеЛогСофтмакВитхЛосс | То је стратегија за обуку модела са великим излазним простором. Веома је ефикасан када је дистрибуција етикета веома неуравнотежена | |
8. | Нормализациони слојеви | |
1) торцх.нн.БатцхНорм1д | Користи се за примену групне нормализације преко 2Д или 3Д улаза. | |
2) торцх.нн.БатцхНорм2д | Користи се за примену групне нормализације преко 4Д. | |
3) торцх.нн.БатцхНорм3д | Користи се за примену групне нормализације преко 5Д улаза. | |
4) торцх.нн.ГроупНорм | Користи се за примену групне нормализације преко мини групе улаза. | |
5) торцх.нн.СинцБатцхНорм | Користи се за примену групне нормализације преко н-димензионалних улаза. | |
6) торцх.нн.ИнстанцеНорм1д | Користи се за примену нормализације инстанце на 3Д улаз. | |
7) торцх.нн.ИнстанцеНорм2д | Користи се за примену нормализације инстанце преко 4Д улаза. | |
8) торцх.нн.ИнстанцеНорм3д | Користи се за примену нормализације инстанце преко 5Д улаза. | |
9) торцх.нн.ЛаиерНорм | Користи се за примену нормализације слоја преко мини-серије улаза. | |
10) торцх.нн.ЛоцалРеспонсеНорм | Користи се за примену локалне нормализације одзива на улазни сигнал који се састоји од неколико улазних равни, где канал заузима другу димензију. | |
9. | Понављајући слојеви | |
1) бакља.нн.РНН | Користи се за примену вишеслојног Елман РНН-а са танх или РеЛУ нелинеарношћу на улазну секвенцу. Сваки слој израчунава следећу функцију за сваки елемент у улазној секвенци: хт=танх(ВњихИкст+бњих+ВХХтт-1+бХХ) | |
2) бакља.нн.ЛСТМ | Користи се за примену вишеслојне дуготрајне краткорочне меморије (ЛСТМ) РНН на улазну секвенцу. Сваки слој израчунава следећу функцију за сваки елемент у улазној секвенци: | |
3) бакља.нн.ГРУ | Користи се за примену РНН вишеслојне рекурентне јединице (ГРУ) на улазну секвенцу. Сваки слој израчунава следећу функцију за сваки елемент у улазној секвенци: | |
4) бакља.нн.РННЦелл | Користи се за примену Елман РНН ћелије са танх или РеЛУ нелинеарношћу на улазну секвенцу. Сваки слој израчунава следећу функцију за сваки елемент у улазној секвенци: х'=танх(Вњихк+бњих+ВХХх+бХХ) РеЛУ се користи уместо танх | |
5) торцх.нн.ЛСТМЦелл | Користи се за примену ћелије дуготрајне краткорочне меморије (ЛСТМ) на улазну секвенцу. Сваки слој израчунава следећу функцију за сваки елемент у улазној секвенци: Где је σ сигмоидна функција, а * Адамаров производ. | |
6) бакља.нн.ГРУЦелл | Користи се за примену ћелије рекурентне јединице (ГРУ) на улазну секвенцу. Сваки слој израчунава следећу функцију за сваки елемент у улазној секвенци: | |
10. | Линеарни слојеви | |
1) бакља.нн.Идентитет | То је оператор идентитета чувара места који је неосетљив на аргументе. | |
2) бакља.нн.Линеарна | Користи се за примену линеарне трансформације на долазне податке: и=кАТ+б | |
3) бакља.нн.Билинеарна | Користи се за примену билинеарне трансформације на долазне податке: и=к1Ак2+б | |
Једанаест. | Отпадни слојеви | |
1) бакља.нн.Отпадање | Користи се за регуларизацију и превенцију ко-адаптације неурона. Фактор од током тренинга скалира излаз. То значи да модул израчунава функцију идентитета током евалуације. | |
2) торцх.нн.Дропоут2д | Ако су суседни пиксели унутар мапа обележја у корелацији, онда торцх.нн.Дропоут неће регулисати активације и смањиће ефективну стопу учења. У овом случају, торцх.нн.Дропоут2д() се користи за промовисање независности између мапа обележја. | |
3) торцх.нн.Дропоут3д | Ако су суседни пиксели унутар мапа обележја у корелацији, онда торцх.нн.Дропоут неће регулисати активације и смањиће ефективну стопу учења. У овом случају, торцх.нн.Дропоут2д () се користи за промовисање независности између мапа обележја. | |
4) торцх.нн.АлпхаДропоут | Користи се за примену Алпха Дропоут-а преко улаза. Алпха Дропоут је врста напуштања која одржава својство самонормализације. | |
12. | Ретки слојеви | |
1) бакља.нн.Уградња | Користи се за чување уграђивања речи и њихово преузимање помоћу индекса. Улаз за модул је листа индекса, а излаз је одговарајуће уграђивање речи. | |
2) торцх.нн.ЕмбеддингБаг | Користи се за израчунавање збира или средње вредности 'врећица' уграђивања без инстанцирања средњег уграђивања. | |
13. | Функција удаљености | |
1) торцх.нн.ЦосинеСимиларити | Вратиће косинусну сличност између к1 и к2, израчунату дуж дим. | |
2) торцх.нн.ПаирвисеДистанце | Он израчунава групно растојање у пару између вектора в1, в2 користећи п-норму: | |
14. | Функција губитка | |
1) бакља.нн.Л1Губитак | Користи се за критеријум који мери средњу апсолутну грешку између сваког елемента у улазу к и циљног и. Несмањени губитак се може описати као: л(к,и)=Л={л1,...,лн},лн=|кн-ин|, Где је Н величина серије. | |
2) торцх.нн.МСЕЛосс | Користи се за критеријум који мери средњу квадратну грешку између сваког елемента у улазу к и циља и. Несмањени губитак се може описати као: л(к,и)=Л={л1,...,лн},лн=(кн-ин)2, Где је Н величина серије. | |
3) торцх.нн.ЦроссЕнтропиЛосс | Овај критеријум комбинује нн.ЛогСофтмак() и нн.НЛЛЛосс() у једној класи. Корисно је када обучавамо класификациони проблем са Ц класама. | |
4) торцх.нн.ЦТЦЛосс | Губитак временске класификације конекциониста израчунава губитак између непрекидне временске серије и циљне секвенце. | |
5) торцх.нн.НЛЛЛосс | Губитак негативне лог-вероватности се користи за обуку класификационог проблема са Ц класама. | |
6) торцх.нн.ПоиссонНЛЛЛосс | Негативни губитак лог-вероватноће са Поиссоновом дистрибуцијом т таргет~Поиссон(инпут)губитак(инпут,таргет)=инпут-таргет*лог(таргет!)он циљ. | |
7) торцх.нн.КЛДивЛосс | То је корисна мера удаљености за континуирану дистрибуцију, а такође је корисна када вршимо директну регресију преко простора континуиране дистрибуције излаза. | |
8) бакља.нн.БЦЕЛос | Користи се за креирање критеријума који мери бинарну унакрсну ентропију између циља и излаза. Несмањени губитак се може описати као: л(к,и)=Л={л1,...,лн},лн=-вн[ин*логкн+ (1-гн)*лог(1-кн)], Где је Н величина серије. | |
9) торцх.нн.БЦЕВитхЛогитсЛосс | Комбинује сигмоидни слој и БЦЕЛосс у једној класи. Можемо искористити трик лог-сума-екп за нумеричку стабилност комбиновањем операције у један слој. | |
10) торцх.нн.МаргинРанкингЛосс | Он ствара критеријум који мери губитак датих улаза к1, к2, два 1Д мини-серијске тензора и ознаку 1Д мини-серијске тензор и који садрже 1 или -1. Функција губитка за сваки узорак у мини-серији је следећа: губитак(к,и)=мак(0,-и*(к1-Икс2)+маргина | |
11) торцх.нн.ХингеЕмбеддингЛосс | ХингеЕмбеддингЛосс мери губитак датог улазног тензора к и тензора ознака и који садрже 1 или -1. Користи се за мерење да ли су два улаза слична или различита. Функција губитка је дефинисана као: | |
12) торцх.нн.МултиЛабелМаргинЛосс | Користи се за креирање критеријума који оптимизује губитак шарке за више класа за више класа између улаза к и излаза и. | |
13) торцх.нн.СмоотхЛ1Лосс | Користи се за креирање критеријума који користи термин на квадрат ако апсолутна грешка у погледу елемената падне испод 1 и Л1 термин у супротном. Такође је познат као Хуберов губитак: | |
14) торцх.нн.СофтМаргинЛосс | Користи се за креирање критеријума који оптимизује логистички губитак двокласне класификације између улазног тензора к и циљног тензора и који садрже 1 или -1. | |
15) торцх.нн.МултиЛабелСофтМаргинЛосс | Користи се за креирање критеријума који оптимизује губитак са више ознака један наспрам свих на основу максималне ентропије између улаза к и циља и величине (Н, Ц). | |
16) торцх.нн.ЦосинеЕмбеддингЛосс | Користи се за креирање критеријума који мери губитак датих улазних тензора к1, к2 и тензорске ознаке и са вредностима 1 или -1. Користи се за мерење да ли су два улаза слична или различита, користећи косинусну удаљеност. | |
17) торцх.нн.МултиМаргинЛосс | Користи се за креирање критеријума који оптимизује губитак шарке у више класа класификације између улаза к и излаза и. | |
18) торцх.нн.ТриплетМаргинЛосс | Користи се за креирање критеријума који мери троструки губитак датих улазних тензора к1, к2, к3 и маргине са вредношћу већом од 0. Користи се за мерење релативне сличности између узорака. Тројка се састоји од сидра, позитивног примера и негативног примера. Л(а,п,н)=мак{д(аи,пи)-д(аи,ни)+маргина,0} | |
петнаест. | Слојеви вида | |
1) торцх.нн.ПикелСхуффле | Користи се за преуређивање елемената у тензор облика (*,Ц×р2,Х,В) на тензор облика (*,Ц,Х×р,В,р) | |
2) торцх.нн.Упсампле | Користи се за повећање узорковања датих вишеканалних 1Д, 2Д или 3Д података. | |
3) торцх.нн.упсамплингНеарест2д | Користи се за примену 2Д повећања узорковања најближег суседа на улазни сигнал који се састоји од вишеструких улазних канала. | |
4) торцх.нн.УпсамплингБилинеар2д | Користи се за примену 2Д билинеарног повећања узорковања на улазни сигнал који је састављен са вишеструким улазним каналом. | |
16. | Паралелни слојеви података (мулти-ГПУ, дистрибуирани) | |
1) торцх.нн.ДатаПараллел | Користи се за имплементацију паралелизма података на нивоу модула. | |
2) торцх.нн.ДистрибутедДатаПараллел | Користи се за имплементацију паралелизма дистрибуираних података, који се заснива на пакету торцх.дистрибутед на нивоу модула. | |
3) торцх.нн.ДистрибутедДатаПараллелЦПУ | Користи се за имплементацију паралелизма дистрибуираних података за ЦПУ на нивоу модула. | |
17. | Комуналне услуге | |
1) торцх.нн.цлип_град_норм_ | Користи се за исецање норме градијента итеративног броја параметара. | |
2) торцх.нн.цлип_град_валуе_ | Користи се за исецање норме градијента итеративног броја параметара на специфицираној вредности. | |
3) торцх.нн.параметерс_то_вецтор | Користи се за претварање параметара у један вектор. | |
4) торцх.нн.вецтор_то_параметерс | Користи се за претварање једног вектора у параметре. | |
5) торцх.нн.веигхт_норм | Користи се за примену нормализације тежине на параметар у датом модулу. | |
6) торцх.нн.ремове_веигхт_норм | Користи се за уклањање нормализације тежине и поновне параметризације из модула. | |
7) торцх.нн.спецтрал_норм | Користи се за примену спектралне нормализације на параметар у датом модулу. | |
8) торцх.нн.ПацкедСекуенце | Користиће се за чување података и листе батцх_сизе упакованог низа. | |
9) торцх.нн.пацк_паддед_секуенце | Користи се за паковање Тензора који садржи подстављене секвенце променљиве дужине. | |
10) торцх.нн.пад_пацкед_секуенце | Користи се за попуњавање упаковане серије секвенци променљиве дужине. | |
11) торцх.нн.пад_секуенце | Користи се за попуњавање листе тензора променљиве дужине са вредношћу допуне. | |
12) торцх.нн.пацк_секуенце | Користи се за паковање листе тензора променљиве дужине | |
13) торцх.нн.ремове_спецтрал_норм | Користи се за уклањање спектралне нормализације и поновне параметризације из модула. |
Референца:
хттпс://питорцх.орг/доцс/стабле/нн.хтмл