我有train
,validation
,test
的标准目录结构,每个目录都包含类子目录。
...
|train
|class A
|1
|1_1.raw
|1_2.raw
...
|2
...
|class B
...
|test
...
我想使用flow_from_directory
API,但我只能找到一个ImageDataGenerator
,并且我拥有的文件是原始的numpy数组(由arr.tofile(...)
生成)。
是否可以通过自定义文件加载器轻松使用ImageDataGenerator
?
我知道flow_from_dataframe
,但这似乎也无法实现我想要的;它用于读取具有更多自定义组织的图像。我想要一种简单的方法来加载原始二进制文件,而不必在过程中(以及浪费的时间等)造成一些精度损失的情况下,将100,000s的文件重新编码为jpg。
答案 0 :(得分:0)
Tensorflow是具有IO功能的整个生态系统,而ImageDataGenerator
是最少灵活的方法之一。在How to Load Numpy Data in Tensorflow上阅读。
import tensorflow as tf
import numpy as np
DATA_URL = 'https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz'
path = tf.keras.utils.get_file('mnist.npz', DATA_URL)
with np.load(path) as data:
train_examples = data['x_train']
train_labels = data['y_train']
test_examples = data['x_test']
test_labels = data['y_test']
train_dataset = tf.data.Dataset.from_tensor_slices((train_examples, train_labels))
test_dataset = tf.data.Dataset.from_tensor_slices((test_examples, test_labels))