در این آموزش میخواهیم دیتاست Fashion MNIST رو در تنسورفلو و در محیط گوگل کولب وارد کنیم و مدلی ساده با استفاده از ابزار tensorflow بسازیم که در اصل یک شبکه عصبی ساده است.

دیتاست Fashion MNIST

دیتاست Fashion MNIST دیتاستی است شامل تصاویر grayscale یا خاکستری که ابعاد کوچک 28 در 28 دارند، می شود و 70000 نمونه در ده دسته مختلف  اطلاعات آماری این بانک اطلاعاتی است.

fashion mnist

fashion-mnist

این ده دسته به شرح جدول زیر است .

لیبیل کلاس ترجمه
0 T-shirt/top تی شرت/تاپ
1 Trouser شلوار
2 Pullover پلیور
3 Dress لباس زنانه
4 Coat کت
5 Sandal صندل
6 Shirt پیراهن
7 Sneaker کفش ورزشی
8 Bag کیف
9 Ankle boot نیم بوت

مراحل اجرای کد

همینطور که در ویدئو هم مشاهده فرموید ابتدای امر به محیط گوگل کولب ورود میکنیم و با ساخت یک کد جدید اقدام به شروع برنامه می نماییم.

اول از هر کاری نیاز داریم تا پکیج های مورد نیاز در این برنامه را وارد نماییم.


# TensorFlow and tf.keras
import tensorflow as tf
# Helper libraries
import numpy as np
import matplotlib.pyplot as plt
from google.colab.patches import cv2_imshow
print(tf.__version__)

تنسورفلو؛ فریم ورک اصلی کار در زمینه یادگیری عمیق هست. و از بخش کراس که از api های مهم این پکیج است در این برنامه استفاده می کنیم. از نامپای برای محاسبات ریاضی و کار با ماتریس ها، matplotlib برای نمایش نمودار ها و تصاویر و cv2_imshow برای نمایش تصویر در کولب استفاده شده است. خروجی این سطر 2.8.0 است که ورژن تنسورفلو را نشان میدهد.


# TensorFlow and tf.keras
fashion_mnist = tf.keras.datasets.fashion_mnist

(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()

در این بخش از کد دیتاست fashion mnist رو در بخش datasets کراس لود میکنیم.


class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
               'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']

کد فوق دسته های مختلف دیتاست رو در یک لیست گردآوری نموده.


cv2_imshow(train_images[0])

نمودار فوق تصویر اولین دیتای آموزشی را نمایش میدهد.

 


plt.figure(figsize=(10,10))
for i in range(25):
    plt.subplot(5,5,i+1)
    plt.xticks([])
    plt.yticks([])
    plt.grid(False)
    plt.imshow(train_images[i], cmap=plt.cm.binary)
    plt.xlabel(class_names[train_labels[i]])
plt.show()

کد فوق 25 تا از تصاویر دیتاست را به صورت 5 در 5 به همراه لیبل هر کدام را مشخص مینماید.


model = tf.keras.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(128, activation='relu'),
    tf.keras.layers.Dense(10)
])

در کد فوق یک انباره خطی با استفاده از sequential ساختیم که فقط حکم نگه دارنده شبکه را داشته باشد و دو لایه تماما متصل ساختیم با کمک Dense که اولی 128 و دومی به دلیل تعداد کلاس های دیتاست 10 نرون دارد. همچنین نیاز است به دلیل استفاده از شبکه عصبی فولی کانکتد، داده تصویر را به بردار تبدیل نماییم.


model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])

در بخش فوق نیاز مندی های مدل تعریف شده نظیر بهینه ساز، تابع هزینه و معیار گزارشات را مشخص می نماییم.


model.fit(train_images, train_labels, epochs=10)

همچنین در این بخش روند آموزش را بر پایه داده های لیبل و تصاویر آموزشی دنبال میکنیم.


test_loss, test_acc = model.evaluate(test_images,  test_labels)

print('\nTest accuracy:', test_acc)

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


313/313 [==============================] - 1s 2ms/step - loss: 0.6690 - accuracy: 0.7475
Test accuracy: 0.7475000023841858

 

 

0/5 (0 Reviews)

1 دیدگاه. ارسال دیدگاه جدید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست