Рэжым Eager у TensorFlow - гэта інтэрфейс праграмавання, які дазваляе неадкладна выконваць аперацыі, палягчаючы адладку і разуменне кода. Аднак ёсць некалькі недахопаў выкарыстання рэжыму Eager у параўнанні са звычайным TensorFlow з адключаным рэжымам Eager. У гэтым адказе мы падрабязна вывучым гэтыя недахопы.
Адным з галоўных недахопаў рэжыму Eager з'яўляецца яго магчымы ўплыў на прадукцыйнасць. Калі рэжым Eager уключаны, TensorFlow не аптымізуе выкананне аперацый так эфектыўна, як у рэжыме графіка. Гэта можа прывесці да больш павольнага часу выканання, асабліва для складаных мадэляў і вялікіх набораў даных. У рэжыме графіка TensorFlow можа ўжываць розныя аптымізацыі, такія як пастаяннае згортванне і зліццё аперацый, што можа значна палепшыць прадукцыйнасць. Адключэнне рэжыму Eager дазваляе TensorFlow у поўнай меры скарыстацца перавагамі гэтых аптымізацый, што прыводзіць да пакарання часу выканання.
Яшчэ адным недахопам рэжыму Eager з'яўляецца яго абмежаваная падтрымка размеркаванага навучання. У сцэнарыях размеркаванага навучання, дзе некалькі прылад або машын выкарыстоўваюцца для навучання мадэлі, рэжым Eager можа не забяспечваць такі ж узровень маштабаванасці і эфектыўнасці, як рэжым графіка. Функцыі размеркаванага навучання TensorFlow, такія як серверы параметраў і паралелізм дадзеных, у асноўным прызначаны для рэжыму графіка. Такім чынам, калі вы працуеце над праектам, які патрабуе размеркаванага навучання, адключэнне рэжыму Eager будзе больш прыдатным выбарам.
Акрамя таго, рэжым Eager можа патрабаваць вялікай колькасці памяці, асабліва пры працы з вялікімі наборамі даных. У рэжыме Eager TensorFlow старанна ацэньвае і захоўвае прамежкавыя вынікі, якія могуць заняць значную колькасць памяці. Гэта можа стаць абмежаваннем, асабліва на прыладах з абмежаваным аб'ёмам памяці. Наадварот, рэжым графіка аптымізуе выкарыстанне памяці, захоўваючы толькі неабходную інфармацыю для графіка вылічэнняў, што прыводзіць да больш эфектыўнага выкарыстання памяці.
Яшчэ адным недахопам рэжыму Eager з'яўляецца адсутнасць падтрымкі некаторых функцый і API TensorFlow. Нягледзячы на тое, што рэжым Eager дасягнуў значнага прагрэсу ў плане сумяшчальнасці з экасістэмай TensorFlow, усё яшчэ ёсць некаторыя функцыі, якія даступныя толькі ў рэжыме графіка. Напрыклад, інструменты прафілявання на аснове графаў TensorFlow і размеркаваны адладчык TensorFlow (tfdbg) не цалкам сумяшчальныя з рэжымам Eager. Калі ваш праект у значнай ступені залежыць ад гэтых функцый, неабходна адключыць рэжым Eager.
Нарэшце, рэжым Eager можа зрабіць аптымізацыю і разгортванне мадэляў TensorFlow больш складанымі для вытворчасці. У вытворчых асяроддзях звычайна аптымізуюць мадэлі для прадукцыйнасці, выкарыстання памяці і эфектыўнасці разгортвання. Адключэнне рэжыму Eager забяспечвае больш простую аптымізацыю мадэлі і працоўныя працэсы разгортвання, паколькі ён выкарыстоўвае поўны набор інструментаў і аптымізацый, даступных у рэжыме графіка.
У той час як рэжым Eager у TensorFlow прапануе імгненнае выкананне і палепшаную чытальнасць кода, ён таксама мае некалькі недахопаў. Сюды ўваходзяць патэнцыйнае пагаршэнне прадукцыйнасці, абмежаваная падтрымка размеркаванага навучання, інтэнсіўныя вылічэнні з аператыўнай памяццю, адсутнасць падтрымкі некаторых функцый TensorFlow і праблемы ў аптымізацыі і разгортванні мадэляў для вытворчасці. Вельмі важна ўважліва ўлічваць гэтыя фактары пры прыняцці рашэння аб выкарыстанні рэжыму Eager або звычайнага TensorFlow з адключаным рэжымам Eager.
Іншыя апошнія пытанні і адказы адносна Поспехі ў машынным навучанні:
- Якія абмежаванні ёсць у працы з вялікімі наборамі даных у машынным навучанні?
- Ці можа машыннае навучанне аказаць некаторую дапамогу ў дыялогу?
- Што такое гульнявая пляцоўка TensorFlow?
- Ці перашкаджае рэжым Eager функцыянальнасці размеркаваных вылічэнняў TensorFlow?
- Ці можна выкарыстоўваць воблачныя рашэнні Google для аддзялення вылічэнняў ад сховішча для больш эфектыўнага навучання мадэлі ML з вялікімі дадзенымі?
- Ці забяспечвае Google Cloud Machine Learning Engine (CMLE) аўтаматычнае атрыманне і канфігурацыю рэсурсаў і апрацоўвае іх адключэнне пасля завяршэння навучання мадэлі?
- Ці можна навучыць мадэлі машыннага навучання на як заўгодна вялікіх наборах даных без збояў?
- Ці патрабуе пры выкарыстанні CMLE стварэнне версіі ўказання крыніцы экспартаванай мадэлі?
- Ці можа CMLE счытваць дадзеныя з воблачнага сховішча Google і выкарыстоўваць для вываду вызначаную падрыхтаваную мадэль?
- Ці можна Tensorflow выкарыстоўваць для навучання і вываду глыбокіх нейронавых сетак (DNN)?
Больш пытанняў і адказаў глядзіце ў раздзеле "Пашырэнне машыннага навучання".