a. | Parameter: [train, test, valid] = split(Dataset), a = argmax, m1 = model, t = train, v = valid, tt = test, b = batch, w = weights, em = ensemble-model, si = ith sample input of CXI dataset, X = class. |
b. | Input: Dataset D = sum |
c. |
Output: ensemble meta-classifier, c(si): predicted class index for ith image with PulDi-COVID. Model Training, Validation, testing: |
1. | Action 1: Base model classification |
2. | for c = [VGG16, ResNet50, VGG19, DenseNet201, MobileNetV2, NASNetMobile, ResNet152V2, |
3. | DenseNet169] |
4. | for j = 1:150 // epoch range from 1 to 150 |
5. | [t(j), v(j)] = partition(t, v) |
6. | for k=(t/b, v/b) // sample/batch |
7. | model(m1, c, j) = train(c(m1), a, t(j), v(j)) // training |
8. | valid(m1, c, j) = valid((c(m1), a, j), v(j)) // validation |
9. | end |
10. | end |
11. | tt(c(m1), a) = predict(max(test(c(m1), a, tt))) // prediction on test |
12. | c(si) = tt(c(m1), a) // predicted class label with index |
13. | end |
14. | acquireWeights = model(w) // |
15. | Action 2: Create SSE ensemble-classifier(meta-model) and load feature vectors. |
16. | for i = 1:8 |
17. | em = model(a). append(c(i))// input as base model structure to create meta-ensemble-learner |
18. | em(w) = loadWeights(acquireWeights(c[1…8])) |
19. | Action 3: Test ensemble classifier |
20. | tt(em, a) = predict(max(test(em, a, tt))) // estimate the class probability |
21. | = tt(em, a) |
22. | c(si) = // predicted specific class label with index |
23. | end; |