使用多个文件夹和子文件夹训练CNN模型

时间:2018-06-03 08:14:40

标签: python tensorflow keras

我正在开发卷积神经网络(CNN)模型来预测1,2,3或4类患者。我在TensorFlow上使用Keras。

我有64个乳腺癌患者数据,分为四类(1 =无疾病,2 = ......,3 = ......,4 =进展性疾病)。在每位患者的数据中,我在不同日期和每个MRI文件夹内拍摄了3组MRI扫描图像,我有7到8个子文件夹,包含不同平面的MRI图像(如冠状面/矢状面等) 。

我学会了如何处理基本的“Cat-Dog-CNN-Classifier”,这很容易,因为我把所有的猫和猫将狗图像分成单个文件夹来训练网络。但是,我如何解决乳腺癌患者数据中的问题?它有多个文件夹和子焊接器。

请建议。

3 个答案:

答案 0 :(得分:0)

您需要构建导航文件夹的数据集。这可以在python中轻松完成。

因此,假设您有以下文件夹树:

root/
\__ Patient_1/
\__ \_______ MRI_1/
\__ \_______ \___ folder_1/
\__ \_______ \___ folder_2/
\__ \_______ \___ folder_3/
\__ \_______ \___ ...     /
\__ \_______ \___ folder_8/
\__ \_______ MRI_2/
\__ \_______ ...  /...
\__ Patient_2/
...

首先,您需要获取当前的工作目录(cwd):

import os
cwd = os.getcwd()

然后您可以开始构建数据集:

dataset = [];

for p in range(1, 65):
    for mri in range(1, 4):
        mri_folder = cwd + '/Patient_{}/MRI_{}/'.format(p, mri)

        # Since we do not know how many folders there will be, 
        # we need to list all the folders in the current MRI folder.

        folders_names = os.listdir(mri_folder)
        for f in folder_names:
            # list all images in current folder
            fnames = os.listdir('{}/{}/'.format(mri_folder, f))

            for fname in fnames:
                # Now you can open your image and append it to dataset

希望它有所帮助!

答案 1 :(得分:0)

使用这个循环:

for _,_,files in os.walk("data_folder/"):
    for name in files:
        FP = os.path.join(root, name)

答案 2 :(得分:-1)

使用# Plot trends figure(num=None, figsize=(12, 6), dpi=80, facecolor='w', edgecolor='k') plt.plot(state_ca_month, state_median_price) plt.show() 递归访问子目录中的所有文件并追加到数据集。