def output(part_id): # Random Test Cases X = np.c_[np.ones(10), np.sin(np.arange(1, 15, 1.5)), np.cos(np.arange(1, 15, 1.5))] y = np.sin(np.arange(1, 31, 3)) Xval = np.c_[np.ones(10), np.sin(np.arange(0, 14, 1.5)), np.cos(np.arange(0, 14, 1.5))] yval = np.sin(range(1, 11)) fname = srcs[part_id - 1].rsplit('.', 1)[0] mod = __import__(fname, fromlist=[fname], level=0) func = getattr(mod, fname) if part_id == 1: J, _ = func(X, y, np.array([0.1, 0.2, 0.3]), 0.5) return sprintf('%0.5f', J) elif part_id == 2: _, grad = func(X, y, np.array([0.1, 0.2, 0.3]), 0.5) return sprintf('%0.5f', grad) elif part_id == 3: error_train, error_val = func(X, y, Xval, yval, 1) return sprintf('%0.5f', np.r_[error_train, error_val]) elif part_id == 4: X_poly = func(X[1].reshape(-1, 1), 8) return sprintf('%0.5f', X_poly) elif part_id == 5: lambda_vec, error_train, error_val = func(X, y, Xval, yval) return sprintf('%0.5f', np.r_[lambda_vec, error_train, error_val])
def output(part_id): # Random Test Cases X = np.reshape(3.0*np.sin(np.linspace(1, 30, 30)), (3, 10), order='F') Xm = np.reshape(np.sin(np.linspace(1, 32, 32)), (16, 2), order='F')/5.0 ym = np.array(1 + np.mod(range(1,17),4)) t1 = np.sin(np.reshape(range(1,24,2), (4,3), order='F')) t2 = np.cos(np.reshape(range(1,40,2), (4,5), order='F')) t = np.hstack((t1.T.ravel(), t2.T.ravel())) fname = srcs[part_id-1].rsplit('.',1)[0] mod = __import__(fname, fromlist=[fname], level=1) func = getattr(mod, fname) if part_id == 1: J, grad = func(t, 2.0, 4.0, 4.0, Xm, ym, 0.0) return sprintf('%0.5f ', J) elif part_id == 2: J, grad = func(t, 2.0, 4.0, 4.0, Xm, ym, 1.5) return sprintf('%0.5f ', J) elif part_id == 3: return sprintf('%0.5f ', func(X)) elif part_id == 4: J, grad = func(t, 2, 4, 4, Xm, ym, 0) return sprintf('%0.5f ', np.hstack((J, grad)).tolist()) elif part_id == 5: J, grad = func(t, 2, 4, 4, Xm, ym, 1.5) return sprintf('%0.5f ', np.hstack((J, grad)).tolist())
def output(part_id): # Random Test Cases X = np.column_stack((np.ones(20), (np.exp(1) * np.sin(np.linspace(1, 20, 20))), (np.exp(0.5) * np.cos(np.linspace(1, 20, 20))))) y = np.sin(X[:,0] + X[:,1]) > 0 Xm = np.array([[-1,-1],[-1,-2],[-2,-1],[-2,-2],[1,1],[1,2],[2,1],[2,2],[-1,1], [-1,2],[-2,1],[-2,2],[1,-1],[1,-2],[-2,-1],[-2,-2]]).reshape((16,2)) ym = np.array([1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4]).reshape(16,1) t1 = np.sin(np.array(range(1,24,2)).reshape(3,4).T) t2 = np.cos(np.array(range(1,40,2)).reshape(5,4).T) fname = srcs[part_id-1].rsplit('.',1)[0] mod = __import__(fname, fromlist=[fname], level=1) func = getattr(mod, fname) if part_id == 1: J = lrCostFunction(np.array([0.25, 0.5, -0.5]), X, y, 0.1) grad = gradientFunctionReg(np.array([0.25, 0.5, -0.5]), X, y, 0.1) return sprintf('%0.5f ', np.hstack((J, grad)).tolist()) elif part_id == 2: return sprintf('%0.5f ', oneVsAll(Xm, ym, 4, 0.1)) elif part_id == 3: return sprintf('%0.5f ', predictOneVsAll(t1, Xm)) elif part_id == 4: return sprintf('%0.5f ', predict(t1, t2, Xm))
def output(part_id): # Random Test Cases X = np.column_stack((np.ones(10), (np.sin(np.arange(1, 16, 1.5))), (np.cos(np.arange(1, 16, 1.5))))) y = np.sin(np.arange(1, 30, 3)) Xval = np.column_stack((np.ones(10), (np.sin(np.arange(0, 14, 1.5))), (np.cos(np.arange(0, 14, 1.5))))) yval = np.sin(np.arange(1,11)) fname = srcs[part_id-1].rsplit('.',1)[0] mod = __import__(fname, fromlist=[fname], level=1) func = getattr(mod, fname) if part_id == 1: J, _ = func(X, y, np.array([0.1, 0.2, 0.3]), 0.5) return sprintf('%0.5f ', J) elif part_id == 2: _, grad = func(X, y, np.array([0.1, 0.2, 0.3]), 0.5) return sprintf('%0.5f ', grad) elif part_id == 3: error_train, error_val = func(X, y, Xval, yval, 1) return sprintf('%0.5f ', np.hstack((error_train, error_val))) elif part_id == 4: X_poly = func(X[1, :].T, 8) return sprintf('%0.5f ', X_poly) elif part_id == 5: lambda_vec, error_train, error_val = func(X, y, Xval, yval) return sprintf('%0.5f', np.hstack((lambda_vec, error_train, error_val)))
def output(part_id): # Random Test Cases x1 = np.sin(np.arange(1, 11)) x2 = np.cos(np.arange(1, 11)) ec = "the quick brown fox jumped over the lazy dog" wi = np.abs(np.round(x1 * 1863)) wi = np.hstack((wi, wi)) fname = srcs[part_id - 1].rsplit(".", 1)[0] mod = __import__(fname, fromlist=[fname], level=1) func = getattr(mod, fname) if part_id == 1: sim = func(x1, x2, 2) return sprintf("%0.5f ", sim) elif part_id == 2: data = scipy.io.loadmat("ex6data3.mat") X = data["X"] y = data["y"].flatten() Xval = data["Xval"] yval = data["yval"].flatten() C, sigma = func(X, y, Xval, yval) return sprintf("%0.5f ", np.hstack((C, sigma))) elif part_id == 3: word_indices = np.array(func(ec)) return sprintf("%d ", (word_indices + 1).tolist()) elif part_id == 4: x = func(wi) return sprintf("%d", x)
def output(part_id): # Random Test Cases X = np.sin(np.arange(1, 166)).reshape((11, 15)).T Z = np.cos(np.arange(1, 122)).reshape((11, 11)).T C = Z[:5, :] idx = (np.mod(np.arange(1, 16), 3)).T fname = srcs[part_id - 1].rsplit('.', 1)[0] mod = __import__(fname, fromlist=[fname], level=1) func = getattr(mod, fname) if part_id == 1: idx = func(X, C) return sprintf('%0.5f ', idx[1] + 1) elif part_id == 2: centroids = func(X, idx, 3) return sprintf('%0.5f ', centroids) elif part_id == 3: U, S, V = func(X) return sprintf('%0.5f ', abs(np.hstack( (U.T.flatten(), S.T.flatten())))) elif part_id == 4: X_proj = func(X, Z, 5) return sprintf('%0.5f ', X_proj.T.flatten()) elif part_id == 5: X_rec = func(X[:, :5], Z, 5) return sprintf('%0.5f ', X_rec.T.flatten())
def output(part_id): # Random Test Cases X = np.sin(np.arange(1,166)).reshape((11, 15)).T Z = np.cos(np.arange(1,122)).reshape((11, 11)).T C = Z[:5, :] idx = (np.mod(np.arange(1,16), 3)).T fname = srcs[part_id-1].rsplit('.',1)[0] mod = __import__(fname, fromlist=[fname], level=1) func = getattr(mod, fname) if part_id == 1: idx = func(X, C) return sprintf('%0.5f ', idx[1]+1) elif part_id == 2: centroids = func(X, idx, 3) return sprintf('%0.5f ', centroids) elif part_id == 3: U, S, V = func(X) return sprintf('%0.5f ', abs(np.hstack((U.T.flatten(), S.T.flatten())))) elif part_id == 4: X_proj = func(X, Z, 5) return sprintf('%0.5f ', X_proj.T.flatten()) elif part_id == 5: X_rec = func(X[:, :5], Z, 5) return sprintf('%0.5f ', X_rec.T.flatten())
def output(part_id): # Random Test Cases X = np.column_stack( (np.ones(20), (np.exp(1) * np.sin(np.linspace(1, 20, 20))), (np.exp(0.5) * np.cos(np.linspace(1, 20, 20))))) y = np.sin(X[:, 0] + X[:, 1]) > 0 Xm = np.array([[-1, -1], [-1, -2], [-2, -1], [-2, -2], [1, 1], [1, 2], [2, 1], [2, 2], [-1, 1], [-1, 2], [-2, 1], [-2, 2], [1, -1], [1, -2], [-2, -1], [-2, -2]]).reshape((16, 2)) ym = np.array([1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4]).reshape(16, 1) t1 = np.sin(np.array(range(1, 24, 2)).reshape(3, 4).T) t2 = np.cos(np.array(range(1, 40, 2)).reshape(5, 4).T) fname = srcs[part_id - 1].rsplit('.', 1)[0] mod = __import__(fname, fromlist=[fname], level=1) func = getattr(mod, fname) if part_id == 1: J = lrCostFunction(np.array([0.25, 0.5, -0.5]), X, y, 0.1) grad = gradientFunctionReg(np.array([0.25, 0.5, -0.5]), X, y, 0.1) return sprintf('%0.5f ', np.hstack((J, grad)).tolist()) elif part_id == 2: return sprintf('%0.5f ', oneVsAll(Xm, ym, 4, 0.1)) elif part_id == 3: return sprintf('%0.5f ', predictOneVsAll(t1, Xm)) elif part_id == 4: return sprintf('%0.5f ', predict(t1, t2, Xm))
def output(part_id): # Random Test Cases x1 = np.sin(np.arange(1, 11)) x2 = np.cos(np.arange(1, 11)) ec = 'the quick brown fox jumped over the lazy dog' wi = np.abs(np.round(x1 * 1863)) wi = np.hstack((wi, wi)).astype('int') if part_id == 1: sim = gaussianKernel(x1, x2, 2) return sprintf('%0.5f ', sim) elif part_id == 2: data = scipy.io.loadmat('data/ex6data3.mat') X = data['X'] y = data['y'].flatten() Xval = data['Xval'] yval = data['yval'].flatten() C, sigma = dataset3Params(X, y, Xval, yval) return sprintf('%0.5f ', np.hstack((C, sigma))) elif part_id == 3: word_indices = np.array(processEmail(ec)) return sprintf('%d', (word_indices + 1).tolist()) elif part_id == 4: x = emailFeatures(wi) return sprintf('%d ', x)
def output(part_id): # Random Test Cases X = np.column_stack((np.ones(10), (np.sin(np.arange(1, 16, 1.5))), (np.cos(np.arange(1, 16, 1.5))))) y = np.sin(np.arange(1, 30, 3)) Xval = np.column_stack((np.ones(10), (np.sin(np.arange(0, 14, 1.5))), (np.cos(np.arange(0, 14, 1.5))))) yval = np.sin(np.arange(1, 11)) lr = LinearRegression() lr.fit(X, y) if part_id == 1: J, _ = lr.costFunction(X, y, np.array([0.1, 0.2, 0.3]), 0.5) return sprintf('%0.5f ', J) elif part_id == 2: _, grad = lr.costFunction(X, y, np.array([0.1, 0.2, 0.3]), 0.5) return sprintf('%0.5f ', grad) elif part_id == 3: error_train, error_val = lr.learningCurve(X, y, Xval, yval, 1) return sprintf('%0.5f ', np.hstack((error_train, error_val))) elif part_id == 4: X_poly = lr.polyFeatures(X[1, :].T, 8) return sprintf('%0.5f ', X_poly) elif part_id == 5: lambda_vec, error_train, error_val = lr.validationCurve(X, y, Xval, yval) return sprintf('%0.5f', np.hstack((lambda_vec, error_train, error_val)))
def output(part_id): # Random Test Cases X = np.column_stack( (np.ones(10), (np.sin(np.arange(1, 16, 1.5))), (np.cos(np.arange(1, 16, 1.5))))) y = np.sin(np.arange(1, 30, 3)) Xval = np.column_stack( (np.ones(10), (np.sin(np.arange(0, 14, 1.5))), (np.cos(np.arange(0, 14, 1.5))))) yval = np.sin(np.arange(1, 11)) fname = srcs[part_id - 1].rsplit('.', 1)[0] mod = __import__(fname, fromlist=[fname], level=1) func = getattr(mod, fname) if part_id == 1: J, _ = func(X, y, np.array([0.1, 0.2, 0.3]), 0.5) return sprintf('%0.5f ', J) elif part_id == 2: _, grad = func(X, y, np.array([0.1, 0.2, 0.3]), 0.5) return sprintf('%0.5f ', grad) elif part_id == 3: error_train, error_val = func(X, y, Xval, yval, 1) return sprintf('%0.5f ', np.hstack((error_train, error_val))) elif part_id == 4: X_poly = func(X[1, :].T, 8) return sprintf('%0.5f ', X_poly) elif part_id == 5: lambda_vec, error_train, error_val = func(X, y, Xval, yval) return sprintf('%0.5f', np.hstack( (lambda_vec, error_train, error_val)))
def output(part_id): # Random Test Cases X = np.reshape(3.0 * np.sin(np.linspace(1, 30, 30)), (3, 10), order='F') Xm = np.reshape(np.sin(np.linspace(1, 32, 32)), (16, 2), order='F') / 5.0 ym = np.array(1 + np.mod(range(1, 17), 4)) t1 = np.sin(np.reshape(range(1, 24, 2), (4, 3), order='F')) t2 = np.cos(np.reshape(range(1, 40, 2), (4, 5), order='F')) net = Net(2, 4, 4, t1, t2) if part_id == 1: J, grad = net.costFunction(Xm, ym, 0.0) return sprintf('%0.5f ', J) elif part_id == 2: J, grad = net.costFunction(Xm, ym, 1.5) return sprintf('%0.5f ', J) elif part_id == 3: return sprintf('%0.5f ', net.sigmoidGradient(X)) elif part_id == 4: J, grad = net.costFunction(Xm, ym, 0) grads = np.concatenate([grad['W1'].T.ravel(), grad['W2'].T.ravel()]) return sprintf('%0.5f ', np.hstack((J, grads)).tolist()) elif part_id == 5: J, grad = net.costFunction(Xm, ym, 1.5) grads = np.concatenate([grad['W1'].T.ravel(), grad['W2'].T.ravel()]) return sprintf('%0.5f ', np.hstack((J, grads)).tolist())
def output(part_id): # Random Test Cases x1 = np.sin(np.arange(1, 11)) x2 = np.cos(np.arange(1, 11)) ec = 'the quick brown fox jumped over the lazy dog' wi = np.abs(np.round(x1 * 1863)) wi = np.hstack((wi, wi)) fname = srcs[part_id - 1].rsplit('.', 1)[0] mod = __import__(fname, fromlist=[fname], level=1) func = getattr(mod, fname) if part_id == 1: sim = func(x1, x2, 2) return sprintf('%0.5f ', sim) elif part_id == 2: data = scipy.io.loadmat('ex6data3.mat') X = data['X'] y = data['y'].flatten() Xval = data['Xval'] yval = data['yval'].flatten() C, sigma = func(X, y, Xval, yval) return sprintf('%0.5f ', np.hstack((C, sigma))) elif part_id == 3: word_indices = np.array(func(ec)) return sprintf('%d ', (word_indices + 1).tolist()) elif part_id == 4: x = func(wi) return sprintf('%d', x)
def output(part_id): fname = srcs[part_id - 1].rsplit('.', 1)[0] mod = __import__(fname, fromlist=[fname], level=0) func = getattr(mod, fname) # Random Test Cases X1 = np.c_[np.ones(20), np.exp(1) + np.exp(2) * np.arange(0.1, 2.1, 0.1)] y1 = X1[:, 1] + np.sin(X1[:, 0]) + np.cos(X1[:, 1]) X2 = np.c_[X1, X1[:, 1]**0.5, X1[:, 1]**0.25] y2 = y1**0.5 + y1 if part_id == 1: return sprintf('%0.5f ', func()) elif part_id == 2: return sprintf('%0.5f ', func(X1, y1, np.array([0.5, -0.5]))) elif part_id == 3: return sprintf('%0.5f ', func(X1, y1, np.array([0.5, -0.5]), 0.01, 10)) elif part_id == 4: return sprintf('%0.5f ', func(X2[:, 1:])) elif part_id == 5: return sprintf('%0.5f ', func(X2, y2, np.array([0.1, 0.2, 0.3, 0.4]))) elif part_id == 6: return sprintf('%0.5f ', func(X2, y2, np.array([-0.1, -0.2, -0.3, -0.4]), 0.01, 10)) elif part_id == 7: return sprintf('%0.5f ', func(X2, y2))
def output(part_id): X1 = np.column_stack( (np.ones(20), np.exp(1) + np.exp(2) * np.linspace(0.1, 2, 20))) Y1 = X1[:, 1] + np.sin(X1[:, 0]) + np.cos(X1[:, 1]) X2 = np.column_stack((X1, X1[:, 1]**0.5, X1[:, 1]**0.25)) Y2 = np.power(Y1, 0.5) + Y1 fname = srcs[part_id - 1].rsplit('.', 1)[0] mod = __import__(fname, fromlist=[fname], level=1) func = getattr(mod, fname) if part_id == 1: return sprintf('%0.5f ', func()) elif part_id == 2: return sprintf('%0.5f ', func(X1, Y1, np.array([0.5, -0.5]))) elif part_id == 3: return sprintf('%0.5f ', func(X1, Y1, np.array([0.5, -0.5]), 0.01, 10)) elif part_id == 4: return sprintf('%0.5f ', func(X2[:, 1:4])) elif part_id == 5: return sprintf('%0.5f ', func(X2, Y2, np.array([0.1, 0.2, 0.3, 0.4]))) elif part_id == 6: return sprintf( '%0.5f ', func(X2, Y2, np.array([-0.1, -0.2, -0.3, -0.4]), 0.01, 10)) elif part_id == 7: return sprintf('%0.5f ', func(X2, Y2))
def output(part_id): # Random Test Cases n_u = 3 n_m = 4 n = 5 X = np.sin(np.arange(1, n_m * n + 1)).reshape((n, n_m)).T Theta = np.cos(np.arange(1, n_u * n + 1)).reshape((n, n_u)).T Y = np.sin(np.arange(1, 2.0 * n_m * n_u, 2.0)).reshape((n_u, n_m)).T R = Y > 0.5 pval = np.hstack((np.abs(Y.T.flatten()), 0.001, 1.0)) yval = np.hstack((R.T.flatten(), 1.0, 0.0)).astype("bool") params = np.hstack((X.T.flatten(), Theta.T.flatten())) fname = srcs[part_id - 1].rsplit(".", 1)[0] mod = __import__(fname, fromlist=[fname], level=1) func = getattr(mod, fname) if part_id == 1: mu, sigma2 = func(X) return sprintf("%0.5f ", np.hstack((mu.T.flatten(), sigma2.T.flatten()))) elif part_id == 2: bestEpsilon, bestF1 = func(yval, pval) return sprintf("%0.5f ", np.hstack((bestEpsilon, bestF1))) elif part_id == 3: J, grad = func(params, Y, R, n_u, n_m, n, 0.0) return sprintf("%0.5f ", J) elif part_id == 4: J, grad = func(params, Y, R, n_u, n_m, n, 0.0) return sprintf("%0.5f ", grad.T.flatten()) elif part_id == 5: J, grad = func(params, Y, R, n_u, n_m, n, 1.5) return sprintf("%0.5f ", J) elif part_id == 6: J, grad = func(params, Y, R, n_u, n_m, n, 1.5) return sprintf("%0.5f ", grad.T.flatten())
def output(part_id): fname = srcs[part_id - 1].rsplit('.', 1)[0] mod = __import__(fname, fromlist=[fname], level=0) func = getattr(mod, fname) # Random Test Cases X = np.c_[np.ones(20), np.exp(1) * np.sin(np.arange(1, 21)), np.exp(0.5) * np.cos(np.arange(1, 21))] y = np.sin(X[:, 0] + X[:, 1]) > 0 if part_id == 1: return sprintf('%0.5f ', func(X)) elif part_id == 2: return sprintf('%0.5f ', func(np.array([0.25, 0.5, -0.5]), X, y)) elif part_id == 3: cost, grad = func(np.array([0.25, 0.5, -0.5]), X, y) return sprintf('%0.5f ', grad) elif part_id == 4: return sprintf('%0.5f ', func(np.array([0.25, 0.5, -0.5]), X)) elif part_id == 5: return sprintf('%0.5f ', func(np.array([0.25, 0.5, -0.5]), X, y, 0.1)) elif part_id == 6: cost, grad = func(np.array([0.25, 0.5, -0.5]), X, y, 0.1) return sprintf('%0.5f ', grad)
def output(part_id): # Random Test Cases n_u = 3 n_m = 4 n = 5 X = reshape(sin(range(1, n_m * n + 1)), (n_m, n), order='F') Theta = reshape(cos(range(1, n_u * n + 1)), (n_u, n), order='F') Y = reshape(sin(range(1, 2 * n_m * n_u + 1, 2)), (n_m, n_u), order='F') R = Y > 0.5 pval = np.r_[abs(Y.ravel(order='F')), 0.001, 1] yval = np.r_[R.ravel(order='F'), 1, 0] params = np.r_[X.ravel(order='F'), Theta.ravel(order='F')] fname = srcs[part_id - 1].rsplit('.', 1)[0] mod = __import__(fname, fromlist=[fname], level=0) func = getattr(mod, fname) if part_id == 1: mu, sigma2 = func(X) return sprintf('%0.5f ', np.r_[mu, sigma2]) elif part_id == 2: bestEpsilon, bestF1 = func(yval, pval) return sprintf('%0.5f ', np.r_[bestEpsilon, bestF1]) elif part_id == 3: J, _ = func(params, Y, R, n_u, n_m, n, 0.0) return sprintf('%0.5f ', J) elif part_id == 4: _, grad = func(params, Y, R, n_u, n_m, n, 0.0) return sprintf('%0.5f ', grad) elif part_id == 5: J, _ = func(params, Y, R, n_u, n_m, n, 1.5) return sprintf('%0.5f ', J) elif part_id == 6: _, grad = func(params, Y, R, n_u, n_m, n, 1.5) return sprintf('%0.5f ', grad)
def output(part_id): X = np.column_stack( (np.ones(20), (np.exp(1) * np.sin(np.linspace(1, 20, 20))), (np.exp(0.5) * np.cos(np.linspace(1, 20, 20))))) Y = np.sin(X[:, 0] + X[:, 1]) > 0 fname = srcs[part_id - 1].rsplit('.', 1)[0] print(fname) mod = __import__(fname) print(mod) func1 = getattr(mod, 'sigmoid') func2 = getattr(mod, 'costFunction') func3 = getattr(mod, 'gradientFunction') func4 = getattr(mod, 'predict') func5 = getattr(mod, 'test') func6 = getattr(mod, 'test') X = np.mat(X) Y = np.mat(Y).T Y = np.where(Y == True, 1, 0) if part_id == 1: return sprintf('%0.5f ', func1(X)) elif part_id == 2: return sprintf('%0.5f ', func2(np.array([0.25, 0.5, -0.5]), X, Y)) elif part_id == 3: return sprintf('%0.5f ', func3(np.array([0.25, 0.5, -0.5]), X, Y)) elif part_id == 4: return sprintf('%0.5f ', func4(np.array([0.25, 0.5, -0.5]), X, Y)) elif part_id == 5: return sprintf('%0.5f ', func5(np.array([0.25, 0.5, -0.5]), X, Y, 0.1)) elif part_id == 6: return sprintf('%0.5f ', func6(np.array([0.25, 0.5, -0.5]), X, Y, 0.1))
def output(part_id): # Random Test Cases X = 3 * np.sin(range(1, 31)).reshape(3, 10, order='F') Xm = np.sin(range(1, 33)).reshape(16, 2, order='F') / 5 ym = np.arange(1, 17) % 4 + 1 t1 = np.sin(range(1, 24, 2)).reshape(4, 3, order='F') t2 = np.cos(range(1, 40, 2)).reshape(4, 5, order='F') theta = np.r_[t1.flatten(order='F'), t2.flatten(order='F')] lambda_1 = 0.0 lambda_2 = 1.5 input_ = 2 hidden = 4 num_labels = 4 fname = srcs[part_id - 1].rsplit('.', 1)[0] mod = __import__(fname, fromlist=[fname], level=0) func = getattr(mod, fname) if part_id == 1: J, grad = func(theta, input_, hidden, num_labels, Xm, ym, lambda_1) return sprintf('%0.5f ', J) elif part_id == 2: J, grad = func(theta, input_, hidden, num_labels, Xm, ym, lambda_2) return sprintf('%0.5f ', J) elif part_id == 3: g = func(X) return sprintf('%0.5f ', g) elif part_id == 4: J, grad = func(theta, input_, hidden, num_labels, Xm, ym, lambda_1) return sprintf('%0.5f ', np.r_[J, grad]) elif part_id == 5: J, grad = func(theta, input_, hidden, num_labels, Xm, ym, lambda_2) return sprintf('%0.5f ', np.r_[J, grad])
def output(part_id): X1 = np.column_stack((np.ones(20), np.exp(1) + np.exp(2) * np.linspace(0.1, 2, 20))) Y1 = X1[:,1] + np.sin(X1[:,0]) + np.cos(X1[:,1]) X2 = np.column_stack((X1, X1[:,1]**0.5, X1[:,1]**0.25)) Y2 = np.power(Y1, 0.5) + Y1 fname = srcs[part_id-1].rsplit('.',1)[0] mod = __import__(fname, fromlist=[fname], level=1) func = getattr(mod, fname) if part_id == 1: return sprintf('%0.5f ', func()) elif part_id == 2: return sprintf('%0.5f ', func(X1, Y1, np.array([0.5, -0.5]))) elif part_id == 3: return sprintf('%0.5f ', func(X1, Y1, np.array([0.5, -0.5]), 0.01, 10)) elif part_id == 4: return sprintf('%0.5f ', func(X2[:,1:4])) elif part_id == 5: return sprintf('%0.5f ', func(X2, Y2, np.array([0.1, 0.2, 0.3, 0.4]))) elif part_id == 6: return sprintf('%0.5f ', func(X2, Y2, np.array([-0.1, -0.2, -0.3, -0.4]), 0.01, 10)) elif part_id == 7: return sprintf('%0.5f ', func(X2, Y2))
def output(part_id): X = np.column_stack((np.ones(20), (np.exp(1) * np.sin(np.linspace(1, 20, 20))), (np.exp(0.5) * np.cos(np.linspace(1, 20, 20))))) Y = np.sin(X[:,0] + X[:,1]) > 0 fname = srcs[part_id-1].rsplit('.',1)[0] mod = __import__(fname, fromlist=[fname], level=1) func = getattr(mod, fname) if part_id == 1: return sprintf('%0.5f ', func(X)) elif part_id == 2: return sprintf('%0.5f ', func(np.array([0.25, 0.5, -0.5]), X, Y)) elif part_id == 3: return sprintf('%0.5f ', func(np.array([0.25, 0.5, -0.5]), X, Y)) elif part_id == 4: return sprintf('%0.5f ', func(np.array([0.25, 0.5, -0.5]), X)) elif part_id == 5: return sprintf('%0.5f ', func(np.array([0.25, 0.5, -0.5]), X, Y, 0.1)) elif part_id == 6: return sprintf('%0.5f ', func(np.array([0.25, 0.5, -0.5]), X, Y, 0.1))
def output(part_id): # Random Test Cases n_u = 3 n_m = 4 n = 5 X = np.sin(np.arange(1, n_m * n + 1)).reshape((n, n_m)).T Theta = np.cos(np.arange(1, n_u * n + 1)).reshape((n, n_u)).T Y = np.sin(np.arange(1, 2.0 * n_m * n_u, 2.0)).reshape((n_u, n_m)).T R = Y > 0.5 pval = np.hstack((np.abs(Y.T.flatten()), 0.001, 1.0)) yval = np.hstack((R.T.flatten(), 1.0, 0.0)).astype('bool') params = np.hstack((X.T.flatten(), Theta.T.flatten())) fname = srcs[part_id - 1].rsplit('.', 1)[0] mod = __import__(fname, fromlist=[fname], level=1) func = getattr(mod, fname) if part_id == 1: mu, sigma2 = func(X) return sprintf('%0.5f ', np.hstack( (mu.T.flatten(), sigma2.T.flatten()))) elif part_id == 2: bestEpsilon, bestF1 = func(yval, pval) return sprintf('%0.5f ', np.hstack((bestEpsilon, bestF1))) elif part_id == 3: J, grad = func(params, Y, R, n_u, n_m, n, 0.0) return sprintf('%0.5f ', J) elif part_id == 4: J, grad = func(params, Y, R, n_u, n_m, n, 0.0) return sprintf('%0.5f ', grad.T.flatten()) elif part_id == 5: J, grad = func(params, Y, R, n_u, n_m, n, 1.5) return sprintf('%0.5f ', J) elif part_id == 6: J, grad = func(params, Y, R, n_u, n_m, n, 1.5) return sprintf('%0.5f ', grad.T.flatten())