如何加载多个训练和有效性数据以训练和验证keras模型

时间:2020-09-19 06:17:32

标签: python numpy keras deep-learning generator

我同时在train_data和valid_data文件夹中存储了训练和有效性数据。在这两个文件夹中的数据都存储在.npz文件中。每个.npz文件都包含形状相同的目标和标签数据=(1024,28)(例如target = tu.npz ['data1']和label = tu.npz ['data2']。我想将它们加载到Keras模型采用类似于ImageDataGenerator的方式,并且想要训练和验证模型,因此我编写并尝试了不同的自定义生成器,但是它不起作用,这是我的代码。希望有人能帮到我。

def tf_train_generator(file_list, batch_size = 1):
    i = 0
    while True:
        if i*batch_size >= len(file_list):  
            i = 0
            np.random.shuffle(file_list)
        else:
            file_chunk = file_list[i*batch_size:(i+1)*batch_size]
            print(len(file_chunk))      


            for file in file_chunk:
                print(file)
                temp = np.load(file)

               
                X = temp['data1']
               
                Y= temp['data2']  


               
                i = i + 1
                yield X, Y

1 个答案:

答案 0 :(得分:0)

将(i = i + 1并产生X,Y)移出for循环。

    i= 0
    def tf_train_generator(file_list, batch_size = 1):
        global i
        while True:
            if i*batch_size >= len(file_list):  
                i = 0
                np.random.shuffle(file_list)
            else:
                file_chunk = file_list[i*batch_size:(i+1)*batch_size]
                print(len(file_chunk))      
    
    
                for file in file_chunk:
                    print(file)
                    temp = np.load(file)
    
                   
                    X = temp['data1']
                    Y= temp['data2'] 
                   
            i = i + 1
            yield X, Y