Mustaqil ish mavzu: TensorFlow paketi asosida mashinani o‘qitish modellari Guruh
TensorFlow paketi asosida mashinani o‘qitish modellari
Download 43.11 Kb.
|
IXLOS
TensorFlow paketi asosida mashinani o‘qitish modellari
TensorFlow bizga tensorlar yordamida kompyuterni o'rganish algoritmlarini bajarish uchun natija olish imkonini beradi. TensorFlow bilan chuqur o'rganish modellarini qurish va o'qitish ancha osonlashadi. Yuqorida aytib o'tilganidek, TensorFlow bilan ishlash hisoblash grafikasini yaratish va amalga oshirish atrofida qurilgan. Hisoblash grafigi matematik operatsiyalar tugun shaklida taqdim etilgan ma'lumotlar oqimlari grafigi va ma'lumotlar bu tugunlar orasidagi qovurg'alar shaklida bo'ladi. Keling, qanday ishlashini ko'rish uchun juda oddiy kod parchasini yozamiz: import tensorflow as tf x = tf.constant(5) y = tf.constant(6) z = x * y print(z) Ushbu misolni boshlaganimizda, biz quyidagi xulosani ko'rib chiqamiz: Nima uchun ko'paytirish noto'g'ri ishlaydi? Bu biz kutgan narsalar emas. Buning sababi, TensorFlow operatsiyalari boshqacha tarzda amalga oshiriladi. Birinchidan, biz sessiyani yaratishimizva unda hisoblash grafigini bajarishimiz kerak. Sessiya ob'ekti grafik operatsiyalari amalga oshiriladigan va tensor hisoblangan muhitni qamrab oladi. Bu shuni anglatadiki, sessiya keyingi operatsiyani bajarish uchun hisoblash grafigining natijasini saqlab qolishi mumkin. Keling, to'g'ri ko'paytirish natijasini olish uchun sessiya yarataylik: # sessiya ob'ektini yaratish session = tf.Session() # sessiya yordamida qiymatni hisoblang va uni saqlang result = session.run(z) # hisob-kitoblarning natijasini ko'rsatadi print(result) # sessiyani yoping session.close() Bu safar biz sessiya yaratdik va sessiyada grafik operatsiyalarni bajardik. Ushbu misolni boshlaganimizda, biz quyidagi xulosani ko'rib chiqamiz: TensorFlow ogohlantirishiga qaramasdan, biz hali ham to'g'ri hisoblash natijalarini oldik TensorFlow keng qamrovli ochiq manba kodli kompyuterni o'rganish platformasi. Tadqiqotchilarga eng zamonaviy ML texnologiyalaridan foydalanishga imkon beruvchi keng qamrovli, moslashuvchan jamoa vositalari, kutubxonalar va resurslari ekosistemasiga ega va ishlab chiquvchilar ML-ga asoslangan ilovalarni yaratish va tarqatish oson. TensorFlow haqida ko'proq biliboling bu yerga, Ushbudemouchun Google Colab-dan foydalanamiz.GoogleColab Keras, TensorFlow, PyTorch va OpenCV kabi mashhur kutubxonalardan foydalanib, chuqur o'rganish dasturlarini ishlab chiqish uchun ishlatilishi mumkin bo'lgan bepul bulut xizmati. Google Colab haqida ko'proq bilib olish uchun, bu yerni bosing, TensorFlow va Machine-Learning tushunchalaridan foydalanib, biz hal qilmoqchi bo'lgan muammoning namunasiga to'g'ridan-to'g'ri murojaat qilaylik. Keling, so'nggi 8 oy davomida media-provayder tomonidan sarflangan marketing byudjeti (minglab dollar), shuningdek, quyidagi jadvalda bir vaqtning o'zida yangi abonentlar soni (shuningdek, minglab) berilishini taxmin qilaylik: Ma'lumotlar to'plami Ko'rib turganingizdek, sarflangan mablag ' va yangi abonentlar soni o'rtasidagi tendentsiya yoki munosabatlar mavjud. Soni oshgani sayin, yangi abonentlar soni ham oshib bormoqda. Agar siz chiziqli tenglama nazariyasidan foydalanib matematikani rivojlantirsangiz, quyidagilarni bilib olasiz: Qabul qilingan abonentlar = 2 * + 40 sarflandi. Bizning maqsadimiz marketingga sarflangan mablag ' va kompyuterni o'rganish texnikasi orqali olingan abonentlar soni o'rtasidagi bu aloqani topishdir. Yuqoridagi munosabatlardan foydalanib, agar tashkilot marketingga bir necha "x" sarf qilsa, qancha yangi abonentni kutish mumkinligini taxmin qilishimiz mumkin. Modellashtirish jarayoniga kirishdan oldin ba'zi bir asosiy kompyuterni o'rganish terminologiyasini bilib olaylik: Xarakterli xususiyat:bizning modelimizga kirish (lar). Bunday holda, yagona qiymat marketing byudjeti hisoblanadi. Teglar:bizning modelimiz chiqishi taxmin qilinadi. Bunday holda, yagona qiymat-yangi abonentlar soni. Misol:trening davomida ishlatiladigan bir nechta kirish / chiqish. Bizning holatdamar_budgetNew_subs, ma'lum bir indeks bilan bir qatorda (80,200) kabi qadriyatlar juftligi. Model:haqiqiy jarayonning matematik vakili. Mashinani o'rganishda model-algoritm sinfidan foydalangan holda yaratilgan va funktsiyalar va teglar bilan o'qitiladigan asarlar yoki ob'ekt. Keling, modellashtirish jarayoni bilan boshlaylik. Qadam 1. Yangi noutbukni yaratish Colab-ga tashrif buyurish uchun quyidagi linkni bosingvafaylni bosing, keyinyangi Python 3 tizza kompyuteri, https://colab.research.google.com/notebooks/welcome.ipynb 2 bosqichi:ikkinchi qadam-bu demoda foydalanadigan qaramlik / kutubxonalarni import qilishdir: quyidagi qismda ko'rsatilgandek numpy, matplotlib va oqim tensorini import qilish: import tensorflow as tftf.logging.set_verbosity(tf.logging.ERROR)import numpy as npimport matplotlib.pyplot as plt view rawTensorflow for Beginners(Importing Packages).py hosted with by GitHub 3 bosqichi : ma'lumotlar nuqtalarini yaratish / import qilish Keling, bizning modeli o'rgatish uchun foydalanamiz ma'lumotlar nuqtalari majmuini hosil qilaylik, nomlari bilan ikki tillo shaklida mar_budget va mos ravishda mar_budget har bir qiymati uchun Subs_gained. mar_budget = np.array([60, 80, 100 , 30, 50, 20, 90, 10], dtype=float)subs_gained = np.array([160, 200, 240, 100, 140, 80, 220, 60], dtype=float) for i,c in enumerate(mar_budget): print("{} Market budget = {} new subscribers gained".format(c, subs_gained[i])) Bundan tashqari, mar_budget va Subs_gained o'rtasidagi munosabatni tushunish uchun bizning qatorlarni quramiz. Biz foydalanamizMatplotlibbuni tasavvur qilish uchun (siz boshqa vositadan foydalanishingiz mumkin). plt.scatter(mar_budget, subs_gained)plt.xlim(0,120)plt.ylim(0,260)plt.xlabel('Marketing Budget(in thousand of Dollars)')plt.ylabel('Subscribers Gained(in thousand)')plt.show() Olingan grafik Ko'rib turganingizdek, sarflangan marketing byudjeti va yangi subwooferlar o'rtasida lineer bog'liqlik mavjud. Bizning maqsadimiz-barcha nuqtalarni tanlash uchun ishlatilishi mumkin bo'lgan chiziq tenglamasini topish, ya'ni bu lineer qaramlikni tushuntirish va keyin ko'rinmas ma'lumotlar / predmet nuqtalari uchun yorliqlarni taxmin qilish uchun ishlatiladi.(Eslatma: ma'lumotlar o'rtasidagi munosabatlar har doim ham mukammal lineer bo'lmasligi kerak. Ushbu misolda men mukammal chiziqli ma'lumotlar nuqtalaridan foydalanaman, ammo haqiqiy stsenariylarda mutlaqo chiziqli ma'lumotlar to'plami mavjud emas. Bizning maqsadimiz eng taxminiy chiziqni / egri chiziqni topish, shuningdek, bashoratchilar va teglar o'rtasidagi munosabatni tushuntirish uchun ishlatilishi mumkin bo'lgan model deb ataladi. Bundan tashqari, ushbu misol uchun chiziqli bo'lmagan ma'lumotlar nuqtalarini yaratishingiz yoki ishlatishingiz mumkin.) Lineer regressiyani taxmin qilish printsipi:chiziq tenglamasi belgilari va koeffitsientlari o'rtasidagi chiziqli aloqa bo'lishi kerak. 4 qadam:keyingi qadam bizning ma'lumotlarimizni ta'lim va test ma'lumotlariga bo'lishdir. Ta'lim ma'lumotlari bizning modelimizni o'qitish uchun ishlatiladi, test ma'lumotlari alohida saqlanadi va keyin test ma'lumotlarining haqiqiy yorlig'ini test ma'lumotlari uchun modelimiz tomonidan prognoz qilingan yorliq bilan taqqoslash orqali modelimizning ishlashini tekshirish uchun ishlatiladi. from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(mar_budget,subs_gained,random_state=42, train_size=0.8, test_size=0.2) 5-qadam: bir model yaratish Eng oddiy modelni - zich tarmoqni ishlatamiz. Muammo oddiy bo'lgani uchun, bu tarmoq faqat bitta neyron bilan bitta qatlamni talab qiladi. Bizlayer_0 qatlamini qo'ng'iroqva tf misollar yaratish orqali uniyaratish.keras.layers.Quyidagi konfiguratsiya bilan Dense: input_shape = [1]: ushbu qatlam uchun kirish bitta qiymat ekanligini bildiradi. Ya'ni, shakl bir a'zo bilan bir o'lchovli qatordir. Bu birinchi (va yagona) qatlam bo'lgani uchun, kirish shakli butun modelning kirish shakli hisoblanadi. Faqatgina qiymat marketing_budget ni ifodalovchi suzuvchi nuqta soni.birlik = 1: bu qatlamdagi neyronlarning sonini ko'rsatadi. Neyronlarning soni ichki o'zgaruvchilar qatlami muammoni hal qilish uchun qanday o'rganish uchun harakat qilish kerak qancha belgilaydi. Bu oxirgi daraja bo'lgani uchun, u ham modelning chiqish hajmi-yangi abonentlarni ifodalovchi suzuvchi nuqta qiymati. (Ko'p qatlamli tarmoqda qatlamning kattaligi va shakli keyingi qatlamning "input_shape" ga mos kelishi kerak.) layer_0 = tf.keras.layers.Dense(units=1, input_shape=[1]) Qatlamlarni modelga to'plang: Qatlamlar aniqlangandan so'ng ular modelga to'planishi kerak. Ketma-ket modelning ta'rifi qatlamlarning ro'yxatini hisobga olish tartibini belgilovchi dalillar sifatida qabul qiladi. Ushbu model faqat layer_0 qatlamiga ega. model = tf.keras.Sequential([layer_0]) Eslatma: siz tez-tez quyida ko'rinib turganidek, oldindan o'rniga model ta'rifi ichida belgilangan qatlamlarini ko'rasiz: model = tf.keras.Sequential([ tf.keras.layers.Dense(units=1, input_shape=[1])]) 6 bosqichi: modelni yo'qotishlar va optimallashtiruvchi xususiyatlar bilan kompilyatsiya qiling. Treningdan oldin modelni tuzish kerak. Ta'lim olish uchun tayyorlashda model beriladi: Yo'qotish funktsiyasi: prognozlarning istalgan natijadan qanchalik uzoqligini o'lchash usuli. (O'lchangan farq "zarar" deb ataladi.)Optimizer funktsiyasi: yo'qotishlarni kamaytirish uchun ichki qiymatlarni sozlash usuli. model.compile(loss='mean_squared_error', optimizer=tf.keras.optimizers.Adam(0.1)) Ushbu parametrlarmodel.fit()birinchi navbatda har bir nuqtada yo'qotishlarni hisoblash va keyin uni yaxshilash uchun trening (, pastda) davomida ishlatiladi. Modelning joriy yo'qotilishini hisoblash va keyinchalik uni takomillashtirish-bu mashg'ulot. Trening davomida optimizator funktsiyasi modelning ichki o'zgaruvchilari uchun tuzatishlarni hisoblash uchun ishlatiladi. Maqsad, modelni (matematik funktsiya) konvertatsiya qilish uchun haqiqiy tenglamani aks ettirmaguncha, ichki o'zgaruvchilarni sozlashdirbudget_SpentNew Subs Gained, TensorFlow ushbu sozlamani amalga oshirish uchun raqamli tahlildan foydalanadi va bu murakkablik sizdan yashiriladi, shuning uchun biz batafsil ma'lumotga ega emasmiz. Ushbu parametrlar haqida bilish uchun nima foydali: Bu erda ishlatiladigan yo'qotish funktsiyasi (o'rtacha kvadratik xato) va optimizator (odam) bu kabi oddiy modellar uchun standartdir, ammo ko'plab boshqalar mavjud. Ushbu maxsus funktsiyalar hozirgi vaqtda qanday ishlashini bilish muhim emas.Modellarni yaratishda o'ylashingiz kerak bo'lgan optimallashtiruvchi qismlardan biri - bu o'rganish tezligi (0.1yuqoridagi kodda). Bu modeldagi qiymatlarni sozlashda qadamning o'lchami. Agar qiymat juda kichik bo'lsa, modelni o'qitish uchun juda ko'p yinelemeler talab qilinadi. Juda katta va aniqlik kamayadi. Yaxshi qiymatni topish ko'pincha sinov va xatolarni o'z ichiga oladi, ammo bu diapazon odatda 0,001 (standart) va 0,1 oralig'ida bo'ladi. Zarar va Optimizer xususiyati haqida ko'proq bilib olish uchun quyidagi havolalarni bosing: a.o'rtacha kvadrat xatolik b.odam 7-qadam:mos usuli qo'ng'iroq tomonidan modelini o'rgatish. Trening davomida model marketing byudjeti qiymatlarini qabul qiladi, joriy ichki o'zgaruvchilar ("tarozilar" deb ataladi) yordamida hisob-kitoblarni amalga oshiradi va "yangi subwooferlar"olinishi kerak bo'lgan qiymatlarni ko'rsatadi. Og'irligi dastlab tasodifiy o'rnatilganligi sababli, chiqish ma'lumotlari to'g'ri qiymatga yaqin bo'lmaydi. Haqiqiy va kerakli chiqim o'rtasidagi farq yo'qotish funktsiyasi yordamida hisoblab chiqiladi va optimallashtiruvchi funktsiyasi og'irlik koeffitsientlarini qanday qilib to'g'ri tuzatishni aniqlaydi. Hisoblash, taqqoslash, sozlash, bu davr & # 8216; fit & # 8217 usuli bilan nazorat qilinadi;. Birinchi argument kirish ma'lumotlari, ikkinchi dalil esa kerakli chiqish ma'lumotidir. davrargumenti bu tsiklni necha marta ishga tushirish kerakligini ko'rsatadi vabatafsildalillar usulning qanchalik chiqarilishini nazorat qiladi. trained_model = model.fit(X_train, y_train, epochs=1000, verbose=False)print("Finished training the model") Majburiy emas qadam: ta'lim statistikasini ko'rsatish "Fit" usuli tarix ob'ektini qaytaradi. Ushbu ob'ektdan har bir ta'lim davridan keyin bizning modelimizdagi yo'qotishlar qanday kamayganligi haqida grafik yaratish uchun foydalanishimiz mumkin.yuqori yo'qotishlaryangi Submarinesqiymatini haqiqiy olingan ABS tegishli qiymati uzoq bir model bashorat bor, degan ma'noni anglatadi import matplotlib.pyplot as plt. Google-TensorFlow-dan mashhur kompyuterni o'rganish ramkasining yangi chiqqan JavaScript-versiyasining asosiy xususiyatlari qisqacha ko'rib chiqiladi.js. O'tgan yili Google deeplearn kutubxonasini taqdim etdi.js, foydalanuvchilarga to'g'ridan-to'g'ri brauzerda tasvirlarni tasniflash uchun ishlatiladigan kompyuterni o'rganish modellarini yaratishga imkon beradi. TensorFlow.js: brauzerga yetkazib berish bilan JavaScript-da kompyuterni o'rganish. Ushbu kutubxona TensorFlow deb nomlangan va taqdim etilgan.js: kod ko'proq o'qilishi mumkin bo'lib, funktsiyalar tezroq ishlab chiqilgan va batafsil modellarni yaratishga imkon beruvchi echimlar bilan to'ldirilgan va WebGL texnologiyasidan foydalanish grafik ma'lumotlarni tezda qayta ishlashga imkon beradi. TensorFlow Qurilmasi.js Modelni odatda ishlab chiquvchi va kompyuterni o'rganish modellarining oxirgi iste'molchisi sifatida o'qitish uchun tegishli kutubxonalarni o'rnatish talab qilinadi. Biroq, TensorFlow-da.JS interfeysi brauzerdir, shuning uchun skript faylini ulashda kutubxonalarni o'rnatish va qaramlikni kuzatish zarurati yo'qoladi, hamma narsa "uyga yetkaziladi". Kutubxonaning tuzilishi qobiq tuzilishi – yadro API va uning yuqori qatlam qatlamlarini qoplaydigan shaklda ifodalanishi mumkin: Ops API (operatsiyalardan qisqartirilgan-past darajali operatsiyalar). Sintaktik ravishda, bu komponent Python interfeysi bilan klassik Tensorflowga yaqin. Layers API (yuqori qatlamli qatlamlar). Ushbu API Keras kutubxonasiga o'xshash bo'lib, u eng keng tarqalgan umumiy jamoalarning minimalist to'plamlariga o'rganishdagi harakatlarini kamaytiradi. Misol uchun, ilgari biz ma'lumotlarni yuklab olish, yaratish va o'rganish modelini, natijalarini tekshirish, shu jumladan, kodi 15 satr diabet bashorat muammoni hal qilish Keras bir misol ko'rsatdi. TensorFlow.js: brauzerga yetkazib berish bilan JavaScript-da kompyuterni o'rganish. Yuqori darajadagi API asosida foydalanuvchi model bilan o'zaro aloqalar uchun o'z interfeysini yaratish mumkin. Bu ko'chma qurilmalar sensorlaridan (akselerometr, gyroskop, kamera, GPS va boshqalar) ma'lumotlarni olish va foydalanuvchi xatti-harakatlariga asoslangan tegishli kontentni tanlash uchun modellarni tayyorlash bilan veb-ilovalarni tezda yaratish uchun yangi imkoniyatlar ochadi. Shu bilan birga, xavfsizlik avtomatik ravishda ta'minlanadi, chunki ma'lumotlar mijoz tomonidan yaratiladi va saqlanadi. Bundan tashqari, TensorFlow.js, oldindan o'rganilgan modellardan foydalanishga imkon beradi, bu esa vaqtni talab qiluvchi vazifalar uchun juda qulaydir, masalan, tasvirni aniqlash (masalan, veb-kamera oldida joylashgan ob'ektni aniqlash vazifasi uchun kod va demoga qarang). TensorFlow bilan ishlash qanday ko'rinishga ega?js Tensorflowdagi asosiy ma'lumotlar tuzilishi.js tensors-potentsial katta hajmdagi holatlar uchun matritsalarni umumlashtirish. TensorFlow modelini yaratish va o'qitish.js ikki yo'l bilan mumkin. Modelni yaratishning birinchi varianti html faylini ishga tushirish natijasida, script. Вы также можете использовать внешний .js файл --> Download 43.11 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling