Assignment 3 A.I.

File H5nya(6GB boii)

accuracy masih aneh, training data dapetnya 100%acc, test data nyangkut 50.00%

import h5py
import numpy as np
from keras.utils.io_utils import HDF5Matrix
import keras
from keras.models import Model
from keras.layers import Input
from keras.layers import Dense
from keras.layers import Conv2D
from keras.layers import MaxPooling2D
from keras.layers import Flatten
from keras.layers import Dropout
from keras import optimizers


def nz_pixel(data):
 return data/255-.5
def generate_tr():
 i=0
 X_d = HDF5Matrix('DDSM_RGB-001.h5', 'features', normalizer=nz_pixel)
 y_d = HDF5Matrix('DDSM_RGB-001.h5', 'targets')
 size = 2000
 while 1:
  X_s = X_d[i%size].reshape(*X_d[i%size].shape[:1], -1, *X_d[i%size].shape[-2:])
  X_s = X_s.reshape(1, 224, 224, 12)
  y_s = y_d[i%size].reshape(1, 4)
  yield(X_s, y_s)
  i+=1

def generate_te():
 i=0
 X_d = HDF5Matrix('DDSM_RGB-001.h5', 'features', normalizer=nz_pixel)
 y_d = HDF5Matrix('DDSM_RGB-001.h5', 'targets')
 size = 605
 while 1:
  X_s = X_d[2000+(i%size)].reshape(*X_d[2000+(i%size)].shape[:1], -1, *X_d[i%size].shape[-2:])
  X_s = X_s.reshape(1, 224, 224, 12)
  y_s = y_d[2000+(i%size)].reshape(1, 4)
  yield(X_s, y_s)
  i+=1

#Step 4: Design CNN Architecture
inp = Input(shape=(224,224,12))
i = Conv2D(32, kernel_size=(3,3), activation='relu', name='conv1')(inp)
i = MaxPooling2D(pool_size=(2,2))(i)
i = Conv2D(32, kernel_size=(3,3), activation='relu', name='conv2')(i)   
i = MaxPooling2D(pool_size=(2,2))(i)
i = Conv2D(32, kernel_size=(3,3), activation='relu', name='conv3')(i)   
i = MaxPooling2D(pool_size=(2,2))(i)
i = Conv2D(32, kernel_size=(3,3), activation='relu', name='conv4')(i)   
i = MaxPooling2D(pool_size=(2,2))(i)
i = Flatten()(i)
i = Dense(128, activation='relu', name='dense_1')(i) 
predictions = Dense(4, activation='sigmoid', name='dense_last')(i)   
model = Model(inputs=inp, outputs=predictions)
#Step 5: Compile and Train The Model
batch_size=32
admn = keras.optimizers.Adam(lr=0.0001, beta_1=0.9, beta_2=0.999, epsilon=None, decay=0.0, amsgrad=False)
model.compile(optimizer=admn, loss='binary_crossentropy', metrics=['accuracy'])
history = model.fit_generator(generate_tr(), 2000//batch_size, 30, shuffle=True)
#Step 6: Print Result
scores = model.evaluate_generator(generate_te(), 32)
print("Test Accuracy: %.2f%%" % (scores[1]*100))

Comments

Popular posts from this blog

materi dasar deep learning