Hi @ptrblck, thanks for the quick response!
The files were individually labeled according to their category prior to any sort of segmentation into train/test/val. When I manually check the names in the category sub folders in the train, test, and val folders, they all correspond to the correct category. Furthermore, I separated the original data into train/test/val groups programatically, and when I review my code, I don’t see any room for a mishap. If you would like to double check that, here’s my code:
import os
import random
import shutil

def getTrainTestVal(inputFolder):

    files = []
    for file in os.listdir(inputFolder):
        files.append(inputFolder + "/" + file)

    random.shuffle(files)
    numFiles = len(files)
    eightyPercent = int(0.8 * numFiles)
    tenPercent = int(0.1 * numFiles)

    train = files[0:eightyPercent]
    test = files[eightyPercent:(tenPercent + eightyPercent)]
    val = files[(tenPercent + eightyPercent):]

    print(eightyPercent)
    print(tenPercent)
    print("*****************")
    print(len(train))
    print(len(test))
    print(len(val))
    print(len(train) + len(test) + len(val))
    print(len(files))

    return train, test, val


def makeSubDirectories(root):
    lf = root + "/LeftFractures"
    rf = root + "/RightFractures"
    lnf = root + "/LeftNon-Fractures"
    rnf = root + "/RightNon-Fractures"
    directories = [lf, rf, lnf, rnf]
    for directory in directories:
        if not os.path.exists(directory):
            os.mkdir(directory)


def makeDirectories(root):
    base = root + "/Separated"
    if not os.path.exists(base):
        os.mkdir(base)
    train = base + "/Train"
    test = base + "/Test"
    val = base + "/Val"

    directories = [train, test, val]
    for directory in directories:
        if not os.path.exists(directory):
            os.mkdir(directory)
            makeSubDirectories(directory)




originalRoot = "path_to_original_folder"
leftF = originalRoot + "/Fracturesjpg/LeftFractures"
rightF = originalRoot + "/Fracturesjpg/RightFractures"
leftNF = originalRoot + "/Nonfracturesjpg/LeftNon-Fracture"
rightNF = originalRoot + "/Nonfracturesjpg/RightNon-Fracture"


LFtrain, LFtest, LFval = getTrainTestVal(leftF)
print()
RFtrain, RFtest, RFval = getTrainTestVal(rightF)
print()
LNFtrain, LNFtest, LNFval = getTrainTestVal(leftNF)
print()
RNFtrain, RNFtest, RNFval = getTrainTestVal(rightNF)


root = "location_of_output_directories"
makeDirectories(root)

def copyOver(root, imageType, dataCategory, imageList):
    root = root + "/Separated"
    root = root + "/" + dataCategory
    root = root + "/" + imageType + "/"

    for image in imageList:
        imageList = image.split("/")
        path = root + imageList[-1]
        #print(path)
        shutil.copy(image, path)

   
copyOver(root, "LeftFractures", "Train", LFtrain)
copyOver(root, "RightFractures", "Train", RFtrain)
copyOver(root, "LeftNon-Fractures", "Train", LNFtrain)
copyOver(root, "RightNon-Fractures", "Train", RNFtrain)

copyOver(root, "LeftFractures", "Test", LFtest)
copyOver(root, "RightFractures", "Test", RFtest)
copyOver(root, "LeftNon-Fractures", "Test", LNFtest)
copyOver(root, "RightNon-Fractures", "Test", RNFtest)

copyOver(root, "LeftFractures", "Val", LFval)
copyOver(root, "RightFractures", "Val", RFval)
copyOver(root, "LeftNon-Fractures", "Val", LNFval)
copyOver(root, "RightNon-Fractures", "Val", RNFval)


Furthermore still, this is the second script I have written to separate the data into train/test/val groups. I redid the script thinking perhaps that somehow I had done just what you suggested, and mixed the labels up while separating the data.
Is there anything else I can provide to help?