DL之CNN:利用自定义DeepConvNet【7+1】算法对mnist数据集训练实现手写数字识别并预测(超过99%)
目录
输出结果
设计思路
核心代码
输出结果
准确度都在99%以上
1、出错记录
col = np.zeros((N, C, filter_h, filter_w, out_h, out_w))
MemoryError
设计思路
1、网络结构
2、总体框架
核心代码
class DeepConvNet:def __init__(self, input_dim=(1, 28, 28),conv_param_1 = {'filter_num':16, 'filter_size':3, 'pad':1, 'stride':1},conv_param_2 = {'filter_num':16, 'filter_size':3, 'pad':1, 'stride':1},conv_param_3 = {'filter_num':32, 'filter_size':3, 'pad':1, 'stride':1},conv_param_4 = {'filter_num':32, 'filter_size':3, 'pad':2, 'stride':1},conv_param_5 = {'filter_num':64, 'filter_size':3, 'pad':1, 'stride':1},conv_param_6 = {'filter_num':64, 'filter_size':3, 'pad':1, 'stride':1},hidden_size=50, output_size=10):# 初始化权重===========……def predict(self, x, train_flg=False):……def loss(self, x, t): ……return acc / x.shape[0]def gradient(self, x, t):# forwardself.loss(x, t)# backward……return gradsdef save_params(self, file_name="params.pkl"):……def load_params(self, file_name="params.pkl"):……for i, layer_idx in enumerate((0, 2, 5, 7, 10, 12, 15, 18)):self.layers[layer_idx].W = self.params['W' + str(i+1)]self.layers[layer_idx].b = self.params['b' + str(i+1)]