''' np.random.seed(0) sgd_test(Sequential([Linear(2,3), Tanh(), Linear(3,2), SoftMax()], NLL()), test_1_values) ''' # TEST 2: sgd_test for ReLU activation and SoftMax output ''' np.random.seed(0) sgd_test(Sequential([Linear(2,3), ReLU(), Linear(3,2), SoftMax()], NLL()), test_2_values) ''' ###################################################################### # TEST 3: you should achieve 100% accuracy on the hard dataset (note # that we provided plotting code) ''' X, Y = hard() nn = Sequential([Linear(2, 10), ReLU(), Linear(10, 10), ReLU(), Linear(10,2), SoftMax()], NLL()) disp.classify(X, Y, nn, it=100000) ''' # TEST 4: try calling these methods that train with a simple dataset def nn_tanh_test(): np.random.seed(0) nn = Sequential([Linear(2, 3), Tanh(), Linear(3, 2), SoftMax()], NLL()) X, Y = super_simple_separable() nn.sgd(X, Y, iters=1, lrate=0.005) return [ np.vstack([nn.modules[0].W, nn.modules[0].W0.T]).tolist(), np.vstack([nn.modules[2].W, nn.modules[2].W0.T]).tolist()
# TEST 2: sgd_test for ReLU activation and SoftMax output np.random.seed(0) sgd_test(Sequential([Linear(2,3), ReLU(), Linear(3,2), SoftMax()], NLL()), test_2_values) ###################################################################### # TEST 3: you should achieve 100% accuracy on the hard dataset (note # that we provided plotting code) X, Y = hard() nn = Sequential([Linear(2, 10), ReLU(), Linear(10, 10), ReLU(), Linear(10,2), SoftMax()], NLL()) disp.classify(X, Y, nn, it=100000) # TEST 4: try calling these methods that train with a simple dataset def nn_tanh_test(): np.random.seed(0) nn = Sequential([Linear(2, 3), Tanh(), Linear(3, 2), SoftMax()], NLL()) X, Y = super_simple_separable() nn.sgd(X, Y, iters=1, lrate=0.005) return [np.vstack([nn.modules[0].W, nn.modules[0].W0.T]).tolist(), np.vstack([nn.modules[2].W, nn.modules[2].W0.T]).tolist()] def nn_relu_test(): np.random.seed(0) nn = Sequential([Linear(2, 3), ReLU(), Linear(3, 2), SoftMax()], NLL())