1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import numpy as np
def identity_func(x):
return x
def softmax(a):
c= np.max(a)
sum_exp_a = np.sum(exp_a)
y = exp_a/sum_exp_a
return y
y= softmax(a)
print(y)
print(np.sum(y))
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# coding: utf-8
import sys, os
sys.path.append(os.pardir) # 부모 디렉터리의 파일을 가져올 수 있도록 설정
import numpy as np
import pickle
from common.functions import sigmoid, softmax
def get_data():
(x_train, t_train), (x_test, t_test) = load_mnist(normalize=True, flatten=True, one_hot_label=False)
return x_test, t_test
def init_network():
network = pickle.load(f)
return network
def predict(network, x):
W1, W2, W3 = network['W1'], network['W2'], network['W3']
b1, b2, b3 = network['b1'], network['b2'], network['b3']
z1 = sigmoid(a1)
z2 = sigmoid(a2)
y = softmax(a3)
return y
x, t = get_data()
network = init_network()
accuracy_cnt = 0
# for문을 돌며 x에 저장된 이미지 데이터를 1장씩 꺼내 predict()호출
# predict()는 각 레이블의 확률을 넘파이 배열로 변환
# 해당 이미지가 0일 확률이 0.1 1이 확률이 0.3 식으로 [0.1, 0.3, 0.2,.....]배열 반환
# p == t[i] 를 통해 정답레이블과 비교하여 맞힌 숫자를 ++ 하고 전체 이미지 숫자로 나눠 정확도를 구한다.
for i in range(len(x)):
y = predict(network, x[i])
if p == t[i]:
accuracy_cnt += 1
print("Accuracy:" + str(float(accuracy_cnt) / len(x)))
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
# coding: utf-8
import sys, os
import numpy as np
import pickle
from common.functions import sigmoid, softmax
def get_data():
(x_train, t_train), (x_test, t_test) = load_mnist(normalize=True, flatten=True, one_hot_label=False)
return x_test, t_test
def init_network():
network = pickle.load(f)
return network
def predict(network, x):
w1, w2, w3 = network['W1'], network['W2'], network['W3']
b1, b2, b3 = network['b1'], network['b2'], network['b3']
z1 = sigmoid(a1)
z2 = sigmoid(a2)
y = softmax(a3)
return y
x, t = get_data()
network = init_network()
batch_size = 100 # 배치 크기
accuracy_cnt = 0
# range(start,end,step) start부터 end-1까지 step간격으로 증가하는 리스트
# x_batch = x[i:i+batch_size] => 100장씩 묶기
for i in range(0, len(x), batch_size):
x_batch = x[i:i+batch_size]
y_batch = predict(network, x_batch)
print("Accuracy:" + str(float(accuracy_cnt) / len(x)))
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
'딥러닝 기반 영상인식 개발 전문가 과정 > C언어, Python, 자료구조' 카테고리의 다른 글
7월 25일 파이썬/머신러닝 (0) | 2019.07.25 |
---|---|
7월24일 파이썬 텐서플로우 기반 머신러닝 기초 (0) | 2019.07.24 |
7월23일 파이썬 str메서드, 오버로딩, jupyter, Pandas (0) | 2019.07.23 |
7월22일 파이썬 코드 (0) | 2019.07.22 |
7월22일 파이썬 날짜와 시간, 모듈, 클래스 (0) | 2019.07.22 |