鱼书P70代码 import pickle import sys, os import numpy as np sys.path.append(os.pardir) from dataset.mnist import load_mnist from PIL import Image (x_train, t_train), (x_test, t_test) load_mnist(flattenTrue, normalizeFalse) # flattenTrue:把28*28的二维图片拉平成一维数组长度784 # normalizeFalse:不对像素值做归一化如果设为True会缩放到0~1之间 print(x_train.shape, t_train.shape) print(x_test.shape, t_test.shape) def sigmoid(x): return 1 / (1 np.exp(-x)) def softmax(x): cnp.max(x) exp_xnp.exp(x-c) sum_exp_anp.sum(exp_x) return exp_x/sum_exp_a def get_data(): (x_train, t_train), (x_test, t_test) load_mnist(flattenTrue, normalizeTrue, one_hot_labelFalse) return x_test, t_test def init_network(): with open(sample_weight.pkl, rb) as f: 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] a1 np.dot(x, W1) b1 z1 sigmoid(a1) a2 np.dot(z1, W2) b2 z2 sigmoid(a2) a3 np.dot(z2, W3) b3 y softmax(a3) return y def img_show(img): pil_img Image.fromarray(np.uint8(img)) pil_img.show() (x_train, t_train), (x_test, t_test) load_mnist(flattenTrue, normalizeFalse) img x_train[0] label t_train[0] print(label) print(img.shape) img img.reshape(28, 28) print(img.shape) # img_show(img) #显示图片 x, t get_data() network init_network() accuracy_cnt 0 for i in range(len(x)): y predict(network, x[i]) p np.argmax(y) if p t[i]: accuracy_cnt 1 print(Accuracy: str(float(accuracy_cnt) / len(x)))代码格式化快捷键CtrlAltL