Beispiel #1
0
    def test02_sgd_sanity_with_epochs(self):
        C, W0, X, _, _ = create_C_W_X_d()
        optimizer = SGD(batch_size=256, m=X.shape[1])
        W = W0.copy()
        for epoch in range(15):
            W = optimizer.optimize(W,
                                   X,
                                   C,
                                   objective_soft_max,
                                   objective_soft_max_gradient_W,
                                   lr=1)

        self.assertTrue(True)
Beispiel #2
0
def train(C_train, C_val, X_train, X_val, batch_size, epochs, lr, momentum=0):
    # ----------------- hyper params init -----------------
    W0 = randn(X_train.shape[0], C_train.shape[0])
    m, n = W0.shape
    W = W0.copy()
    optimizer = SGD(batch_size=batch_size, m=X_train.shape[1])
    # ----------------------------------------------------

    # ----------------- stats lists init -----------------
    W_history = zeros((W.shape[0] * W.shape[1], epochs))
    val_score = []
    train_score = []
    train_acc = []
    val_acc = []
    # ----------------------------------------------------

    for epoch in range(epochs):
        W = optimizer.optimize(W,
                               X_train,
                               C_train,
                               objective_soft_max,
                               objective_soft_max_gradient_W,
                               lr=lr,
                               momentum=momentum)

        W_history[:, epoch] = W.reshape(W.shape[0] * W.shape[1])
        train_score.append(objective_soft_max(X_train, W, C_train))
        val_score.append(objective_soft_max(X_val, W, C_val))
        train_acc.append(accuracy(X_train, W, C_train))
        val_acc.append(accuracy(X_val, W, C_val))

    W_res = average(W_history, axis=1).reshape(m, n)
    train_score.append(objective_soft_max(X_train, W_res, C_train))
    val_score.append(objective_soft_max(X_val, W_res, C_val))
    # todo add plot epoch \ accuracy (wrote in train)
    plot(range(len(train_score)), train_score)
    return train_score, train_acc, val_score, val_acc
Beispiel #3
0
 def test01_sgd_sanity(self):
     C, W0, X, _, _ = create_C_W_X_d()
     optimizer = SGD(batch_size=256, m=X.shape[1])
     W = optimizer.optimize(W0, X, C, objective_soft_max,
                            objective_soft_max_gradient_W)
     self.assertTrue(True)