自定义数据生成器

2024-10-03 02:45:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个标准的目录结构trainvalidationtest,每个目录都包含类子目录

...
  |train
      |class A
          |1
              |1_1.raw
              |1_2.raw
              ...
          |2
              ...
      |class B
          ...
  |test
      ...

我想使用flow_from_directoryAPI,但我只能找到一个ImageDataGenerator,我拥有的文件是原始numpy数组(使用arr.tofile(...)生成)

有没有一种简单的方法可以将ImageDataGenerator与自定义文件加载器一起使用?

我知道flow_from_dataframe,但这似乎也没有实现我想要的;它用于读取具有更多自定义组织的图像。我想要一种简单的方法来加载原始二进制文件,而不必将100000个文件重新编码到JPG中,同时会损失一些精度(以及浪费时间等)


Tags: 文件方法fromtestnumpy目录标准raw
1条回答
网友
1楼 · 发布于 2024-10-03 02:45:27

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))

相关问题 更多 >