Калі вы чытаеце гэта, вы, несумненна, ужо пачалі свой шлях да глыбокага навучання. Калі вы пачатковец у гэтай тэме, глыбокае навучанне - гэта дапаўненне, якое выкарыстоўвае унікальныя структуры, падобныя на мозг, званыя штучнымі нейронавымі сеткамі, для стварэння чалавекападобных кампутараў, якія вырашаюць праблемы рэальнага свету.
Каб дапамагчы ў распрацоўцы гэтых канструкцый, такія тэхналагічныя гіганты, як Google, Facebook і Uber, распрацавалі мноства фрэймворкаў для асяроддзя глыбокага навучання Python, што палягчае разуменне, стварэнне і навучанне розных нейронавых сетак.
Структура глыбокага навучання - гэта частка праграмнага забеспячэння, якую навукоўцы і спецыялісты па апрацоўцы дадзеных выкарыстоўваюць для стварэння і навучання мадэляў глыбокага навучання.
Мэта гэтых структур - даць людзям магчымасць навучаць сваіх мадэляў без неабходнасці разумення метадаў, якія ляжаць у аснове глыбокае вывучэнне, нейронавыя сеткі і машыннае навучанне.
З дапамогай інтэрфейсу праграмавання высокага ўзроўню гэтыя структуры забяспечваюць будаўнічыя блокі для пабудовы, навучання і праверкі мадэляў.
Мы разгледзім TensorFlow, Keras, Apache MXNet, Microsoft CNTK і DeepLearing4j як альтэрнатывы PyTorch, які шырока выкарыстоўваецца рамка глыбокага навучання.
Што такое Pytorch?
PyTorch гэта бясплатная бібліятэка машыннага навучання з адкрытым зыходным кодам, створаная з дапамогай бібліятэкі Torch Python.
Ён быў створаны групай даследаванняў штучнага інтэлекту Facebook і апублікаваны ў якасці бясплатнай бібліятэкі з адкрытым зыходным кодам у студзені 2016 года з праграмамі для камп'ютэрнага зроку, глыбокага навучання і апрацоўкі натуральнай мовы.
Ён мае імператыўную мову праграмавання Pythonic, які падтрымлівае код у якасці мадэлі, палягчае адладку і сумяшчальны з іншымі папулярнымі навукова-вылічальнымі бібліятэкамі, застаючыся эфектыўным і забяспечваючы апаратныя паскаральнікі, такія як графічныя працэсары.
Папулярнасць PyTorch сярод даследчыкаў паглыбленага навучання ўзрасла дзякуючы засяроджанасці на зручнасці выкарыстання і дбайных меркаваннях прадукцыйнасці.
Ён утрымлівае асноўную структуру даных Tensor, якая ўяўляе сабой шматмерны масіў, падобны на масівы Numpy, які дазваляе праграмістам лёгка распрацоўваць складаны нейронных сеткі.
Ён становіцца ўсё больш папулярным у сучасных сектарах і ў акадэмічным асяроддзі дзякуючы сваёй гнуткасці, хуткасці і прастаце ўкаранення, што робіць яго адным з самых папулярных інструментаў глыбокага навучання.
Асноўныя магчымасці Pytorch
- PyTorch арыентаваны на Python, або «python», у тым сэнсе, што ён прызначаны для глыбокай інтэграцыі з праграмаваннем Python, а не служыць інтэрфейсам для бібліятэкі, распрацаванай на іншай мове.
- Просты ў засваенні - PyTorch прытрымліваецца той жа структуры, што і традыцыйнае праграмаванне, і быў старанна задакументаваны, а супольнасць распрацоўшчыкаў заўсёды спрабуе палепшыць яго. Такім чынам, яго лёгка вывучыць як праграмістам, так і непраграмістам.
- PyTorch можа падзяліць вылічальную працу на некалькі працэсараў або GPU ядра з выкарыстаннем магчымасці паралелізму дадзеных. Хоць падобны паралелізм можа быць дасягнуты з дапамогай іншых метадаў машыннага навучання, PyTorch робіць гэта нашмат прасцей.
- Адладка: для адладкі PyTorch можна выкарыстоўваць адзін са шматлікіх шырока даступных інструментаў адладкі Python (напрыклад, інструменты pdb і ipdb Python).
- PyTorch падтрымлівае дынамічныя вылічальныя графікі, што азначае, што паводзіны сеткі можна дынамічна змяняць падчас выканання.
- PyTorch пастаўляецца з рознымі спецыяльна створанымі модулямі, напрыклад torchtext, torchvision і torchaudio, які можна выкарыстоўваць для працы з рознымі галінамі глыбокага навучання, такімі як НЛП, камп'ютэрны зрок і апрацоўка голасу.
Абмежаванні Pytorch
- Абмежаваныя інтэрфейсы маніторынгу і візуалізацыі: у той час як TensorFlow уключае магутны інструмент візуалізацыі для стварэння графіка мадэлі (TensorBoard), у PyTorch цяпер адсутнічае гэтая функцыя. У выніку распрацоўшчыкі могуць падключацца да TensorBoard звонку або выкарыстоўваць адзін з мноства існуючых Python сродкі візуалізацыі дадзеных.
- PyTorch не з'яўляецца канчатковым навучанне з дапамогай машыны платформа распрацоўкі; ён разгортвае прыкладанні на серверах, працоўных станцыях і мабільных прыладах.
Па ўсіх гэтых прычынах пошук найлепшых альтэрнатыў Pytorch быў бы мудрым рашэннем.
Самыя папулярныя альтэрнатывы Pytorch
Вось спіс лепшых альтэрнатыў Pytorch.
1. Tensorflow
TensorFlow гэта фрэймворк з адкрытым зыходным кодам, арыентаваны на глыбокае навучанне, створаны Google. Ён таксама падтрымлівае стандарт навучанне з дапамогай машыны. TensorFlow быў распрацаваны з улікам вялікіх лікавых вылічэнняў, а не глыбокага навучання.
Акрамя таго, гэта аказалася вельмі каштоўным для развіцця глыбокага навучання, таму Google зрабіў яго даступным бясплатна. TensorFlow прымае даныя ў выглядзе шматмерных масіваў большага памеру, вядомых як тэнзары. Пры працы з велізарнымі аб'ёмамі даных карысныя шматмерныя масівы.
TensorFlow заснаваны на графах патоку даных па краях вузла. Паколькі метад выканання мае форму графікаў, значна прасцей выканаць код TensorFlow на кластары кампутараў пры выкарыстанні графічных працэсараў.
C#, Haskell, Julia, R, Ruby, Rust і Scala адносяцца да моў, для якіх супольнасць TensorFlow стварыла падтрымку. TensorFlow прапануе вялікую колькасць кропак доступу.
Акрамя моў, TensorFlow мае шырокі спектр інструментаў, якія звязаны з ім або створаны на яго аснове.
перавагі
- Гэта зручна. Калі вы знаёмыя з Python, асвоіць яго будзе проста.
- Падтрымка з боку супольнасці. TensorFlow практычна кожны дзень удасканальваецца Google і экспертамі-распрацоўшчыкамі іншых арганізацый.
- TensorFlow Lite можна выкарыстоўваць для выканання мадэляў TensorFlow на мабільных прыладах.
- Tensorboard - гэта інструмент для маніторынгу і візуалізацыя дадзеных. Калі вы хочаце назіраць за сваімі мадэлямі глыбокага навучання ў дзеянні, гэта выдатны інструмент для выкарыстання.
- Tensorflow.js дазваляе выкарыстоўваць JavaScript для запуску мадэляў глыбокага навучання ў рэальным часе ў браўзеры.
недахопы
- TensorFlow мае унікальную структуру, што ўскладняе выяўленне і адладку памылак.
- Няма падтрымкі OpenCL.
- TensorFlow не дае шмат магчымасцей для карыстальнікаў аперацыйнай сістэмы Windows. Гэта адкрывае мноства магчымасцей для карыстальнікаў Linux. Аднак карыстальнікі Windows па-ранейшаму могуць спампоўваць TensorFlow з дапамогай падказкі anaconda або пакета pip.
- TensorFlow адстае з пункту гледжання прапановы сімвалічных цыклаў для нявызначаных паслядоўнасцей. Ён мае спецыяльнае прымяненне для пэўных паслядоўнасцей, што робіць яго карыснай сістэмай. У выніку яго называюць API нізкага ўзроўню.
2. Керас
Керас гэта бібліятэка глыбокага навучання на аснове Python, што адрознівае яе ад іншых фрэймворкаў глыбокага навучання.
Гэта мова праграмавання высокага ўзроўню, якая вызначае a нейронных сеткі Вызначэнне API. Яго можна выкарыстоўваць як у якасці карыстальніцкага інтэрфейсу, так і для паляпшэння магчымасцей фрэймворкаў глыбокага навучання, на якіх ён працуе.
Гэта мінімалістычны фрэймворк, лёгкі і просты ў выкарыстанні. Па гэтых прычынах Keras з'яўляецца часткай асноўнага API TensorFlow. Пярэдні канец Keras дазваляе хутка ствараць прататыпы мадэляў нейронных сетак у даследаваннях.
API просты для разумення і выкарыстання з дадатковым бонусам, які дазваляе лёгка пераносіць мадэлі паміж фрэймворкамі.
перавагі
- Keras API просты ў выкарыстанні. API добра распрацаваны, аб'ектна-арыентаваны і адаптаваны, што забяспечвае больш прыемны карыстацкі досвед.
- Убудаваная падтрымка размеркаванага навучання і паралелізму з некалькімі GPU.
- Keras - гэта ўласны модуль Python, які забяспечвае просты доступ да поўнага асяроддзя навукі аб дадзеных Python. Мадэлі Keras, напрыклад, можна выкарыстоўваць з дапамогай Python scikit-learn API.
- Keras ўключае папярэдне падрыхтаваныя гіры для некалькіх мадэляў глыбокага навучання. Мы можам выкарыстоўваць гэтыя мадэлі непасрэдна для прагназавання або вылучэння функцый.
недахопы
- Рэгулярныя праблемы з бэкэндам нізкага ўзроўню могуць быць неверагодна раздражняльнымі. Гэтыя праблемы ўзнікаюць, калі мы спрабуем выканаць задачы, якія Keras не павінен быў выконваць.
- Калі параўноўваць яго з бэкэндамі, ён можа працаваць павольна на графічных працэсарах і займаць больш часу для вылічэнняў. У выніку нам, магчыма, прыйдзецца пайсці на кампраміс з хуткасцю дзеля зручнасці карыстання.
- У параўнанні з іншымі пакетамі, такімі як sci-kit-learn, магчымасці папярэдняй апрацоўкі дадзеных Keras не такія прывабныя.
3. Apache MX Net
Яшчэ адзін выбітны Фрэймворк глыбокага навучання гэта MXNet. MXNet, які быў створаны Apache Software Foundation, падтрымлівае мноства моў, уключаючы JavaScript, Python і C++.
Amazon Web Services таксама падтрымлівае MXNet у распрацоўцы мадэляў глыбокага навучання. Ён надзвычай маштабуецца, што дазваляе хутка навучыць мадэль, і ён сумяшчальны з мноствам камп'ютэрных моў.
Для аптымізацыі хуткасці і прадукцыйнасці MXNet дазваляе спалучаць сімвалічныя і імператыўныя мовы праграмавання. Ён заснаваны на дынамічным планавальніку залежнасцей, які паралелізуе сімвалічныя і імператыўныя дзеянні ў рэжыме рэальнага часу.
У дадатак да ўсяго, узровень аптымізацыі графа робіць сімвалічнае выкананне хуткім і эканоміяй памяці. MXNet - партатыўная і лёгкая бібліятэка.
Ён працуе на базе графічных працэсараў NVIDIA PascalTM і можа маштабавацца на некалькіх графічных працэсарах і вузлах, што дазваляе вам хутчэй навучаць мадэлі.
перавагі
- Падтрымлівае GPU і мае рэжым некалькіх GPU.
- Эфектыўны, маштабуецца і вокамгненна.
- Усе асноўныя платформы на борце.
- Абслугоўванне мадэлі простае, а API хуткі.
- Сярод падтрымоўваных моў праграмавання - Scala, R, Python, C++ і JavaScript.
недахопы
- MXNet мае меншы з адкрытым зыходным кодам супольнасці, чым TensorFlow.
- Паляпшэнні, выпраўленні памылак і іншыя паляпшэнні займаюць больш часу з-за адсутнасці значнай падтрымкі супольнасці.
- Нягледзячы на тое, што MxNet шырока выкарыстоўваецца шматлікімі фірмамі ў ІТ-індустрыі, ён не так вядомы, як Tensorflow.
4. Microsoft CNTK
Microsoft Cognitive Toolkit (CNTK) гэта камерцыйна жыццяздольная структура з адкрытым зыходным кодам для размеркаванага глыбокага навучання. Як правіла, ён выкарыстоўваецца для стварэння нейронавыя сеткі, але таксама можа выкарыстоўвацца для машыннага навучання і кагнітыўных вылічэнняў.
Ён падтрымлівае мноства моў і просты ў выкарыстанні ў воблаку. Дзякуючы гэтым якасцям, CNTK падыходзіць для розных прыкладанняў штучнага інтэлекту. Хаця мы можам выкарыстоўваць C++ для выкліку яго функцый, найбольш частым варыянтам з'яўляецца выкарыстанне праграмы Python.
Калі Microsoft Cognitive Toolkit працуе на некалькіх камп'ютарах, ён забяспечвае лепшую прадукцыйнасць і маштабаванасць, чым такія наборы інструментаў, як Theano або TensorFlow.
Microsoft Cognitive Toolkit падтрымлівае нейронавыя мадэлі RNN і CNN, што робіць яго прыдатным для задач распазнавання малюнкаў, рукапіснага ўводу і гаворкі.
перавагі
- Простая інтэграцыя з Apache Spark, сістэмай аналізу даных.
- Маштабаванасць CNTK зрабіла яго папулярным выбарам у многіх прадпрыемствах. Ёсць некалькі аптымізаваных кампанентаў.
- Прапануе стабільную і добрую прадукцыйнасць.
- Выдатна працуе з Azure Cloud, абодва з якіх падтрымліваюцца Microsoft.
- Эфектыўнае выкарыстанне і кіраванне рэсурсамі.
недахопы
- У параўнанні з Tensorflow, падтрымка супольнасці меншая.
- Крутая крывая навучання.
- У ім адсутнічае плата візуалізацыі, а таксама падтрымка ARM.
5. DeepLearning4j
Калі Java з'яўляецца вашай асноўнай мовай праграмавання, DeepLearning4j - добрая структура для выкарыстання. Гэта размеркаваная бібліятэка глыбокага навучання камерцыйнага ўзроўню з адкрытым зыходным кодам.
Падтрымліваюцца ўсе асноўныя тыпы нейронавых сетак, такія як RNN і CNN. Deeplearning4j - гэта бібліятэка Java і Scala для глыбокага навучання.
Ён таксама добра працуе з Hadoop і Apache Spark. Deeplearning4j з'яўляецца цудоўнай альтэрнатывай для рашэнняў глыбокага навучання на аснове Java, таму што ён таксама падтрымлівае GPU.
Калі справа даходзіць да структуры глыбокага навучання Eclipse Deeplearning4j, некаторыя выдатныя функцыі ўключаюць у сябе паралельнае навучанне праз ітэрацыйныя скарачэнні, адаптацыю архітэктуры мікрасэрвісаў і размеркаваныя працэсары і графічныя працэсары.
перавагі
- Ён мае выдатную дакументацыю і дапамогу супольнасці.
- Інтэграцыя Apache Spark простая.
- Ён маштабуецца і здольны апрацоўваць велізарныя аб'ёмы даных.
недахопы
- У параўнанні з Tensorflow і PyTorch ён менш папулярны.
- Java - адзіная даступная мова праграмавання.
заключэнне
Выбар лепшай структуры глыбокага навучання - складаная задача. Больш за тое, паколькі іх вельмі шмат, спіс расце па меры попыту штучны інтэлект даследчых і машыннага навучання прыкладанняў расце. Кожны фрэймворк мае свой набор плюсаў і недахопаў.
Варта прыняць да ўвагі некалькі меркаванняў, у тым ліку бяспеку, маштабаванасць і прадукцыйнасць. У сістэмах карпаратыўнага ўзроўню надзейнасць становіцца яшчэ больш важнай.
Калі вы толькі пачынаеце, Tensorflow - добрае месца для пачатку. Выберыце CNTK, калі вы распрацоўваеце камерцыйны прадукт на базе Windows. Калі вы аддаеце перавагу Java, выкарыстоўвайце DL4J.
Пакінуць каментар