own_data_cnn_implementation_keras
own_data_cnn_implementation_keras copied to clipboard
How to give a separate test folder for testing?
Kindly explain your answer. I did this but I am not sure if it's correct.
PATH = os.getcwd()
# Define data path
data_path2 = r'C:\Users\Admin\test'
data_dir_list_t = os.listdir(data_path2)
img_rows=64
img_cols=64
num_channel=3
num_epoch= 40
# Define the number of classes
num_classes = 2
img_data_list_t=[]
for dataset in data_dir_list_t:
img_list_t=os.listdir(data_path2 +'/'+ dataset)
print ('Loaded the images of dataset-'+'{}\n'.format(dataset))
for img in img_list_t:
input_img_t=cv2.imread(data_path2 + '/'+ dataset + '/'+ img )
#input_img=cv2.cvtColor(input_img, cv2.COLOR_BGR2GRAY)
input_img_t_resize=cv2.resize(input_img,(64,64))
img_data_list_t.append(input_img_t_resize)
img_data1 = np.array(img_data_list_t)
img_data1 = img_data1.astype('float32')
img_data1 /= 255
print (img_data1.shape)
if num_channel==1:
if K.image_dim_ordering()=='th':
img_data1= np.expand_dims(img_data1, axis=1)
print (img_data1.shape)
else:
img_data1= np.expand_dims(img_data1, axis=4)
print (img_data1.shape)
else:
if K.image_dim_ordering()=='th':
img_data1=np.rollaxis(img_data1,3,1)
print (img_data1.shape)
#%%
USE_SKLEARN_PREPROCESSING=False
if USE_SKLEARN_PREPROCESSING:
# using sklearn for preprocessing
from sklearn import preprocessing
def image_to_feature_vector_t(image, size=(64,64)):
# resize the image to a fixed size, then flatten the image into
# a list of raw pixel intensities
return cv2.resize(image, size).flatten()
img_data_list_t=[]
for dataset in data_dir_list:
img_list_t=os.listdir(data_path2 +'/'+ dataset)
print ('Loaded the images of dataset-'+'{}\n'.format(dataset))
for img in img_list_t:
input_img=cv2.imread(data_path2 + '/'+ dataset + '/'+ img )
#input_img=cv2.cvtColor(input_img, cv2.COLOR_BGR2GRAY)
input_img_flatten=image_to_feature_vector_t(input_img,(64,64))
img_data_list_t.append(input_img_flatten)
img_data1 = np.array(img_data_list_t)
img_data1 = img_data1.astype('float32')
print (img_data1.shape)
img_data1_scaled = preprocessing.scale(img_data1)
print (img_data1_scaled.shape)
print (np.mean(img_data1_scaled))
print (np.std(img_data1_scaled))
print (img_data1_scaled.mean(axis=0))
print (img_data1_scaled.std(axis=0))
if K.image_dim_ordering()=='th':
img_data1_scaled=img_data1_scaled.reshape(img_data1.shape[0],num_channel,img_rows,img_cols)
print (img_data1_scaled.shape)
else:
img_data1_scaled=img_data1_scaled.reshape(img_data1.shape[0],img_rows,img_cols,num_channel)
print (img_data1_scaled.shape)
if K.image_dim_ordering()=='th':
img_data1_scaled=img_data1_scaled.reshape(img_data1.shape[0],num_channel,img_rows,img_cols)
print (img_data1_scaled.shape)
else:
img_data1_scaled=img_data1_scaled.reshape(img_data1.shape[0],img_rows,img_cols,num_channel)
print (img_data1_scaled.shape)
if USE_SKLEARN_PREPROCESSING:
img_data1=img_data1_scaled
#%%
# Assigning Labels
# Define the number of classes
num_classes_t = 2
num_of_samples = img_data1.shape[0]
labels_t = np.ones((num_of_samples,),dtype='int64')
labels_t[0:40]=0
labels_t[40:]=1
#labels[404:606]=2
#labels[606:]=3
names = ['cats',' dogs']
# convert class labels to on-hot encoding
test_lbs = np_utils.to_categorical(labels_t, num_classes_t)
#Shuffle the dataset
x_test_t, y_test_t = shuffle(img_data1, test_lbs, random_state=2)
# Split the dataset
#X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=2)
#%%
# Evaluating the model
score = model.evaluate(x_test_t, y_test_t, batch_size=10)
print('Test Loss:', score[0])
print('Test accuracy:', score[1])
test_image = X_test[0:1]
print (test_image.shape)```...