为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 tf.data API 中使用 Keras 生成器

如何在 tf.data API 中使用 Keras 生成器

明月笑刀无情 2021-07-04 18:22:16
我正在尝试使用 Keras 预处理库中的生成器。我想对此进行试验,因为 Keras 为图像增强提供了很好的功能。但是,我不确定这是否真的可能。这是我从 Keras 生成器制作 tf 数据集的方法:def make_generator():    train_datagen = ImageDataGenerator(rescale=1. / 255)    train_generator =     train_datagen.flow_from_directory(train_dataset_folder,target_size=(224, 224), class_mode='categorical', batch_size=32)    return train_generatortrain_dataset = tf.data.Dataset.from_generator(make_generator,(tf.float32, tf.float32)).shuffle(64).repeat().batch(32)请注意,如果您尝试直接将其train_generator作为参数提供给tf.data.Dataset.from_generator,则会出现错误。但是,上述方法不会产生错误。当我在会话中运行它以检查数据集的输出时,我收到以下错误。iterator = train_dataset.make_one_shot_iterator()next_element = iterator.get_next()sess = tf.Session()for i in range(100):    sess.run(next_element)找到属于 2 个类别的 1000 张图像。-------------------------------------------------- ------------------------- InvalidArgumentError Traceback (最近一次调用最后一次) /usr/local/lib/python3.6/dist-packages/tensorflow/ python/client/session.py in _do_call(self, fn, *args) 1291 try: -> 1292 return fn(*args) 1293 除了 errors.OpError as e:/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py in _run_fn(feed_dict, fetch_list, target_list, options, run_metadata) 1276 return self._call_tf_sessionrun( -> 1277 options, feed_dict,第 1278 章/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py in _call_tf_sessionrun(self, options, feed_dict, fetch_list, target_list, run_metadata) 1366 self._session, options, feed_dict, fetch_list,目标列表,-> 1367 运行元数据)1368InvalidArgumentError:无法批量处理组件 0 中具有不同形状的张量。第一个元素的形状为 [32,224,224,3],元素 29 的形状为 [8,224,224,3]。[[{{node IteratorGetNext_2}} = IteratorGetNextoutput_shapes=[, ], output_types=[DT_FLOAT, DT_FLOAT], _device="/job:localhost/replica:0/task:0/device:CPU:0"]]在处理上述异常的过程中,又发生了一个异常:请让我知道是否有人对此有任何经验或知道任何其他方式。
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信