Kali ini saya akan membagi beberapa pengetahuan yang sudah saya dapat.disini saya akan share gimana sih caranya buat aplikasi kecerdasan buatan
apasih kecerdasan buatan,yaa kecerdasan yang kita buat,dalam era modern seperti ini sudah banyak aplikasi kecerdasan buatan yang dibuat untuk memudahkan manusia.
ets kita disini bukan mau buat kecerdasan buatan yang bisa memudahkan manusia.disini kita akan belajar gimana sih caranya iklan-iklan yang ada di instagram di facebook yang selalu muncul padahal kita gapernah buka.yaa itu salah satunya saat kia buka aplikasi traveloka mau iseng2 doang cari kamar atau cari pesawat.nah dalam sistem kecerdasan buatan di record tuh aplikasi apaan aja yang sering kita buka nanti kebaca di sistemnya
kalo yang kita buat sekarang gimana sih caranya biar mesin bisa ngebaca gambar dari yang blur atau jelek jadi bagus
import tensorflow as tf #tensorflow
import cv2 #image processing
import os #ambil file dari local disk
import numpy as np #untuk matriks
import matplotlib.pyplot as plt # untuk gambar
import random
#membuat fungsi
def load_data(data_directory):
directories = [d for d in os.listdir(data_directory)
if os.path.isdir(os.path.join(data_directory, d))]
labels = []
images = []
for d in directories:
label_directory = os.path.join(data_directory,d)
file_names = [os.path.join(label_directory,f)
for f in os.listdir(label_directory) if f.endswith(".jpg")]
for f in file_names:
images.append(cv2.imread(f))
labels.append(int(d))
return images,labels
def neural_net(x):
layer_1 = tf.layers.dense(x,400,activation=tf.nn.relu) #angka 450 adalah banyaknya neuron yang boleh diganti, x adalah input
layer_2 = tf.layers.dense(layer_1,200,activation=tf.nn.relu) #angka 450 adalah banyaknya neuron yang boleh diganti, x adalah input
out_layer = tf.layers.dense(layer_2,26) #26 = jumlah label
return out_layer
ROOT_PATH = "E:\pertemuan 1"
train_data_directory = os.path.join(ROOT_PATH, "dataset") <<<< data set mesti di download
images,labels = load_data(train_data_directory)
dim = (30,30)
images30 = []
for image in images:
gray_image = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
images30.append(cv2.resize(gray_image,dim,interpolation=cv2.INTER_CUBIC))
#variabel place holder
x = tf.placeholder(dtype = tf.float32,shape= [None,30,30]) #gambar
y = tf.placeholder(dtype = tf.int32,shape = [None]) #label
#jaringan
images_flat = tf.contrib.layers.flatten(x)
logits = neural_net(images_flat)
loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logits,labels = y))
train_op = tf.train.AdamOptimizer(learning_rate= 0.001).minimize(loss)
correct_pred = tf.argmax(logits,1)
accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32))
with tf.Session() as Sess:
Sess.run(tf.global_variables_initializer())
for i in range(270): #LOOPING HASIL RANGE-NYA
_,loss_val, acc = Sess.run([train_op,loss,accuracy],feed_dict={x:images30,y:labels})
if i%10==0:
print ("Loss : ", loss_val, "Accuracy : ", acc)
sample_indexes = random.sample(range(len(images30)), 10)
sample_images = [images30[i] for i in sample_indexes]
sample_labels = [labels[i] for i in sample_indexes]
predicted = Sess.run([correct_pred], feed_dict = {x:sample_images})[0]
string_labels = ["0","1","2","3","4"]
fig = plt.figure(figsize = (10,10))
for i in range(len(sample_images)):
truth = sample_labels[i]
prediction = predicted[i]
plt.subplot(5,2,1 + i)
plt.axis('off')
color = 'green' if truth == prediction else 'red'
plt.text(40,10,"Truth : {0} \n Predicted : {1}".
format(truth,prediction),fontsize=12,color=color)
plt.imshow(sample_images[i])
plt.show()
Tidak ada komentar:
Posting Komentar