Exemplo n.º 1
0
st = time.time()
best_score = 0
for epoch in range(epochs + 1):
    epoch_loss = 0.0
    for iteration in range(total_num // batch_size):
        seed = np.random.choice(total_num, batch_size)
        x_batch = x_train[seed]
        y_batch = y_train[seed]

        loss = model.loss(x_batch, y_batch)
        epoch_loss += loss

        model.zero_grad()
        model.backward()
        model.update()

    epoch_loss /= batch_size

    pred = model.predict(x_train)
    target = np.argmax(y_train, axis=1)
    score = len(np.where(pred == target)[0]) / len(target)

    val_pred = model.predict(x_val)
    val_target = np.argmax(y_val, axis=1)
    val_score = len(np.where(val_pred == val_target)[0]) / len(val_target)

    acc_stack.append(score)
    val_acc_stack.append(val_score)
    loss_stack.append(epoch_loss)