Ma’ruza rejasi Keras kutubxonasi
Download 30.63 Kb. Pdf ko'rish
|
- Bu sahifa navigatsiya:
- 15-Maruza. Chuqur o’qitish (Deep learning) da Python keras va tensorflow kutubxonalaridan foydalanish
Ma’ruza rejasi Keras kutubxonasi Kerasda neyron tarmoq qurish Kerasning asosiy tushunchalari ◦ Sequential ◦ Convolution (Conv1D, Conv2D) ◦ Dense ◦ Activation ◦ Dropout Tensorflow arxitekturasi Python muhitida virtual environment yaratish Keras nima? Keras – bu Python-da yozilgan, Theano yoki Tensorflow-ning asosiga qurilgan Ochiq Kodli netron tarmoq kutubxonasidir. U modulli, tezkor va ishlatish uchun qulay holatda Google kompaniyasi muhandisi Fransua Cholet ishlab chiqqan. Keras – bu hisob-kitoblarni amalga oshirish uchun TensorFlow, CNTK yoki Theano “Backend” kutubxonalaridan foydalanadigan, yuqori darajada ishlaydigan API(application programming interface)dir. Keras nima? Kerasning ishlab chiqilishiga asosiy sabab shuki – ungacha boshqa neyron tarmoqlari kutubxonalaridan foydalanish noqulayroq bo`lgan ya’ni sintaksisi qiyinroq bo`lgan. Keras yuqori-darajali API modellarni yaratish, qatlamlarni 15-Ma'ruza. Chuqur o’qitish (Deep learning) da Python keras va tensorflow kutubxonalaridan foydalanish belgilash yoki bir nechta kirish-chiqish modellarini boshqarish imkonini beradi. Keras modelni yo`qotish (Loss function) va optimizatsiya (Optimization function) funksiyasi bilan kompilyatsiya qiladi, va modelni o`qitishni fit funksiyasi orqali amalga oshiradi. Kerasda neyron tarmoq qurish Keras neyron tarmoq modelini juda tez tayyorlash imkonini beradi. Bir necha qatorli oddiy tarmoq modelini yaratish uchun, Keras bu borada yordam berishi mumkin. Quyidagi misolga qarang: Kerasda neyron tarmoq qurish (Input) model = Sequential() model.add(Dense(512, input_shape=(784,))) model.add(Activation('relu')) model.add(Dropout(0.2)) Kerasda neyron tarmoq qurish (Hidden) model = Sequential() model.add(Dense(512, input_shape=(784,))) model.add(Activation('relu')) model.add(Dropout(0.2)) model.add(Dense(512)) model.add(Activation('relu')) model.add(Dropout(0.2)) Kerasda neyron tarmoq qurish (Output) model = Sequential() model.add(Dense(512, input_shape=(784,))) model.add(Activation('relu')) model.add(Dropout(0.2)) model.add(Dense(512)) model.add(Activation('relu')) model.add(Dropout(0.2)) model.add(Dense(10)) model.add(Activation('softmax')) Kerasning asosiy tushunchalari Kerasdagi asosiy struktura bu model. Modellar bir qancha qatlamlardan tashkil topishi mumkin. Kerasda qatlamlarning bir nechta turi mavjud. ◦ Ketma-ket tartibli(Sequential) model ◦ Konvolyutsion qatlam ◦ MaxPooling qatlam ◦ Zich (Dense) qatlam ◦ Dropout qatlam Ketma-ket tartibli (Sequential) model Ketma-ket tartibli modelning asosiy g'oyasi shunchaki Keras qatlamlarini ketma- ket tartibda joylashtirishdir. Ya`ni qatlamlar turgan tartibi bo`yicha ishga tushiriladi Konvolyutsion qatlam Konvolyutsion qatlam –bu massivlar ustida bir nechta filtrlardan foydalangan holda ulardan turli xil xususiyatlarni ajratib olish uchun qo`llaniladigan qatlamdir Konvolyutsion qatlam ReLU-ni faollashtirish funktsiyasidan foydalanadigan va kirish shakli(input shape) 320x320x3 bo'lgan 48 ta 3x3 o'lchamdagi filtri bo`lgan konvolyutsion qatlam. input_shape=(320,320,3) #this is the input shape of an image 320x320x3 model.add(Conv2D(48, (3, 3), activation='relu', input_shape= input_shape)) Konvolyutsion qatlamning boshqacha ko`rinishi: model.add(Conv2D(48, (3, 3), activation='relu')) MaxPooling qatlam Maxpooling - bu har bir filterdan o`tkazilayotkan qiymatlardan eng kattasini olishdir. Odatda maxpooling qanadaydir massivda qo`llanilganda natijaviy massivning o`lchami kichkinaroq bo`ladi. (2,2) filterga ega bo`lgan maxpooling qatlami model.add(MaxPooling2D(pool_size=(2, 2))) Zich (Dense) qatlam Boshqacha qilib aytganda, zich qatlam bir-biriga to'liq bog'langan qatlamdir, ya'ni qatlamdagi barcha neyronlar keyingi qatlam bilan bog'langan va bu qatlamdan juda ko`p foydalaniladi. 256 ta chiqish qiymatlari bo`lgan zich qatlam model.add(Dense(256, activation='relu')) Dropout qatlami Dropout qatlami o`qitish jarayonida neyron tarmoqdagi ahamiyati yo’q bo’lgan neyronlarni tashlab yuborish amalini bajarish uchun ishlatiladi Keras modelni ishga tushurish , o'qitish va baholash Model tuzilgandan so'ng, o'qitish boshlanadi. Modelni birinchi bo'lib loss funktsiyasi va optimizatsiya funktsiyasi bilan kompilyatsiya qilish talab qilinadi. Bu tarmoq og'irlik koeffitsientlarini (weights) o'zgartirishga imkon beradi va xatolikni(loss) minimallashtiradi. Loss funksiyasi – bu qurilgan modelning o’quv tanlanmaga nisbatan qanchalik to’g’ri shakllantirilganligini baholash usuli hisoblanadi. Optimizatsiya funksiyasi – bu tarmoqning og'irlik koeffitsientlarini (wieghts) va ozod (bias) larini o`zgartirgan holda xatolikni kamaytiruvchi funksiyadir. model.compile(loss='mean_squared_error', optimizer='adam') Keras modelni ishga tushurish , o'qitish va baholash Modelni o`qitishni boshlash uchun unga validatsiya va o`qitish(training) ma`lumotlarini berish kerak shuningdek paket o`lchami va sikllar soni ham belgilanadi model.fit(X_train, X_train, batch_size=32, epochs=10, validation_data=(x_val, y_val)) Oxirgi bosqich esa modelni test ma`lumotlari bilan baholash score = model.evaluate(x_test, y_test, batch_size=32) Kerasda chiziqli regressiya modelini qurish Modelni o`qitgandan so`ng natija quyidagicha bo`ladi Boshlang`ich o`girlik koeffitsientlari(initial weights): w: 0.37, b: 0.00 Optimallashtirilgan o`girlik koeffitsientlari: w: 3.70, b: 0.61 Python Virtual environment (venv) c:\>python -m venv c:\path\to\myenv Misol uchun “MachineLearning” nomli papka mavjud. Shu papkani ichiga kirib cmd oynasi orqali yuqoridagi kod ishga tushuriladi Natijada MachineLearning papkasining ichida “venv” nomli papka va uning ichida joriy kompyuterga o’rnatilgan python ning virtual muhiti yaratiladi Python Virtual environment (venv) Python Virtual environment (venv) ni ishga tushirish Endi yaratilgan virtual muhitni ishga tushirib kerakli kutubxonalarni o’rnatish lozim bo’ladi, bu amalni cmd orqali yoki “MachineLearning” loyihasini PyCharm dasturi orqali ochib, shu muhitda ham amalga oshirish mumkin. venv\Scripts\activate.bat Naitjada virtual muhit ishga tushadi Venv da kerakli paketlarni o’rnatish Bu yerdan quyidagi buyruq orqali mavjud o’rnatilgan paketlarni ko’rish mumkin pip list pip install package-name pip install tensorflow pip install numpy pip install keras Endi shu yerda barcha kerakli bo’lgan paketlarni maxsus buyruq orqali o’rnatish mumkin Venv da kerakli paketlarni o’rnatish Ushbu modullar o’rnatilgandan keyin pip list buyrugi orqali tekshirib ko’ramiz Python virtual muhitda (venv) joriy muhitda o’rnatilgan modullarni saqlash va keyingi loyiha uchun shu modullarni ishlatish imkoniyati mavjud. Buning uchun quyidagilar amalga oshirilishi lozim pip freeze Venv da kerakli paketlarni o’rnatish Kompyuter xotirasida (misol uchun C:\User\Desctop) “requirements.txt” fayl yaratiladi va ushbu faylga rasmda ko’rsatilgan modullar va ularning versiyalari haqidagi ma’lumot ko’chirib olinadi Venv da kerakli paketlarni o’rnatish Ushbu yaratilgan “requirements.txt” fayli, keyinchalik yaratilishi mumkin bo’lgan virtual muhit uchun tayyor modullar ro’yhati hisoblanadi va joriy loyiha uchun “venv” yaratilgandan keyin quyidagi buyruq orqali fayl ichida keltirilgan modullarni bir urunishda o’rnatish mumkin Demak Python virtual muhiti va “pip” orqali loyiha uchun kerakli barcha modullar o’rnatilgandan keyin virtual muhitni “deactivate” qilish kerak bo’ladi Foydalanilgan adabiyotlar Aurelian Geron, Hands on Machine Learning with Scikit-Learn Keras&Tensorflow // Second edition Concepts, Tools, and Techniques to Build Intelligent Systems, 2019, 510 pages Primoz Potocnik, Neural Networks: MATLAB examples // Neural Networks course (practical examples)© 2012 Download 30.63 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling