首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于大数据集(Keras)传输学习的存储和加载瓶颈特性

用于大数据集(Keras)传输学习的存储和加载瓶颈特性
EN

Data Science用户
提问于 2021-04-30 11:56:07
回答 1查看 52关注 0票数 0

为了解决分类问题,我想在一个相当大的图像数据集上应用迁移学习。目前,我加载一个培训前没有顶层的网络,添加我自己的顶层,冻结基本模型,并开始培训。由于数据集太大,无法装入内存,所以我使用预取的TF数据集加载训练集和验证集:

代码语言:javascript
复制
train_ds = keras.preprocessing.image_dataset_from_directory (training_data_dir,
                                                             batch_size=batch_size,
                                                             image_size=img_size,
                                                             label_mode='categorical')
val_ds = keras.preprocessing.image_dataset_from_directory (validation_data_dir,
                                                           batch_size=batch_size,
                                                           image_size=img_size,
                                                           label_mode='categorical')
train_ds = train_ds.prefetch(buffer_size=buffer_size)
val_ds = val_ds.prefetch(buffer_size=buffer_size)

现在为了缩短训练时间,我在这个页面上找到了一种很好的方法:https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html在训练模型之前,他们首先对每个输入图像运行基本模型,并存储基本模型的输出,这是瓶颈特性。然后对这些瓶颈特性进行培训。这意味着,在训练期间,基本网络不需要执行,节省了大量的计算时间。现在,对于他们的方法,他们有一个适合内存的数据集,所有图像上的所有瓶颈特性集合都表示为单个numpy数组,该数组存储在单个文件中并从单个文件中加载。

不幸的是,在我的情况下,这是不可能的,因为原来的图像集太大了,不能放入内存,而且还转换成瓶颈特性集,它仍然太大。因此,我正在寻找一种解决方案,将单个图像的瓶颈特性存储在单个文件中,并以类似于image_dataset_from_directory加载图像的方式加载这些瓶颈特征向量。

EN

回答 1

Data Science用户

回答已采纳

发布于 2021-04-30 12:13:59

您可以首先将瓶颈特性写入tfrecords文件,然后将其作为培训阶段的数据集加载。

tensorflow文档中,您可以找到如何做到这两种方法的完整示例。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/93782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档