NUSTATYTI: Jūsų procesorius palaiko instrukcijas, kad šis „TensorFlow“ dvejetainis failas nebuvo sukompiliuotas naudoti AVX2

„Advanced Vector Extensions“ ( AVX , taip pat žinomas kaip „ Sandy Bridge New Extensions“ ) yra „x86“ instrukcijų rinkinio architektūros plėtiniai, skirti „Intel“ ir „AMD“ mikroprocesoriams, kuriuos „Intel“ pasiūlė 2008 m. Kovo mėn. AMD, naudodamas „Bulldozer“ procesorių, pristatytą 2011 m. trečiąjį ketvirtį. AVX pateikia naujas funkcijas, naujas instrukcijas ir naują kodavimo schemą.

Šį įspėjimo pranešimą išspausdina bendroji „TensorFlow“ biblioteka. Kaip rodo pranešimas, bendrinamoje bibliotekoje nėra nurodymų, kuriuos galėtų naudoti jūsų procesorius.

Kas sukelia šį įspėjimą?

Po „TensorFlow 1.6“ dvejetainiai failai dabar naudoja AVX instrukcijas, kurios gali nebeveikti su senesniais procesoriais. Taigi senesni procesoriai negalės paleisti AVX, o naujesniems vartotojams reikia sukurti procesoriaus tensorflow iš šaltinio. Toliau pateikiama visa informacija, kurią turite žinoti apie šį konkretų įspėjimą. Be to, metodas, kaip atsikratyti šio įspėjimo, kad jį būtų galima naudoti ateityje.

Ką veikia AVX?

Visų pirma, AVX pristatė FMA (Fused multiply-add); kuri yra slankiojo kablelio dauginimo ir pridėjimo operacija, ir visa tai atliekama vienu žingsniu. Tai padeda be problemų pagreitinti daugelį operacijų. Dėl to algebros skaičiavimas yra greitesnis ir paprastesnis, taip pat taškų sandauga, matricos daugyba, konvoliucija ir kt. Ir tai yra labiausiai naudojamos ir pagrindinės operacijos, atliekamos kiekviename mašininio mokymosi mokyme. Procesoriai, palaikantys AVX ir FMA, bus kur kas greitesni nei senesni. Tačiau įspėjime teigiama, kad jūsų procesorius palaiko AVX, todėl tai yra gera mintis.

Kodėl jis nenaudojamas pagal numatytuosius nustatymus?

Taip yra todėl, kad numatytasis „TensorFlow“ paskirstymas sukurtas be procesoriaus plėtinių. Procesoriaus plėtiniuose nurodomi AVX, AVX2, FMA ir kt. Nurodymai, kurie sukelia šią problemą, pagal numatytuosius nustatymus nėra įgalinti numatytose versijose. Priežastys, kodėl jie neįgalinti, yra padaryti tai labiau suderinamą su kuo daugiau procesorių. Be to, norint palyginti šiuos plėtinius, jie yra daug lėtesni procesoriaus, o ne GPU. Procesorius naudojamas nedidelio masto mokymuisi mašinose, o GPU tikimasi naudoti, kai jis naudojamas vidutinio ar didelio masto mokymuisi mašinose.

Įspėjimo taisymas!

Šie įspėjimai yra tik paprastos žinutės. Šių įspėjimų tikslas yra informuoti jus apie pastatytą „TensorFlow“ iš šaltinio. Kai kuriate „TensorFlow“ iš šaltinio, mašinoje gali būti greičiau. Taigi visi šie įspėjimai jums sako apie „TensorFlow“ sukūrimą iš šaltinio.

Jei savo kompiuteryje turite GPU, galite nepaisyti šių įspėjimų iš AVX palaikymo tarnybos. Nes brangiausios bus siunčiamos į GPU įrenginį. Ir jei norite daugiau nematyti šios klaidos, galite tiesiog ją ignoruoti pridėdami šį:

importuokite OS modulį į pagrindinį programos kodą ir nustatykite jo susiejimo objektą

# Norėdami išjungti įspėjimo importavimo operacinę sistemą os os. Environ ['TF_CPP_MIN_LOG_LEVEL'] = '2'

Bet jei naudojate „ Unix“ , tada naudokite komandą eksportuoti „bash shell“

eksportuoti TF_CPP_MIN_LOG_LEVEL = 2

Bet jei neturite GPU ir norite kuo daugiau naudoti savo procesorių, turėtumėte sukurti „TensorFlow“ iš šaltinio, optimizuoto jūsų procesoriui, čia įgalinus AVX, AVX2 ir FMA.