from nnet import NNet from verbosePrint import vprint import verbosePrint nn = NNet(sizes=[12, 22, 4], bias=True) nn.setActivations(['tanh', 'sigmoid']) verbosePrint.vIteration = -1 verbosePrint.stage = '' cycles = 20 report = max(1, cycles / 10) checkupParams = (inputData, targetData, inputTraining, 25) if cycles > 0: nn.checkup(*checkupParams) for iteration in range(cycles + 1): vprint(iteration, '~~~~~~~~~~~ Iteration %d ~~~~~~~~~~~' % iteration) combinedError = 0 for row_index in range(len(targetTraining)): datain = inputTraining[row_index:row_index + 1] goal_prediction = targetTraining[row_index:row_index + 1] prediction = nn.fire(datain) # print('Prediction:' + str(prediction)) vprint(iteration, nn) error = (goal_prediction - prediction)**2 combinedError += error nn.learn(datain, goal_prediction)
inputTraining = inputData targetTraining = targetData # nn = NNet(sizes=[5, 3], bias=True) nn = NNet(sizes=[6, 12, 2], bias=True) # nn = NNet([[[-0.829638, 0.164111, 0.398885], # [-0.603684, -0.603331, -0.819179], # [-0.080592, -0.386044, -0.931615], # [0.762514, -0.142887, -0.737862], # [0.175430, 0.790112, -0.267367], # [-0.732674, -0.825474, 0.232357]]], bias=True) # ]]) nn.setActivations(['relu', 'linear']) nn.setVerbose([]) nn.checkup(inputData, targetData) verbosePrint.vIteration = -1 verbosePrint.stage = '' cycles = 1000 report = cycles / 10 for iteration in range(cycles + 1): vprint(iteration, '~~~~~~~~~~~ Iteration %d ~~~~~~~~~~~' % iteration) combinedError = 0 for row_index in range(len(targetTraining)): datain = inputTraining[row_index:row_index + 1] goal_prediction = targetTraining[row_index:row_index + 1] prediction = nn.fire(datain) # print('Prediction:' + str(prediction))
import sys from netExamples.grokking.mnist import \ images, labels, test_images, test_labels from nnet import NNet np.random.seed(1) iterations = 351 nn = NNet(sizes=[784, 40, 10]) nn.setActivations(['relu', 'linear']) nn.setAlpha(0.005) nn.scale(0.1) nn.fire(images[0:1]) nn.checkup(images[0:1], labels[0:1]) # vprint(0, nn) for j in range(iterations): error, correct_cnt = (0.0, 0) for i in range(len(images)): # vprint(i, nn, quit=True) prediction = nn.learn(images[i:i + 1], labels[i:i + 1]) # vprint(i, nn, suffix='b', quit=True) error += np.sum((labels[i:i + 1] - prediction)**2) correct_cnt += int(np.argmax(prediction) == \ np.argmax(labels[i:i + 1])) sys.stdout.write("\r I:" + str(j) + \ " Train-Err:" + str(error / float(len(images)))[0:5] + \