Menu - Pages

Selasa, 14 November 2017

Membuat Aplikasi Kecerdasan Buatan

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()








Untuk data set dan penjelasan bisa di download di sini
Download Disini 

Tidak ada komentar:

Posting Komentar