python - 从 csv 文件读取图像并返回 tf.data.Dataset 对象的有效方法
问题描述
我有一个包含两列的 csv 文件:
- 存储为
numpy
数组的图像的文件路径 - 图像的标签
csv 中的每一行对应一个项目(样本)。
我想创建一个tf.data
读取文件路径并加载 numpy 数组和与之关联的标签的管道。我该怎么做才能返回一个tf.data.Dataset
对象?
网站上的文档信息量不大,我不知道从哪里开始。
解决方案
一种方法是将这两个文件加载到变量中并使用tf.data.Dataset.from_tensor_slices
(参见https://www.tensorflow.org/guide/datasets#sumption_numpy_arrays)
另一种方法是将文件路径映射到数据集并执行数据流水线以将其读取并返回为 (img, label) 这是来自https://www.tensorflow.org/tutorials/load_data/images的示例代码
def load_and_preprocess_image(path):
image = tf.read_file(path)
return preprocess_image(image)
ds = tf.data.Dataset.from_tensor_slices((all_image_paths, all_image_labels))
# The tuples are unpacked into the positional arguments of the mapped function
def load_and_preprocess_from_path_label(path, label):
return load_and_preprocess_image(path), label
image_label_ds = ds.map(load_and_preprocess_from_path_label)
如果数据对于内存来说太大,我自己更喜欢第二种方式,但第一种方式对于小数据很方便
推荐阅读
- jquery - 勾选全选后从关闭下拉列表中停止 Select2
- r - 获取 URL 的特定部分
- spring - 在 Spring 中将插件添加到应用程序上下文
- fabricjs - 当我从 FabricJS builder 下载时,BlendImage 过滤器不可用
- c# - 在 NGUI 中删除子级
- excel - Excel Power 数据透视表中的额外列
- arrays - 如何检查值是否存在于数组中?
- amazon-web-services - 为什么 AWS X-Ray 不显示错误?
- ruby-on-rails - 如何解决您的 Ruby 版本是 2.3.1,但您的 Gemfile 指定的是 2.5.1?
- mongodb - 本地 MongoDb 与 CosmosDb 查询执行的差异