Keras的fit_generator()
模型方法需要一个生成形状元组(输入,目标)的生成器,其中两个元素都是NumPy数组.文档似乎暗示如果我只是将Dataset
迭代器包装在生成器中,并确保将Tensors转换为NumPy数组,我应该好好去.但是,这段代码给了我一个错误:
import numpy as np
import os
import keras.backend as K
from keras.layers import Dense, Input
from keras.models import Model
import tensorflow as tf
from tensorflow.contrib.data import Dataset
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
with tf.Session() as sess:
def create_data_generator():
dat1 = np.arange(4).reshape(-1, 1)
ds1 = Dataset.from_tensor_slices(dat1).repeat()
dat2 = np.arange(5, 9).reshape(-1, 1)
ds2 = Dataset.from_tensor_slices(dat2).repeat()
ds = Dataset.zip((ds1, ds2)).batch(4)
iterator = ds.make_one_shot_iterator()
while True:
next_val = iterator.get_next()
yield sess.run(next_val)
datagen = create_data_generator()
input_vals = Input(shape=(1,))
output …
Run Code Online (Sandbox Code Playgroud) 我如何创建一个tf.data.Dataset
from tf.keras.preprocessing.image.ImageDataGenerator.flow_from_directory
?
我正在考虑tf.data.Dataset.from_generator
,但不清楚如何获取它的output_types
关键字参数,给定返回类型:
where的
DirectoryIterator
生成元组是一个包含一批具有形状的图像的 numpy 数组,并且是一个对应标签的 numpy 数组。(x, y)
x
(batch_size, *target_size, channels)
y