# Check size # print('* Params Size') # print(mpl.size) # print(t1.shape, t2.shape) print('') print('* Load debugging weights') print(mpl.size) # set initial weight # mpl.params[0:(si + 1) * sh] = t1.reshape(((si + 1) * sh,)) # mpl.params[(si + 1) * sh:(sh + 1) * so + (si + 1) * sh] = t2.reshape((so * (sh + 1),)) # compute cost print('* Cost Function: ' + str(mpl.cost_function(mpl.params)) + ' ' + str(2.10095)) print('Diff: ' + str(mpl.cost_function(mpl.params) - 2.10095)) print('') # compute regularized cost print('* Regularized Cost Function: ' + str(mpl.cost_function(mpl.params)) + ' ' + str(2.25231)) print('Diff: ' + str(mpl.cost_function(mpl.params) - 2.25231)) print('') print('* Gradient Checking') # g = mpl.usual_grad(mpl.params) # mpl.gradient(mpl.params, 0) g = mpl.gradient(mpl.params) num = mpl.numerical_gradient(mpl.params) gr = mpl.gradient(mpl.params)
#0 0.3155 99.87 23.8 48.38 11.42 for s in struct: Options["structure"]["hidden"] = s Options['regularization'] = 1.0 info = str() tp = Perceptron(train_set['y'], train_set['x'], Options) print('\nStructure: ' + str(s) + '\tparams: ' + str(len(tp.params))) print('idx cost acc acc norm time') print('-----------------------------------------') for i in range(0, test): mpl = Perceptron(train_set['y'], train_set['x'], Options) lb = lambda: mpl.lbfgs(ite_table[3]) time = tm.timeit(lb, number=1) h1 = mpl.predict(train_set['x'], mpl.params) h2 = mpl.predict(valid_set['x'], mpl.params) info = str(i) + '\t' + \ str(mpl.cost_function(mpl.params))[0:6] + '\t' +\ str(mpl.accuracy(h1, train_set['yl'], 1))[0:5] + '\t' +\ str(mpl.accuracy(h2, valid_set['yl'], 1))[0:5] + '\t' +\ str(np.linalg.norm(mpl.params))[0:5] + '\t' +\ str(time)[0:5] + str('') print(info)