Here is the example MNIST kernel
the code is attached below:
arch = resnet50
sz = 28
classes = np.unique(Y_train)
data = ImageClassifierData.from_arrays(path=wd,
trn=(X_train, Y_train),
val=(X_valid, Y_valid),
classes=Y_train,
test=test_df,
tfms=tfms_from_model(arch, sz))
learn = ConvLearner.pretrained(arch, data, precompute=True)
find optimal learning rate
lrf = learn.lr_find()
learn.fit(1e-2, 2)
learn.precompute=False
learn.unfreeze()
lr = np.array([0.001, 0.0075, 0.01])
learn.fit(lr, 3, cycle_len=1, cycle_mult=2)
log_preds, y = learn.TTA()
probs = np.mean(np.exp(log_preds), 0)
accuracy_np(probs, y)
%time log_preds_test, y_test = learn.TTA(is_test=True)
probs_test = np.mean(np.exp(log_preds_test), 0)
probs_test.shape
Submission
df = pd.DataFrame(probs_test)
df.index += 1
df = df.assign(Label = df.values.argmax(axis=1))
df = df.assign(ImageId = df.index.values)
df = df.drop([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], axis=1)
df = df[[“ImageId”, “Label”]]