美文网首页
数据生成器-适用大数据集小内存

数据生成器-适用大数据集小内存

作者: chunleiml | 来源:发表于2019-01-20 16:59 被阅读8次

深度学习模型训练中,一般情况下需要很多的训练数据,如果这些数据训练时一次全部加载到内存,会需要很大的内存容量,因此我们一般使用数据生成器往内存根据训练需要逐步加载数据到内存

#数据生成函数
def load_train_data(self,para,index1,index2):
    #此路径下把每次需要加载进内存的数据单独保存在一个文件夹中,文件夹命名按整数从0开始
    input_path = r'D:\Data\generator24'
    while(para):
        i = random.randint(index1,index2)
        labels_stomach = input_path + os.sep + str(i) + os.sep + 'std_labels_abdomen3D_320.nii.gz'
        labels_stomach = nb.load(labels_stomach)
        labels_stomach = labels_stomach.get_data()
        imgs = input_path + os.sep + str(i) + os.sep + 'std_imgs3D_320.nii.gz'
        imgs = nb.load(imgs)    
        imgs = imgs.get_data()
        yield (imgs, labels_stomach)

      
def tain_model(self):
    model = self.get_unet()
    model_checkpoint = ModelCheckpoint('seg_abdomen3D_24.h5',
                                       monitor='val_loss',
                                       verbose=1,
                                       save_best_only=True,
                                       save_weights_only = True,
                                       mode='min')
    check_list = [model_checkpoint, TensorBoard(log_dir='./log')]
    #使用keras的fit_generator,每次调用load_train_data都重新从本地路径加载数据进内存
    model.fit_generator(generator = self.load_train_data(True,0,700),
                        steps_per_epoch=600,
                        epochs=300,
                        validation_data=self.load_train_data(True,701,857),
                        validation_steps=156,
                        initial_epoch=0,
                        callbacks=check_list,
                        workers=8)

相关文章

  • 数据生成器-适用大数据集小内存

    深度学习模型训练中,一般情况下需要很多的训练数据,如果这些数据训练时一次全部加载到内存,会需要很大的内存容量,因此...

  • TF - 数据生成器

    生成器 ADEChallengeData数据集 数据的下载链接: http://sceneparsing.csai...

  • Python可迭代对象/迭代器/生成器

    Python可迭代对象/迭代器/生成器 概述 迭代是数据处理的基石. 扫描内存中放不下的数据集时, 需要找到一种惰...

  • 数据库与表的增删改查

    掌握三大数据库: mysql redis mongoDb。 mysql:基于内存的常用的数据库。redis:适用...

  • 浅析 Exists 与 IN

    1. 使用原则 小表驱动达标,即小的数据集驱动大的数据集 当 B 表的数据集小于 A 表的数据集时,用 IN 优于...

  • Python 生成器

    为什么要用生成器? 我们可以用列表存储数据,可是当数据特别大是建立一个列表存储数据就会很占用内存。所以,如果列表元...

  • 手势识别(多分类问题)

    导入所需的包 上传数据(数据集为参考文献的kaggle数据) 读取数据及预处理 构造batch数据生成器 定义模型...

  • 大数据之Spark知识点集合

    Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据...

  • 大数据技术学习之Spark技术总结

    Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据...

  • Python搭建神经网络

    生成数据集 让我们从生成所需要的数据集开始吧。幸运的是,scikit-learn提供了一些很有用的数据集生成器,让...

网友评论

      本文标题:数据生成器-适用大数据集小内存

      本文链接:https://www.haomeiwen.com/subject/bdgxjqtx.html