Exercise: Plant Disease App

Exercise: Plant Disease App#

We want to build a plant disease app that can detect wether a plant is healthy or has a disease, given a photo of its leave 🍃. These are a few examples for each condition:

Healthy

Angular Leaf Spot

Bean Rust

All the images are located in the exercise_2 folder, already splited into the three different conditions.

a) Discuss, in your own words, how would you approach this problem.

That is, what type of learning problem is, and the kind of models you can use to solve it.

b) Implement a solution based on what you previously described. Important: you must evaluate your model over a test set, and report the appropriate metrics for your model.

As a starter, you can use the following code to get all the file_paths and the labels for each image:

import pandas as pd
import glob
image_paths = glob.glob('exercise_3/*/*')

labels = []

for image_path in image_paths:
    labels.append(image_path.split('/')[1].split('/')[0])
import torch
from torchvision.io import read_image, ImageReadMode
from torchvision.models import efficientnet_b0, EfficientNet_B0_Weights
from torchvision.models.feature_extraction import create_feature_extractor

# Step 1: Initialize model with the best available weights
weights = EfficientNet_B0_Weights.DEFAULT
model = efficientnet_b0(weights=weights)
model.eval()  # disables gradient calculation for inference.

# Step 2: Initialize the preprocess function
preprocess = weights.transforms()


layer_before_final_classifiers = 'flatten'

return_nodes = {
    layer_before_final_classifiers: layer_before_final_classifiers
}

feature_extractor = create_feature_extractor(model, return_nodes=return_nodes)
cnn_codes = []
for i, image_name in enumerate(image_paths):
    print(f'Processing image {i+1}/{len(image_paths)}')
    with torch.no_grad():
        img = read_image(image_name, mode=ImageReadMode.RGB)
        img_processed = preprocess(img).unsqueeze(0)
        cnn_code = feature_extractor(img_processed)[layer_before_final_classifiers]
    cnn_codes.append(cnn_code)


cnn_codes = torch.cat(cnn_codes)
Processing image 1/1034
Processing image 2/1034
Processing image 3/1034
Processing image 4/1034
Processing image 5/1034
Processing image 6/1034
Processing image 7/1034
Processing image 8/1034
Processing image 9/1034
Processing image 10/1034
Processing image 11/1034
Processing image 12/1034
Processing image 13/1034
Processing image 14/1034
Processing image 15/1034
Processing image 16/1034
Processing image 17/1034
Processing image 18/1034
Processing image 19/1034
Processing image 20/1034
Processing image 21/1034
Processing image 22/1034
Processing image 23/1034
Processing image 24/1034
Processing image 25/1034
Processing image 26/1034
Processing image 27/1034
Processing image 28/1034
Processing image 29/1034
Processing image 30/1034
Processing image 31/1034
Processing image 32/1034
Processing image 33/1034
Processing image 34/1034
Processing image 35/1034
Processing image 36/1034
Processing image 37/1034
Processing image 38/1034
Processing image 39/1034
Processing image 40/1034
Processing image 41/1034
Processing image 42/1034
Processing image 43/1034
Processing image 44/1034
Processing image 45/1034
Processing image 46/1034
Processing image 47/1034
Processing image 48/1034
Processing image 49/1034
Processing image 50/1034
Processing image 51/1034
Processing image 52/1034
Processing image 53/1034
Processing image 54/1034
Processing image 55/1034
Processing image 56/1034
Processing image 57/1034
Processing image 58/1034
Processing image 59/1034
Processing image 60/1034
Processing image 61/1034
Processing image 62/1034
Processing image 63/1034
Processing image 64/1034
Processing image 65/1034
Processing image 66/1034
Processing image 67/1034
Processing image 68/1034
Processing image 69/1034
Processing image 70/1034
Processing image 71/1034
Processing image 72/1034
Processing image 73/1034
Processing image 74/1034
Processing image 75/1034
Processing image 76/1034
Processing image 77/1034
Processing image 78/1034
Processing image 79/1034
Processing image 80/1034
Processing image 81/1034
Processing image 82/1034
Processing image 83/1034
Processing image 84/1034
Processing image 85/1034
Processing image 86/1034
Processing image 87/1034
Processing image 88/1034
Processing image 89/1034
Processing image 90/1034
Processing image 91/1034
Processing image 92/1034
Processing image 93/1034
Processing image 94/1034
Processing image 95/1034
Processing image 96/1034
Processing image 97/1034
Processing image 98/1034
Processing image 99/1034
Processing image 100/1034
Processing image 101/1034
Processing image 102/1034
Processing image 103/1034
Processing image 104/1034
Processing image 105/1034
Processing image 106/1034
Processing image 107/1034
Processing image 108/1034
Processing image 109/1034
Processing image 110/1034
Processing image 111/1034
Processing image 112/1034
Processing image 113/1034
Processing image 114/1034
Processing image 115/1034
Processing image 116/1034
Processing image 117/1034
Processing image 118/1034
Processing image 119/1034
Processing image 120/1034
Processing image 121/1034
Processing image 122/1034
Processing image 123/1034
Processing image 124/1034
Processing image 125/1034
Processing image 126/1034
Processing image 127/1034
Processing image 128/1034
Processing image 129/1034
Processing image 130/1034
Processing image 131/1034
Processing image 132/1034
Processing image 133/1034
Processing image 134/1034
Processing image 135/1034
Processing image 136/1034
Processing image 137/1034
Processing image 138/1034
Processing image 139/1034
Processing image 140/1034
Processing image 141/1034
Processing image 142/1034
Processing image 143/1034
Processing image 144/1034
Processing image 145/1034
Processing image 146/1034
Processing image 147/1034
Processing image 148/1034
Processing image 149/1034
Processing image 150/1034
Processing image 151/1034
Processing image 152/1034
Processing image 153/1034
Processing image 154/1034
Processing image 155/1034
Processing image 156/1034
Processing image 157/1034
Processing image 158/1034
Processing image 159/1034
Processing image 160/1034
Processing image 161/1034
Processing image 162/1034
Processing image 163/1034
Processing image 164/1034
Processing image 165/1034
Processing image 166/1034
Processing image 167/1034
Processing image 168/1034
Processing image 169/1034
Processing image 170/1034
Processing image 171/1034
Processing image 172/1034
Processing image 173/1034
Processing image 174/1034
Processing image 175/1034
Processing image 176/1034
Processing image 177/1034
Processing image 178/1034
Processing image 179/1034
Processing image 180/1034
Processing image 181/1034
Processing image 182/1034
Processing image 183/1034
Processing image 184/1034
Processing image 185/1034
Processing image 186/1034
Processing image 187/1034
Processing image 188/1034
Processing image 189/1034
Processing image 190/1034
Processing image 191/1034
Processing image 192/1034
Processing image 193/1034
Processing image 194/1034
Processing image 195/1034
Processing image 196/1034
Processing image 197/1034
Processing image 198/1034
Processing image 199/1034
Processing image 200/1034
Processing image 201/1034
Processing image 202/1034
Processing image 203/1034
Processing image 204/1034
Processing image 205/1034
Processing image 206/1034
Processing image 207/1034
Processing image 208/1034
Processing image 209/1034
Processing image 210/1034
Processing image 211/1034
Processing image 212/1034
Processing image 213/1034
Processing image 214/1034
Processing image 215/1034
Processing image 216/1034
Processing image 217/1034
Processing image 218/1034
Processing image 219/1034
Processing image 220/1034
Processing image 221/1034
Processing image 222/1034
Processing image 223/1034
Processing image 224/1034
Processing image 225/1034
Processing image 226/1034
Processing image 227/1034
Processing image 228/1034
Processing image 229/1034
Processing image 230/1034
Processing image 231/1034
Processing image 232/1034
Processing image 233/1034
Processing image 234/1034
Processing image 235/1034
Processing image 236/1034
Processing image 237/1034
Processing image 238/1034
Processing image 239/1034
Processing image 240/1034
Processing image 241/1034
Processing image 242/1034
Processing image 243/1034
Processing image 244/1034
Processing image 245/1034
Processing image 246/1034
Processing image 247/1034
Processing image 248/1034
Processing image 249/1034
Processing image 250/1034
Processing image 251/1034
Processing image 252/1034
Processing image 253/1034
Processing image 254/1034
Processing image 255/1034
Processing image 256/1034
Processing image 257/1034
Processing image 258/1034
Processing image 259/1034
Processing image 260/1034
Processing image 261/1034
Processing image 262/1034
Processing image 263/1034
Processing image 264/1034
Processing image 265/1034
Processing image 266/1034
Processing image 267/1034
Processing image 268/1034
Processing image 269/1034
Processing image 270/1034
Processing image 271/1034
Processing image 272/1034
Processing image 273/1034
Processing image 274/1034
Processing image 275/1034
Processing image 276/1034
Processing image 277/1034
Processing image 278/1034
Processing image 279/1034
Processing image 280/1034
Processing image 281/1034
Processing image 282/1034
Processing image 283/1034
Processing image 284/1034
Processing image 285/1034
Processing image 286/1034
Processing image 287/1034
Processing image 288/1034
Processing image 289/1034
Processing image 290/1034
Processing image 291/1034
Processing image 292/1034
Processing image 293/1034
Processing image 294/1034
Processing image 295/1034
Processing image 296/1034
Processing image 297/1034
Processing image 298/1034
Processing image 299/1034
Processing image 300/1034
Processing image 301/1034
Processing image 302/1034
Processing image 303/1034
Processing image 304/1034
Processing image 305/1034
Processing image 306/1034
Processing image 307/1034
Processing image 308/1034
Processing image 309/1034
Processing image 310/1034
Processing image 311/1034
Processing image 312/1034
Processing image 313/1034
Processing image 314/1034
Processing image 315/1034
Processing image 316/1034
Processing image 317/1034
Processing image 318/1034
Processing image 319/1034
Processing image 320/1034
Processing image 321/1034
Processing image 322/1034
Processing image 323/1034
Processing image 324/1034
Processing image 325/1034
Processing image 326/1034
Processing image 327/1034
Processing image 328/1034
Processing image 329/1034
Processing image 330/1034
Processing image 331/1034
Processing image 332/1034
Processing image 333/1034
Processing image 334/1034
Processing image 335/1034
Processing image 336/1034
Processing image 337/1034
Processing image 338/1034
Processing image 339/1034
Processing image 340/1034
Processing image 341/1034
Processing image 342/1034
Processing image 343/1034
Processing image 344/1034
Processing image 345/1034
Processing image 346/1034
Processing image 347/1034
Processing image 348/1034
Processing image 349/1034
Processing image 350/1034
Processing image 351/1034
Processing image 352/1034
Processing image 353/1034
Processing image 354/1034
Processing image 355/1034
Processing image 356/1034
Processing image 357/1034
Processing image 358/1034
Processing image 359/1034
Processing image 360/1034
Processing image 361/1034
Processing image 362/1034
Processing image 363/1034
Processing image 364/1034
Processing image 365/1034
Processing image 366/1034
Processing image 367/1034
Processing image 368/1034
Processing image 369/1034
Processing image 370/1034
Processing image 371/1034
Processing image 372/1034
Processing image 373/1034
Processing image 374/1034
Processing image 375/1034
Processing image 376/1034
Processing image 377/1034
Processing image 378/1034
Processing image 379/1034
Processing image 380/1034
Processing image 381/1034
Processing image 382/1034
Processing image 383/1034
Processing image 384/1034
Processing image 385/1034
Processing image 386/1034
Processing image 387/1034
Processing image 388/1034
Processing image 389/1034
Processing image 390/1034
Processing image 391/1034
Processing image 392/1034
Processing image 393/1034
Processing image 394/1034
Processing image 395/1034
Processing image 396/1034
Processing image 397/1034
Processing image 398/1034
Processing image 399/1034
Processing image 400/1034
Processing image 401/1034
Processing image 402/1034
Processing image 403/1034
Processing image 404/1034
Processing image 405/1034
Processing image 406/1034
Processing image 407/1034
Processing image 408/1034
Processing image 409/1034
Processing image 410/1034
Processing image 411/1034
Processing image 412/1034
Processing image 413/1034
Processing image 414/1034
Processing image 415/1034
Processing image 416/1034
Processing image 417/1034
Processing image 418/1034
Processing image 419/1034
Processing image 420/1034
Processing image 421/1034
Processing image 422/1034
Processing image 423/1034
Processing image 424/1034
Processing image 425/1034
Processing image 426/1034
Processing image 427/1034
Processing image 428/1034
Processing image 429/1034
Processing image 430/1034
Processing image 431/1034
Processing image 432/1034
Processing image 433/1034
Processing image 434/1034
Processing image 435/1034
Processing image 436/1034
Processing image 437/1034
Processing image 438/1034
Processing image 439/1034
Processing image 440/1034
Processing image 441/1034
Processing image 442/1034
Processing image 443/1034
Processing image 444/1034
Processing image 445/1034
Processing image 446/1034
Processing image 447/1034
Processing image 448/1034
Processing image 449/1034
Processing image 450/1034
Processing image 451/1034
Processing image 452/1034
Processing image 453/1034
Processing image 454/1034
Processing image 455/1034
Processing image 456/1034
Processing image 457/1034
Processing image 458/1034
Processing image 459/1034
Processing image 460/1034
Processing image 461/1034
Processing image 462/1034
Processing image 463/1034
Processing image 464/1034
Processing image 465/1034
Processing image 466/1034
Processing image 467/1034
Processing image 468/1034
Processing image 469/1034
Processing image 470/1034
Processing image 471/1034
Processing image 472/1034
Processing image 473/1034
Processing image 474/1034
Processing image 475/1034
Processing image 476/1034
Processing image 477/1034
Processing image 478/1034
Processing image 479/1034
Processing image 480/1034
Processing image 481/1034
Processing image 482/1034
Processing image 483/1034
Processing image 484/1034
Processing image 485/1034
Processing image 486/1034
Processing image 487/1034
Processing image 488/1034
Processing image 489/1034
Processing image 490/1034
Processing image 491/1034
Processing image 492/1034
Processing image 493/1034
Processing image 494/1034
Processing image 495/1034
Processing image 496/1034
Processing image 497/1034
Processing image 498/1034
Processing image 499/1034
Processing image 500/1034
Processing image 501/1034
Processing image 502/1034
Processing image 503/1034
Processing image 504/1034
Processing image 505/1034
Processing image 506/1034
Processing image 507/1034
Processing image 508/1034
Processing image 509/1034
Processing image 510/1034
Processing image 511/1034
Processing image 512/1034
Processing image 513/1034
Processing image 514/1034
Processing image 515/1034
Processing image 516/1034
Processing image 517/1034
Processing image 518/1034
Processing image 519/1034
Processing image 520/1034
Processing image 521/1034
Processing image 522/1034
Processing image 523/1034
Processing image 524/1034
Processing image 525/1034
Processing image 526/1034
Processing image 527/1034
Processing image 528/1034
Processing image 529/1034
Processing image 530/1034
Processing image 531/1034
Processing image 532/1034
Processing image 533/1034
Processing image 534/1034
Processing image 535/1034
Processing image 536/1034
Processing image 537/1034
Processing image 538/1034
Processing image 539/1034
Processing image 540/1034
Processing image 541/1034
Processing image 542/1034
Processing image 543/1034
Processing image 544/1034
Processing image 545/1034
Processing image 546/1034
Processing image 547/1034
Processing image 548/1034
Processing image 549/1034
Processing image 550/1034
Processing image 551/1034
Processing image 552/1034
Processing image 553/1034
Processing image 554/1034
Processing image 555/1034
Processing image 556/1034
Processing image 557/1034
Processing image 558/1034
Processing image 559/1034
Processing image 560/1034
Processing image 561/1034
Processing image 562/1034
Processing image 563/1034
Processing image 564/1034
Processing image 565/1034
Processing image 566/1034
Processing image 567/1034
Processing image 568/1034
Processing image 569/1034
Processing image 570/1034
Processing image 571/1034
Processing image 572/1034
Processing image 573/1034
Processing image 574/1034
Processing image 575/1034
Processing image 576/1034
Processing image 577/1034
Processing image 578/1034
Processing image 579/1034
Processing image 580/1034
Processing image 581/1034
Processing image 582/1034
Processing image 583/1034
Processing image 584/1034
Processing image 585/1034
Processing image 586/1034
Processing image 587/1034
Processing image 588/1034
Processing image 589/1034
Processing image 590/1034
Processing image 591/1034
Processing image 592/1034
Processing image 593/1034
Processing image 594/1034
Processing image 595/1034
Processing image 596/1034
Processing image 597/1034
Processing image 598/1034
Processing image 599/1034
Processing image 600/1034
Processing image 601/1034
Processing image 602/1034
Processing image 603/1034
Processing image 604/1034
Processing image 605/1034
Processing image 606/1034
Processing image 607/1034
Processing image 608/1034
Processing image 609/1034
Processing image 610/1034
Processing image 611/1034
Processing image 612/1034
Processing image 613/1034
Processing image 614/1034
Processing image 615/1034
Processing image 616/1034
Processing image 617/1034
Processing image 618/1034
Processing image 619/1034
Processing image 620/1034
Processing image 621/1034
Processing image 622/1034
Processing image 623/1034
Processing image 624/1034
Processing image 625/1034
Processing image 626/1034
Processing image 627/1034
Processing image 628/1034
Processing image 629/1034
Processing image 630/1034
Processing image 631/1034
Processing image 632/1034
Processing image 633/1034
Processing image 634/1034
Processing image 635/1034
Processing image 636/1034
Processing image 637/1034
Processing image 638/1034
Processing image 639/1034
Processing image 640/1034
Processing image 641/1034
Processing image 642/1034
Processing image 643/1034
Processing image 644/1034
Processing image 645/1034
Processing image 646/1034
Processing image 647/1034
Processing image 648/1034
Processing image 649/1034
Processing image 650/1034
Processing image 651/1034
Processing image 652/1034
Processing image 653/1034
Processing image 654/1034
Processing image 655/1034
Processing image 656/1034
Processing image 657/1034
Processing image 658/1034
Processing image 659/1034
Processing image 660/1034
Processing image 661/1034
Processing image 662/1034
Processing image 663/1034
Processing image 664/1034
Processing image 665/1034
Processing image 666/1034
Processing image 667/1034
Processing image 668/1034
Processing image 669/1034
Processing image 670/1034
Processing image 671/1034
Processing image 672/1034
Processing image 673/1034
Processing image 674/1034
Processing image 675/1034
Processing image 676/1034
Processing image 677/1034
Processing image 678/1034
Processing image 679/1034
Processing image 680/1034
Processing image 681/1034
Processing image 682/1034
Processing image 683/1034
Processing image 684/1034
Processing image 685/1034
Processing image 686/1034
Processing image 687/1034
Processing image 688/1034
Processing image 689/1034
Processing image 690/1034
Processing image 691/1034
Processing image 692/1034
Processing image 693/1034
Processing image 694/1034
Processing image 695/1034
Processing image 696/1034
Processing image 697/1034
Processing image 698/1034
Processing image 699/1034
Processing image 700/1034
Processing image 701/1034
Processing image 702/1034
Processing image 703/1034
Processing image 704/1034
Processing image 705/1034
Processing image 706/1034
Processing image 707/1034
Processing image 708/1034
Processing image 709/1034
Processing image 710/1034
Processing image 711/1034
Processing image 712/1034
Processing image 713/1034
Processing image 714/1034
Processing image 715/1034
Processing image 716/1034
Processing image 717/1034
Processing image 718/1034
Processing image 719/1034
Processing image 720/1034
Processing image 721/1034
Processing image 722/1034
Processing image 723/1034
Processing image 724/1034
Processing image 725/1034
Processing image 726/1034
Processing image 727/1034
Processing image 728/1034
Processing image 729/1034
Processing image 730/1034
Processing image 731/1034
Processing image 732/1034
Processing image 733/1034
Processing image 734/1034
Processing image 735/1034
Processing image 736/1034
Processing image 737/1034
Processing image 738/1034
Processing image 739/1034
Processing image 740/1034
Processing image 741/1034
Processing image 742/1034
Processing image 743/1034
Processing image 744/1034
Processing image 745/1034
Processing image 746/1034
Processing image 747/1034
Processing image 748/1034
Processing image 749/1034
Processing image 750/1034
Processing image 751/1034
Processing image 752/1034
Processing image 753/1034
Processing image 754/1034
Processing image 755/1034
Processing image 756/1034
Processing image 757/1034
Processing image 758/1034
Processing image 759/1034
Processing image 760/1034
Processing image 761/1034
Processing image 762/1034
Processing image 763/1034
Processing image 764/1034
Processing image 765/1034
Processing image 766/1034
Processing image 767/1034
Processing image 768/1034
Processing image 769/1034
Processing image 770/1034
Processing image 771/1034
Processing image 772/1034
Processing image 773/1034
Processing image 774/1034
Processing image 775/1034
Processing image 776/1034
Processing image 777/1034
Processing image 778/1034
Processing image 779/1034
Processing image 780/1034
Processing image 781/1034
Processing image 782/1034
Processing image 783/1034
Processing image 784/1034
Processing image 785/1034
Processing image 786/1034
Processing image 787/1034
Processing image 788/1034
Processing image 789/1034
Processing image 790/1034
Processing image 791/1034
Processing image 792/1034
Processing image 793/1034
Processing image 794/1034
Processing image 795/1034
Processing image 796/1034
Processing image 797/1034
Processing image 798/1034
Processing image 799/1034
Processing image 800/1034
Processing image 801/1034
Processing image 802/1034
Processing image 803/1034
Processing image 804/1034
Processing image 805/1034
Processing image 806/1034
Processing image 807/1034
Processing image 808/1034
Processing image 809/1034
Processing image 810/1034
Processing image 811/1034
Processing image 812/1034
Processing image 813/1034
Processing image 814/1034
Processing image 815/1034
Processing image 816/1034
Processing image 817/1034
Processing image 818/1034
Processing image 819/1034
Processing image 820/1034
Processing image 821/1034
Processing image 822/1034
Processing image 823/1034
Processing image 824/1034
Processing image 825/1034
Processing image 826/1034
Processing image 827/1034
Processing image 828/1034
Processing image 829/1034
Processing image 830/1034
Processing image 831/1034
Processing image 832/1034
Processing image 833/1034
Processing image 834/1034
Processing image 835/1034
Processing image 836/1034
Processing image 837/1034
Processing image 838/1034
Processing image 839/1034
Processing image 840/1034
Processing image 841/1034
Processing image 842/1034
Processing image 843/1034
Processing image 844/1034
Processing image 845/1034
Processing image 846/1034
Processing image 847/1034
Processing image 848/1034
Processing image 849/1034
Processing image 850/1034
Processing image 851/1034
Processing image 852/1034
Processing image 853/1034
Processing image 854/1034
Processing image 855/1034
Processing image 856/1034
Processing image 857/1034
Processing image 858/1034
Processing image 859/1034
Processing image 860/1034
Processing image 861/1034
Processing image 862/1034
Processing image 863/1034
Processing image 864/1034
Processing image 865/1034
Processing image 866/1034
Processing image 867/1034
Processing image 868/1034
Processing image 869/1034
Processing image 870/1034
Processing image 871/1034
Processing image 872/1034
Processing image 873/1034
Processing image 874/1034
Processing image 875/1034
Processing image 876/1034
Processing image 877/1034
Processing image 878/1034
Processing image 879/1034
Processing image 880/1034
Processing image 881/1034
Processing image 882/1034
Processing image 883/1034
Processing image 884/1034
Processing image 885/1034
Processing image 886/1034
Processing image 887/1034
Processing image 888/1034
Processing image 889/1034
Processing image 890/1034
Processing image 891/1034
Processing image 892/1034
Processing image 893/1034
Processing image 894/1034
Processing image 895/1034
Processing image 896/1034
Processing image 897/1034
Processing image 898/1034
Processing image 899/1034
Processing image 900/1034
Processing image 901/1034
Processing image 902/1034
Processing image 903/1034
Processing image 904/1034
Processing image 905/1034
Processing image 906/1034
Processing image 907/1034
Processing image 908/1034
Processing image 909/1034
Processing image 910/1034
Processing image 911/1034
Processing image 912/1034
Processing image 913/1034
Processing image 914/1034
Processing image 915/1034
Processing image 916/1034
Processing image 917/1034
Processing image 918/1034
Processing image 919/1034
Processing image 920/1034
Processing image 921/1034
Processing image 922/1034
Processing image 923/1034
Processing image 924/1034
Processing image 925/1034
Processing image 926/1034
Processing image 927/1034
Processing image 928/1034
Processing image 929/1034
Processing image 930/1034
Processing image 931/1034
Processing image 932/1034
Processing image 933/1034
Processing image 934/1034
Processing image 935/1034
Processing image 936/1034
Processing image 937/1034
Processing image 938/1034
Processing image 939/1034
Processing image 940/1034
Processing image 941/1034
Processing image 942/1034
Processing image 943/1034
Processing image 944/1034
Processing image 945/1034
Processing image 946/1034
Processing image 947/1034
Processing image 948/1034
Processing image 949/1034
Processing image 950/1034
Processing image 951/1034
Processing image 952/1034
Processing image 953/1034
Processing image 954/1034
Processing image 955/1034
Processing image 956/1034
Processing image 957/1034
Processing image 958/1034
Processing image 959/1034
Processing image 960/1034
Processing image 961/1034
Processing image 962/1034
Processing image 963/1034
Processing image 964/1034
Processing image 965/1034
Processing image 966/1034
Processing image 967/1034
Processing image 968/1034
Processing image 969/1034
Processing image 970/1034
Processing image 971/1034
Processing image 972/1034
Processing image 973/1034
Processing image 974/1034
Processing image 975/1034
Processing image 976/1034
Processing image 977/1034
Processing image 978/1034
Processing image 979/1034
Processing image 980/1034
Processing image 981/1034
Processing image 982/1034
Processing image 983/1034
Processing image 984/1034
Processing image 985/1034
Processing image 986/1034
Processing image 987/1034
Processing image 988/1034
Processing image 989/1034
Processing image 990/1034
Processing image 991/1034
Processing image 992/1034
Processing image 993/1034
Processing image 994/1034
Processing image 995/1034
Processing image 996/1034
Processing image 997/1034
Processing image 998/1034
Processing image 999/1034
Processing image 1000/1034
Processing image 1001/1034
Processing image 1002/1034
Processing image 1003/1034
Processing image 1004/1034
Processing image 1005/1034
Processing image 1006/1034
Processing image 1007/1034
Processing image 1008/1034
Processing image 1009/1034
Processing image 1010/1034
Processing image 1011/1034
Processing image 1012/1034
Processing image 1013/1034
Processing image 1014/1034
Processing image 1015/1034
Processing image 1016/1034
Processing image 1017/1034
Processing image 1018/1034
Processing image 1019/1034
Processing image 1020/1034
Processing image 1021/1034
Processing image 1022/1034
Processing image 1023/1034
Processing image 1024/1034
Processing image 1025/1034
Processing image 1026/1034
Processing image 1027/1034
Processing image 1028/1034
Processing image 1029/1034
Processing image 1030/1034
Processing image 1031/1034
Processing image 1032/1034
Processing image 1033/1034
Processing image 1034/1034
cnn_codes = cnn_codes.numpy()
assert len(cnn_codes) == len(labels)
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(cnn_codes, labels, test_size=0.2, random_state=0)
from sklearn.linear_model import LogisticRegression

clf = LogisticRegression(random_state=0, max_iter=1000).fit(X_train, y_train)

y_pred = clf.predict(X_test)

from sklearn.metrics import classification_report

print(classification_report(y_test, y_pred))
                   precision    recall  f1-score   support

angular_leaf_spot       0.86      0.82      0.84        73
        bean_rust       0.86      0.84      0.85        77
          healthy       0.90      0.96      0.93        57

         accuracy                           0.87       207
        macro avg       0.87      0.88      0.87       207
     weighted avg       0.87      0.87      0.87       207