python - 如何使用 keras 加载图像数据进行回归?
问题描述
我现在已经阅读了几个教程,这些教程提供了如何导入图像以使用 Keras 进行分类的说明。据我所知,所有教程都只是描述一个多类场景(例如猫/狗类。)。这些方法不适用于我的问题。
我想做一个回归,将图像作为输入并返回图像作为输出。我的问题:如果没有分类而是回归,我如何轻松地将图像数据传递给 Keras?
对于每对给定的输入和输出训练数据,我无法从以下位置轻松导入:
├── input_data
│ ├── input0.png
| ├── input1.png
| └── ...
└── output_data
├── output0.png
├── output1.png
└── ...
至此:
x_train, x_valid, y_train, y_valid = train_test_split(inputs, outputs, test_size=0.2, shuffle= True)
我已经尝试过的:
Keras flow_from_directory方法看起来几乎完美,并提供了很好的功能,但它仅适用于在子目录中排序的分类数据。
其次,Tensorflow 提供了这个图像导入功能。
from keras.preprocessing.image import img_to_array, load_img img = load_img('img.png') x = img_to_array(img)
据我所知,这也是直截了当的,只能打开单个图像而不是整个目录。如果遍历整个目录,这可能会有所帮助,但由于 Keras 具有那些很好的预处理功能,我很想知道是否有类似 keras 的方式。所以我的问题:
有没有什么合适的方法可以导入大型图像数据集进行回归?
解决方案
据我所知,没有将所有图像作为数据集Keras
加载的特定功能。但是,您可以通过使用和的组合来完成此操作,类似以下内容会一次性将所有图像加载到列表中:os.walk()
Image.open()
import os
from PIL import Image # or you can use the keras one to load images
def load_dataset(top_dir="input_data"):
images_dataset = []
for root, dirs, files in os.walk(top_dir):
for name in files:
# print(os.path.join(root, name))
img = np.array(Image.open(os.path.join(root, name)))
images_dataset.append(img)
return images_dataset
推荐阅读
- html - 使用 Bootstrap 4 设计发票表单
- javascript - 如何在画布背景上显示 DIV
- node.js - 在 firebase 函数中设置 dotenv
- sql - 如何在此案例语句中处理除以零
- php - 如何将概率放入多个项目的随机生成中?
- google-sheets - 在发生特定时间后,如何将特定值替换为另一个值?
- javascript - 如何使用NodeJS中的firebase云功能从firebase实时数据库中找出最近的位置LatLng
- docker - 增加 docker pull 超时
- sql - Excel VBA - 动态范围
- rust - Rust 中元组的求值顺序是什么?