MCPcopy
hub / github.com/tinygrad/tinygrad / evaluate

Function evaluate

extra/training.py:41–57  ·  view source on GitHub ↗
(model, X_test, Y_test, num_classes=None, BS=128, return_predict=False, transform=lambda x: x,
             target_transform=lambda y: y)

Source from the content-addressed store, hash-verified

39
40
41def evaluate(model, X_test, Y_test, num_classes=None, BS=128, return_predict=False, transform=lambda x: x,
42 target_transform=lambda y: y):
43 Tensor.training = False
44 def numpy_eval(Y_test, num_classes):
45 Y_test_preds_out = np.zeros(list(Y_test.shape)+[num_classes])
46 for i in trange((len(Y_test)-1)//BS+1, disable=None):
47 x = Tensor(transform(X_test[i*BS:(i+1)*BS]))
48 out = model.forward(x) if hasattr(model, 'forward') else model(x)
49 Y_test_preds_out[i*BS:(i+1)*BS] = out.numpy()
50 Y_test_preds = np.argmax(Y_test_preds_out, axis=-1)
51 Y_test = target_transform(Y_test)
52 return (Y_test == Y_test_preds).mean(), Y_test_preds
53
54 if num_classes is None: num_classes = Y_test.max().astype(int)+1
55 acc, Y_test_pred = numpy_eval(Y_test, num_classes)
56 print("test set accuracy is %f" % acc)
57 return (acc, Y_test_pred) if return_predict else acc
58

Callers 6

lr_scheduler_trainingFunction · 0.90
test_convMethod · 0.90
test_conv_with_bnMethod · 0.90
test_sgdMethod · 0.90
train_resnet.pyFile · 0.90
transformer.pyFile · 0.90

Calls 2

numpy_evalFunction · 0.85
maxMethod · 0.45

Tested by 4

lr_scheduler_trainingFunction · 0.72
test_convMethod · 0.72
test_conv_with_bnMethod · 0.72
test_sgdMethod · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…