Ahmad Maulana Rismadin
Implementasi algoritma Deep Learning pada Accelerator (CPU/GPU/Accelerator lainnya)
Deep Learning adalah bagian dari pembelajaran mesin yang berbasis jaringan syaraf tiruan dengan banyak hidden layers yang memiliki kemampuan untuk mempelajari representasi atau fitur data secara otomatis. Deep learning memiliki kemampuan yang sangat baik dalam computer vision, salah satunya adalah penerapan algoritma Convolutional Neural Network (CNN).
Algoritma CNN menjadi populer di dalam teknik Deep Learning karena memiliki faktor penting seperti menghilangkan kebutuhan untuk ekstraksi fitur secara manual, dapat dilatih kembali untuk tugas-tugas dalam pengenalan suatu objek baru yang memungkinkan untuk membangun di jaringan yang sudah ada sebelumnya, serta algoritma CNN juga mempunyai beberapa model diantaranya CNN with 1 convolutional layer, CNN with 2 convolutional layer, CNN with 3 convolutional layer, dan CNN with 4 convolutional layer
Pertama, saya menggunakan dataset gambar dari imagenet100_clsidx_to_labels.txt sebagai modul dataset
Kedua, saya melakukan analisis gambar deep Learning menggunakan Google Collab Berikut langkah dalam menganalisis model Deep Learing menggunakan dataset gambar
Pertama, mengimport beberapa library
#Import library yang dibutuhkan
from keras.applications.efficientnet_v2 import EfficientNetV2M
from keras.applications.mobilenet_v2 import MobileNetV2
#Deklarasikan model yang akan dipakai
model = EfficientNetV2M()
#model = MobileNetV2()
#Tampilkan layer-layer model VGG16
model.summary()
Kedua, kita import library dan url gambar yang nantinya akan kita atur gambar tersebut yang akan menjadi NP Array
import requests
import numpy as np
import cv2
import matplotlib.pyplot as plt
from PIL import Image
urls=[]
urls.append("https://post.healthline.com/wp-content/uploads/2020/08/3180-Pug_green_grass-732x549-thumbnail-732x549.jpg")
urls.append("https://static.toiimg.com/thumb/msid-60132235,imgsize-169468,width-800,height-600,resizemode-75/60132235.jpg")
urls.append("https://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/article_thumbnails/other/cat_relaxing_on_patio_other/1800x1200_cat_relaxing_on_patio_other.jpg")
urls.append("https://i.guim.co.uk/img/media/26392d05302e02f7bf4eb143bb84c8097d09144b/446_167_3683_2210/master/3683.jpg?width=1200&height=1200&quality=85&auto=format&fit=crop&s=49ed3252c0b2ffb49cf8b508892e452d")
urls.append("https://media.wired.com/photos/61afb905d184762c75e00411/master/pass/Gear-Jackbrabbit-Bike-Yellow-top.jpg")
urls.append("https://cdn.mos.cms.futurecdn.net/ZvueiLL2vdwoHWHjCRuQCW-1200-80.jpg")
urls.append("https://images.theconversation.com/files/239356/original/file-20181004-52660-1fosymz.jpg?ixlib=rb-1.1.0&rect=121%2C5%2C3214%2C2309&q=45&auto=format&w=926&fit=clip")
urls.append("https://www.thesun.co.uk/wp-content/uploads/2019/09/NINTCHDBPICT000492607142-e1567357146264.jpg")
urls.append("https://asset.kompas.com/crops/ncgvDkq11ovx_624dxbv483x_iY=/0x0:648x432/750x500/data/photo/2021/10/05/615c371c61b81.jpg")
urls.append("https://wallpaperaccess.com/full/3396763.jpg")
urls.append("https://www.thehappychickencoop.com/wp-content/uploads/2019/01/chicken-and-hen.jpg")
urls.append("https://m.media-amazon.com/images/I/81KoSSAwH2L._SL1500_.jpg")
imgs=[]
plt.figure(figsize=(15,6))
for u in range(0,len(urls)):
r = requests.get(urls[u], stream=True) #Download
img = np.array(Image.open(r.raw)) #Konversi ke NP Array
plt.subplot(1,len(urls),u+1) #Menampilkan ke matplotlib
plt.imshow(img) #Menampilkan ke matplotlib
img = cv2.resize(img, (480,480)) #Resize sesuai input VGG 16
imgs.append(img) #Kumpulkan semua image yang telah di preproses ke imgs
plt.show() #Menampilkan ke matplotlib
imgs = np.array(imgs) #Konversi ke Np Array
print (imgs.shape) #Debuging (Apakah shape-nya benar?)
Hasil dari Classification
Selanjutnya kita akan mencocokan hasil dari classification berdasarkan dataset yang telah kita punya dengan menjalankan perintah berikut
yh = model.predict(imgs)
for i in range(len(urls)):
if(np.argmax(yh[i]) >= 151 and np.argmax(yh[i])<=268 ):
print("Anjing")
elif(np.argmax(yh[i]) >= 281 and np.argmax(yh[i])<=287 ) :
print("Kucing")
elif(np.argmax(yh[i]) >= 7 and np.argmax(yh[i])<=8 ) :
print("Ayam")
elif(np.argmax(yh[i]) >= 387 and np.argmax(yh[i]) <=388):
print("Panda")
elif(np.argmax(yh[i]) == 671):
print("Sepeda")
elif(np.argmax(yh[i]) == 620):
print("Laptop")
else:
print("Lainya")
Hasil dari pencocokan tersebut didapatkan sebagai berikut
Sehingga didapatkan hasil yang cocok dari clasification gambar dan dataset