Javascript Disabled!

Please Enable Javascript if you disabled it, or use another browser we preferred Google Chrome.
Please Refresh Page After Enable

Powered By UnCopy Plugin.

هارد VGG16


 

معرفی Keras VGG16

Keras VGG16 یک مدل یادگیری عمیق است که با وزنه های از پیش تمرین شده در دسترس بود. مدل Keras VGG16 در مدل های استخراج ویژگی، تنظیم دقیق و پیش بینی استفاده می شود. با استفاده از Keras وزنه های VGG16 به صورت خودکار با نمونه سازی مدل Keras دانلود می شوند و این مدل در دایرکتوری Keras/model ذخیره می شود. مطابق با نمونه، مدل Keras مطابق با فرمت داده های تصویری که فایل های پیکربندی Keras VGG16 ما را تنظیم می کند ساخته می شود.

خوراکی های کلیدی

  • یادگیری انتقالی به فرآیندی اشاره می کند که در آن مدل Keras VGG16 با استفاده از مسائل مشخص شده آموزش داده می شود.
  • در یادگیری انتقال عمیق، ابتدا مدل یک شبکه عصبی با استفاده از یک مسئله مشابه که در آن مدل عصبی مشخص شده حل می کنیم، آموزش داده شد.

Keras VGG16 چیست؟

Keras VGG16 چیزی نیست جز معماری شبکه عصبی پیچشی که در ILSVR استفاده شده است. مدل Keras VGG16 معماری مدل ویژن در نظر گرفته می شود. نکته بسیار مهم در مورد VGG16 این است که به جای یک پارامتر بزرگ، روی لایه های پیچشی تمرکز می کند. از چیدمان حداکثر لایه های استخر و پیچیدگی پیروی می کند که در سرتاسر معماری سازگار بود. اشاره به 16 لایه است که حاوی وزن هستند. شبکه Keras VGG16 بسیار بزرگ است، حاوی میلیون ها پارامتر است. بر روی مجموعه داده پایتون پیاده سازی شده است.

چگونه مدل Keras VGG16 را یاد بگیریم؟

یادگیری انتقالی رویکردی است که در آن می‌توانیم از مدلی استفاده کنیم که از کار یادگیری ماشین آموزش داده شده است. حوزه یادگیری عمیق از این رویکرد برای طبقه بندی تصاویر استفاده می کند.

1. بررسی CNN

CNN حاوی چندین لایه است که برای ساخت بلوک استفاده شده است. CNN شامل بلوک های ساختمانی زیر به شرح زیر است:

  • لایه کانولوشنال: این لایه خروجی گره هایی را محاسبه می کند که به مناطق ماتریس ورودی متصل شده اند.
  • لایه فعال سازی: این لایه تعیین می کند که آیا گره ورودی با استفاده از داده های ورودی شلیک می شود یا خیر. حجم ابعاد با استفاده از این لایه تغییر نمی کند.
  • لایه ترکیبی: در حالی که با استفاده از این لایه، استراتژی نمونه برداری با کاهش وزن و ارتفاع حجم اعمال می شود.
  • لایه کاملا متصل: حجم خروجی با استفاده از گره های لایه کاملا متصل منتقل می شود. کلاس احتمال محاسبه شده و با استفاده از ابعاد به آرایه سه بعدی خروجی داده می شود.

2. Keras CNN برچسب های مواد غذایی را پیش بینی می کند

در مثال زیر، مدلی را برای تولید پیش‌بینی‌ها و محاسبه دقت بارگذاری می‌کنیم که برای مقایسه عملکرد به شرح زیر استفاده شده است. هنگام استفاده از آن، باید keras را در سیستم خود نصب کنیم. در مثال زیر با استفاده از دستور pip به صورت زیر در حال نصب همان هستیم.

کد:

python -m pip install keras

خروجی:

هارد VGG16 1

در مثال زیر مدل را به صورت زیر تعریف می کنیم. برای همین از یک متغیر mod استفاده می کنیم.

کد:

from keras.models import load_model
mod = load_model('scratch_img_model.hdf5')
mod.summary()

خروجی:

هارد VGG16 2

3. چگونه می توانیم کار یادگیری را انتقال دهیم؟

یادگیری انتقالی محدودیت پارادایم یادگیری را حل خواهد کرد. یادگیری انتقال توانایی به اشتراک گذاری ویژگی ها را در بین وظایف می دهد.

4. دامنه و وظیفه

دامنه و وظیفه در یک دامنه و وظیفه تعریف می شوند. در حوزه، ما در حال تعریف طبقه بندی تصویر وظیفه خود برای طبقه بندی تصاویر هستیم. اگر فرض کنید از CNN استفاده می کنیم، آنگاه قبلاً بهینه شده است و همچنین برای کار و دامنه آموزش داده خواهد شد. ما می توانیم از مدلی که در نظر گرفته شده است استفاده کنیم.

5. چگونه می توانیم از مدل VGG16 استفاده کنیم؟

VGG16 یک شبکه CN است که در مجموعه مجموعه آموزش داده شده است. مجموعه داده شبکه تصویری حاوی تصاویری از انواع مختلف وسایل نقلیه خواهد بود. ما باید مدلی را که از قبل آموزش داده شده بود در مجموعه داده imagenet وارد کنیم.

دو نوع رویکرد برای کراس VGG16 وجود دارد:

  • رویکرد استخراج ویژگی: ما می توانیم از معماری مدل از پیش آموزش دیده برای ایجاد مجموعه داده جدید از تصاویر ورودی استفاده کنیم. با استفاده از این نوع رویکرد، لایه های تلفیقی و کانولوشن را وارد می کنیم. ما تصاویر را از طریق VGG16 عبور می دهیم.
  • رویکرد تنظیم دقیق: این نوع رویکرد برای به کارگیری استراتژی تنظیم دقیق استفاده می شود. هدف این استراتژی اجازه دادن به لایه های از پیش آموزش دیده است. در رویکرد استخراج ویژگی از لایه های از پیش آموزش دیده استفاده کرده ایم. ما مجموعه داده های تصویری خود را از خروجی وزن ها ارسال می کنیم.

6. انتقال یادگیری برای طبقه بندی مواد غذایی

مدل VGG16 با استفاده از keras API به راحتی دانلود می شود. ما باید عملکرد پیش پردازش را با مدل VGG16 وارد کنیم. مدل keras VGG16 با استفاده از مقدار پیکسل‌هایی که از 0 تا 255 متغیر بود آموزش داده می‌شود. مدل‌های دیگر شامل طرح‌های نرمال‌سازی متفاوتی در آن هستند.

7. آماده سازی داده های آموزشی و آزمایشی

در مثال زیر، ابتدا کتابخانه ها را وارد می کنیم.

کد:

import os
from keras.layers import Flatten
from pathlib import Path
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Model
from keras.optimizers import Adam
from keras.applications.vgg16 import VGG16
from keras.callbacks import EarlyStopping
import numpy as np

خروجی:

Keras VGG16 در 3

در مثال زیر با یک تولید کننده داده تصویر، از دایرکتوری تصویر برای تعریف مسیر استفاده می کنیم.

کد:

B_SiZE = 64
t_gen = ImageDataGenerator(rotation_range=70, 
                                     brightness_range=[0.3, 0.8],
                                     width_shift_range=0.6, 
                                     height_shift_range=0.7,
                                     horizontal_flip=True, 
                                     vertical_flip=True,
                                     validation_split=0.26,
                                     preprocessing_function=preprocess_input) 
test_gen = ImageDataGenerator(preprocessing_function=preprocess_input) 
download_dir = Path('keras')
t_dir = download_dir/'keras'
test_dir = download_dir/'keras'
class_subset = sorted(os.listdir('keras'))[:10] 
traingen = t_gen.flow_from_directory(t_dir,
                                               target_size=(112, 112),
                                               class_mode="categorical",
                                               classes=class_subset,
                                               subset="training",
                                               batch_size=B_SiZE, 
                                               shuffle=True,
                                               seed=42)
validgen = t_gen.flow_from_directory(t_dir,
                                               target_size=(112, 112),
                                               class_mode="categorical",
                                               classes=class_subset,
                                               subset="validation",
                                               batch_size=B_SiZE,
                                               shuffle=True,
                                               seed=42)
testgen = test_gen.flow_from_directory(test_dir,
                                             target_size=(112, 112),
                                             class_mode=None,
                                             classes=class_subset,
                                             batch_size=1,
                                             shuffle=False,
                                             seed=42)

خروجی:

هارد VGG16 3

8. ویژگی استخراج لایه های از پیش آموزش دیده

در مثال زیر، ما از لایه از پیش آموزش داده شده برای استخراج ویژگی استفاده می کنیم.

کد:

optim_1 = Adam(learning_rate=0.001)
n_class=10
n_steps = traingen.samples
n_step = validgen.samples
n_ep = 50
v_mod = create_model(input_shape, n_class, optim_1)
%%time
vgg_history = v_mod.fit(traingen,
batch_size=B_SiZE,
epochs=n_ep,
validation_data=validgen,
steps_per_epoch=n_steps,
validation_steps=n_step,
callbacks=[tl_checkpoint_1, early_stop, plot_loss_1],
verbose=1)

خروجی:

لایه های از پیش آموزش دیده استخراج را مشخص کنید

هارد VGG16 5

9. لایه های از پیش آموزش دیده برای تنظیم دقیق

در مثال زیر، ما از لایه از پیش آموزش داده شده برای استخراج ویژگی استفاده می کنیم.

کد:

vgg_ft_history = v_mod.fit(traingen,
                                  batch_size=v_mod,
                                  epochs=n_ep,
                                  validation_data=validgen,
                                  steps_per_epoch=n_steps, 
                                  validation_steps=n_steps,
                                  callbacks=[tl_checkpoint_1, early_stop, plot_loss_2],
                                  verbose=1)

خروجی:

لایه های از پیش آموزش دیده برای تنظیم دقیق

هارد VGG16 7

10. مقایسه مدل ها

در مثال زیر، مدلی را که در مورد بالا ایجاد شده است، مقایسه می کنیم.

کد:

def plot_heatmap ----
fig.suptitle("Comparison Model", fontsize=24)
---
plt.show()

خروجی:

هارد VGG16 8

صدای بلند VGG16 9

معماری Keras VGG16

در معماری VGG16، 13 لایه در دسترس است، پنج لایه حداکثر ادغام و سه لایه متراکم هستند. شکل زیر معماری keras VGG16 را نشان می دهد.

صدای بلند VGG16 10

داده های آموزشی از طریق شبکه ارسال می شود و در لایه های FC متوقف می شود. در برخی از شبکه از مورد به دست آوردن دقت است. برای استفاده از آن باید tensorflow را در سیستم خود نصب کنیم.

کد:

python -m pip install tensorflow

خروجی:

نصب تنسورفلو

برای استفاده از آن باید ماژول keras را با استفاده از کلمه کلیدی import وارد کنیم.

کد:

from keras.layers import Flatten
from pathlib import Path
from keras.preprocessing.image import ImageDataGenerator
from keras.applications.vgg16 import VGG16

خروجی:

استفاده از کلمه کلیدی import

سوالات متداول

سوالات متداول ذکر شده در زیر آورده شده است:

Q1. کاربرد Keras VGG16 چیست؟

پاسخ: این چیزی نیست جز اصول طبقه بندی تصاویر که در CNN برای طبقه بندی تصاویر غذا ساخته شده است.

Q2. کاربرد یادگیری انتقال در keras VGG16 چیست؟

پاسخ: یادگیری انتقالی رویکردی از keras VGG16 است که در آن می‌توانیم از مدل آموزش‌دیده در کار یادگیری ماشین برای انواع مختلف مشاغلی که در keras VGG16 تعریف شده‌اند استفاده کنیم.

Q3. کاربرد لایه کانولوشن در keras VGG16 چیست؟

پاسخ: لایه کانولوشن گره های متصل به مناطق محلی را محاسبه می کند.

نتیجه

شبکه keras VGG16 بسیار بزرگ است، حاوی میلیون ها پارامتر است. بر روی مجموعه داده پایتون پیاده سازی شده است. این یک مدل یادگیری عمیق است که با وزنه های از قبل آموزش دیده در دسترس بود. این مدل در مدل های استخراج ویژگی، تنظیم دقیق و پیش بینی استفاده می شود.

مقالات پیشنهادی

این راهنمای Keras VGG16 است. در اینجا به معرفی نحوه یادگیری keras مدل VGG16 می پردازیم؟ معماری و سوالات متداول همچنین می توانید برای کسب اطلاعات بیشتر به مقالات زیر نگاهی بیندازید –

  1. تیونر با صدای بلند
  2. کراس GPU چیست؟
  3. جاسازی سخت
  4. پیش بینی سخت

پست Keras VGG16 اولین بار در تگ سرویس ظاهر شد.


به این مطلب امتیاز دهید

جهت ارسال نظر اینجا کلیک کنید.