In [2]:
import os
import time

import numpy as np
import h5py
import matplotlib.pyplot as plt
import scipy
from PIL import Image
from scipy import ndimage
import cv2

from dnn_app_utils_v2 import *

%matplotlib inline
plt.rcParams['figure.figsize'] = (5.0, 4.0) # set default size of plots
plt.rcParams['image.interpolation'] = 'nearest'
plt.rcParams['image.cmap'] = 'gray'

%load_ext autoreload
%autoreload 2

In [2]:
# 載入訓練好的權重
parameters_filePath = os.path.join("car_vehicle_automobile_truck_van_lorry", "dataset", "car_dnn_9_Layers_64x8_r2_i1000_i3000.npy")
npload = np.load(parameters_filePath)
parameters = npload.item()

In [3]:
del npload

In [4]:
# 測試

parameters.keys()


Out[4]:
dict_keys(['b9', 'W2', 'b1', 'W4', 'b6', 'W1', 'b8', 'b7', 'W3', 'b4', 'W7', 'W8', 'b3', 'W6', 'W9', 'b2', 'W5', 'b5'])

In [5]:
# 測試
parameters['W1']


Out[5]:
array([[-0.00422118, -0.0069997 ,  0.01492742, ..., -0.00465342,
         0.00706065,  0.00433081],
       [ 0.01753486, -0.00735567, -0.011386  , ...,  0.00068784,
         0.00278097,  0.00087216],
       [ 0.02812929,  0.00442475,  0.0063916 , ...,  0.009989  ,
        -0.00502034, -0.00624979],
       ..., 
       [ 0.00086493,  0.02135911, -0.0010074 , ...,  0.01862947,
         0.00528396,  0.01091232],
       [-0.00456493, -0.00851523,  0.02161286, ...,  0.00824753,
         0.00169157,  0.00357932],
       [ 0.01303725,  0.0308436 ,  0.00520486, ..., -0.01025449,
        -0.0077063 , -0.00686169]])

In [17]:
my_label_y = [0] # the true class of your image (1 -> car, 0 -> non-car)
num_px = 64

dirPath = os.path.join("car_vehicle_automobile_truck_van_lorry", "test_dnn_0") # test_dnn_0 test_dnn_images
listDir = os.listdir(dirPath)
listfileName = []
listCost = []
for image in listDir:
    test_filePath = os.path.join(dirPath, image)
    if os.path.isfile(test_filePath):
        image_load = cv2.imread(test_filePath)
        image_load = cv2.cvtColor(image_load, cv2.COLOR_BGR2RGB)
        my_image = cv2.resize(image_load, (num_px, num_px), interpolation=cv2.INTER_LINEAR)
        my_image = my_image.reshape(num_px * num_px * 3, 1)
        my_image = my_image/255.
        my_predicted_image = predict(my_image, my_label_y, parameters)
        listfileName.append(image)
        listCost.append(my_predicted_image.item())
        #plt.imshow(image)
        #print ("y = " + str(np.squeeze(my_predicted_image)) )
    else:
        print("找不到 {} 檔案!!".format(my_image))


[[ 0.00203297]]
Accuracy: 1.0
[[ 0.39502116]]
Accuracy: 1.0
[[ 0.00757361]]
Accuracy: 1.0
[[ 0.67422474]]
Accuracy: 0.0
[[ 0.00152467]]
Accuracy: 1.0
[[ 0.07252988]]
Accuracy: 1.0
[[ 0.00052359]]
Accuracy: 1.0
[[ 0.34851573]]
Accuracy: 1.0
[[ 0.02442705]]
Accuracy: 1.0
[[ 0.00076853]]
Accuracy: 1.0
[[ 0.00109338]]
Accuracy: 1.0
[[ 0.14514127]]
Accuracy: 1.0
[[ 0.0360386]]
Accuracy: 1.0
[[ 0.99517813]]
Accuracy: 0.0
[[ 0.01126296]]
Accuracy: 1.0
[[  4.56244150e-05]]
Accuracy: 1.0
[[ 0.01784812]]
Accuracy: 1.0
[[ 0.00513645]]
Accuracy: 1.0
[[ 0.16025221]]
Accuracy: 1.0
[[ 0.00899995]]
Accuracy: 1.0
[[ 0.00181517]]
Accuracy: 1.0
[[ 0.00979624]]
Accuracy: 1.0
[[ 0.0011586]]
Accuracy: 1.0
[[ 0.01071873]]
Accuracy: 1.0
[[ 0.99437728]]
Accuracy: 0.0
[[ 0.00578313]]
Accuracy: 1.0
[[ 0.00137942]]
Accuracy: 1.0
[[ 0.66129346]]
Accuracy: 0.0
[[  4.49007956e-06]]
Accuracy: 1.0
[[ 0.00034313]]
Accuracy: 1.0
[[ 0.0006353]]
Accuracy: 1.0
[[ 0.00437524]]
Accuracy: 1.0
[[ 0.06656822]]
Accuracy: 1.0
[[ 0.0668536]]
Accuracy: 1.0
[[ 0.99501076]]
Accuracy: 0.0
[[ 0.01140022]]
Accuracy: 1.0
[[ 0.00586688]]
Accuracy: 1.0
[[ 0.00265745]]
Accuracy: 1.0
[[ 0.00017786]]
Accuracy: 1.0
[[ 0.01377335]]
Accuracy: 1.0
[[ 0.00608102]]
Accuracy: 1.0
[[ 0.00060521]]
Accuracy: 1.0
[[ 0.0079722]]
Accuracy: 1.0
[[ 0.0006774]]
Accuracy: 1.0
[[ 0.00041178]]
Accuracy: 1.0
[[  4.45271975e-05]]
Accuracy: 1.0
[[ 0.06104129]]
Accuracy: 1.0
[[ 0.00014297]]
Accuracy: 1.0
[[ 0.01058055]]
Accuracy: 1.0
[[ 0.05080698]]
Accuracy: 1.0
[[ 0.88590901]]
Accuracy: 0.0
[[ 0.00312192]]
Accuracy: 1.0
[[ 0.03748428]]
Accuracy: 1.0
[[ 0.00013897]]
Accuracy: 1.0
[[ 0.03147946]]
Accuracy: 1.0
[[ 0.00138083]]
Accuracy: 1.0
[[ 0.00291744]]
Accuracy: 1.0
[[ 0.00076605]]
Accuracy: 1.0
[[ 0.00025392]]
Accuracy: 1.0
[[ 0.06756017]]
Accuracy: 1.0
[[ 0.00345635]]
Accuracy: 1.0
[[ 0.00204147]]
Accuracy: 1.0
[[ 0.96646945]]
Accuracy: 0.0
[[ 0.00193928]]
Accuracy: 1.0
[[ 0.00179253]]
Accuracy: 1.0
[[  8.21927973e-06]]
Accuracy: 1.0
[[ 0.03271129]]
Accuracy: 1.0
[[ 0.000305]]
Accuracy: 1.0
[[ 0.41387258]]
Accuracy: 1.0
[[ 0.00130453]]
Accuracy: 1.0

In [18]:
sum = 0
for i in range(len(listCost)):
    print("file:{:18} \t Accuray:{} ".format(listfileName[i], listCost[i]))
    sum += listCost[i]


file:n00483313_12566.jpg 	 Accuray:0.0 
file:n00454493_7462.jpg 	 Accuray:0.0 
file:n01315805_2023.jpg 	 Accuray:0.0 
file:n00476389_6639.jpg 	 Accuray:1.0 
file:n00450866_2510.jpg 	 Accuray:0.0 
file:n00470682_6690.jpg 	 Accuray:0.0 
file:n01317916_9409.jpg 	 Accuray:0.0 
file:n00452152_9080.jpg 	 Accuray:0.0 
file:n00455173_12392.jpg 	 Accuray:0.0 
file:n00466377_9838.jpg 	 Accuray:0.0 
file:n00475014_4105.jpg 	 Accuray:0.0 
file:n00470830_7355.jpg 	 Accuray:0.0 
file:n01317089_11994.jpg 	 Accuray:0.0 
file:n00523513_28158.jpg 	 Accuray:1.0 
file:n00479616_8941.jpg 	 Accuray:0.0 
file:n01318894_8149.jpg 	 Accuray:0.0 
file:n01317813_9764.jpg 	 Accuray:0.0 
file:n00453126_9121.jpg 	 Accuray:0.0 
file:n00466273_5544.jpg 	 Accuray:0.0 
file:n00482122_4918.jpg 	 Accuray:0.0 
file:n00466524_9747.jpg 	 Accuray:0.0 
file:n01315805_4111.jpg 	 Accuray:0.0 
file:n00480366_12334.jpg 	 Accuray:0.0 
file:n00464478_11552.jpg 	 Accuray:0.0 
file:n00887544_1391.jpg 	 Accuray:1.0 
file:n00468480_4575.jpg 	 Accuray:0.0 
file:n01319467_17887.jpg 	 Accuray:0.0 
file:n00453126_131.jpg  	 Accuray:1.0 
file:n00482298_14766.jpg 	 Accuray:0.0 
file:n00480366_13507.jpg 	 Accuray:0.0 
file:n00466630_153.jpg  	 Accuray:0.0 
file:n01319001_13193.jpg 	 Accuray:0.0 
file:n01314781_1995.jpg 	 Accuray:0.0 
file:n00523513_26401.jpg 	 Accuray:0.0 
file:n01318894_15997.jpg 	 Accuray:1.0 
file:n00463246_192.jpg  	 Accuray:0.0 
file:n00464478_13619.jpg 	 Accuray:0.0 
file:n01315213_1774.jpg 	 Accuray:0.0 
file:n00825773_5491.jpg 	 Accuray:0.0 
file:n00480508_6143.jpg 	 Accuray:0.0 
file:n00466630_6471.jpg 	 Accuray:0.0 
file:n00454395_11619.jpg 	 Accuray:0.0 
file:n01317916_11016.jpg 	 Accuray:0.0 
file:n00466273_5624.jpg 	 Accuray:0.0 
file:n00483205_2655.jpg 	 Accuray:0.0 
file:n00450998_17283.jpg 	 Accuray:0.0 
file:n00453126_7614.jpg 	 Accuray:0.0 
file:n01319467_15299.jpg 	 Accuray:0.0 
file:n00454237_11629.jpg 	 Accuray:0.0 
file:n00450070_4190.jpg 	 Accuray:0.0 
file:n01315213_2274.jpg 	 Accuray:1.0 
file:n00466273_6516.jpg 	 Accuray:0.0 
file:n00482298_7517.jpg 	 Accuray:0.0 
file:n01317294_5583.jpg 	 Accuray:0.0 
file:n00449977_5027.jpg 	 Accuray:0.0 
file:n00450070_3913.jpg 	 Accuray:0.0 
file:n00466524_12520.jpg 	 Accuray:0.0 
file:n00475787_5841.jpg 	 Accuray:0.0 
file:n00476235_7861.jpg 	 Accuray:0.0 
file:n00467719_8383.jpg 	 Accuray:0.0 
file:n00474568_27599.jpg 	 Accuray:0.0 
file:n00479440_1530.jpg 	 Accuray:0.0 
file:n00476235_8391.jpg 	 Accuray:1.0 
file:n00475014_5039.jpg 	 Accuray:0.0 
file:n00523513_30377.jpg 	 Accuray:0.0 
file:n00475787_11580.jpg 	 Accuray:0.0 
file:n00475014_3881.jpg 	 Accuray:0.0 
file:n00475014_7005.jpg 	 Accuray:0.0 
file:n00453313_3107.jpg 	 Accuray:0.0 
file:n00467719_4494.jpg 	 Accuray:0.0 

In [19]:
sum / len(listAccuracy) # 1


Out[19]:
0.1

In [20]:
1 - (sum / len(listAccuracy)) # 0


Out[20]:
0.9

In [11]:
image = "Donald-Trump.jpg"
dirPath = os.path.join("car_vehicle_automobile_truck_van_lorry", "test_dnn_images") # test_dnn_0 test_dnn_images
my_label_y = [0] # the true class of your image (1 -> car, 0 -> non-car)
num_px = 64
test_filePath = os.path.join(dirPath, image)
if os.path.isfile(test_filePath):
    image_load = cv2.imread(test_filePath)
    image_load = cv2.cvtColor(image_load, cv2.COLOR_BGR2RGB)
    my_image = cv2.resize(image_load, (num_px, num_px), interpolation=cv2.INTER_LINEAR)
    my_image = my_image.reshape(num_px * num_px * 3, 1)
    my_image = my_image/255.
    my_predicted_image = predict(my_image, my_label_y, parameters)
    plt.imshow(image_load)
    print ("y = " + str(np.squeeze(my_predicted_image)) )
else:
    print("找不到 {} 檔案!!".format(image))


[[ 0.00012217]]
Accuracy: 0.0
y = 0.0

In [4]:
with open(os.path.join("car_vehicle_automobile_truck_van_lorry", "dataset", "car_dnn_9_Layers_64x8_r2_i1000_i3000_costsList")) as f:
    readfile = f.readlines()
plt.plot(readfile)
plt.ylabel('cost')
plt.xlabel('iterations')
plt.savefig(filename=os.path.join("car_vehicle_automobile_truck_van_lorry", "dataset", "car_dnn_9_Layers_64x8_r2_i1000_i3000.png"))
plt.show()



In [ ]: