运行环境为Mac+python3.7
神经网络为3层,神经元个数分别为784,30,10,激活函数为sigmoid,损失函数为二次方,优化器为梯度下降算法,学习率为3.0,达到的准确率为接近96%
处理输入,这里的数据集为mnist.pkl.gz
import pickle
import gzip
import numpy as np
def load_data():
file = gzip.open('mnist.pkl.gz', 'rb')
training_data, validation_data, test_data = pickle.load(file, encoding='bytes')
file.close()
return training_data, validation_data, test_data
def load_data_wrapper():
training_data, validation_data, test_data = load_data()
training_images = [np.reshape(x, (784, 1)) for x in training_data[0]] # 784个像素点
training_labels = [vectorized_label(x) for x in training_data[1]]
training_data = zip(training_images, training_labels)
validation_images = [np.reshape(x, (784, 1)) for x in validation_data[0]]
validation_data = zip(validation_images, validation_data[1])
test_images = [np.reshape(x, (784, 1)) for x in test_data[0]]
test_data = zip(test_images, test_data[1])
return training_data, validation_data, test_data
def vectorized_label(x):
l = np.zeros((10, 1))
l[x] = 1.0
return l
def