python - 如何将图像及其对应值(.csv)输入到 python 中的回归模型?
问题描述
我有一个图像数据集和一个 .csv 文件,其中包含这些图像的名称以及与每个图像关联的一些值(范围为 1-5)。例如图像数据集,该值给出降雨量,范围从 1(最低)-5(最高)。这些值甚至可以是小数,例如 2.5。
我已经开发了一个图像分类模型,我对图像值进行了四舍五入,并将整个数据集分为 5 个类,并将 5 个文件夹输入到模型中。
|data folder1 (training)
|train_data_dir
|class1
|image1.jpg
|..
| image100.jpg
|class2
|image1.jpg
|..
| image100.jpg
|class5
|image1.jpg
|..
| image100.jpg
|data folder2 (test) similar as above
*model description*
x = Dense(1024, activation="relu")(x)<br>
x = Dropout(0.5)(x) <br>
...
*train_generator = train_datagen.flow_from_directory(train_data_dir, target_size=(img_height, img_width), batch_size=batch_size, class_mode="categorical")*
现在我想为同样的问题设计一个回归模型。我想知道如何输入图像(例如 image.jpeg)及其对应的值(保存在 data.csv 中)文件并将其作为输入发送到神经网络?
|data folder1 (training)
|images folder
|image1.jpg
|..
| image500.jpg
|data.csv
|image name
|rainfall amount (1-5) including fractions
|data folder2 (test) similar as above
解决方案
您似乎正在尝试通过生成器从训练集中加载图像以训练 TensorFlow 模型。您几乎掌握了方法论,但您可能不太了解实现。TensorFlow 在使用时需要以下目录结构flow_from_directory
:
|-data
|-train
|-class_1
|-img1.png
|-img2.png
|-class_2
|-img1.png
|-img2.png
|-test
|-img1.png
|-img2.png
如您所见,这个特定的实现需要一个类。据我所知,它不适合回归任务。但是,您可以使用flow_from_dataframe
相当类似的方法来完成此操作。您将需要构建一个 pandas DataFrame,其中一列引用文件路径,另一列引用您的回归目标。您的生成器大约是:
train_data_gen = image_generator.flow_from_dataframe(dataframe=train_df,
x_col='filename',
y_col='regression_val',
batch_size=BATCH_SIZE,
shuffle=True,
target_size=(IMG_HEIGHT, IMG_WIDTH))
推荐阅读
- python - 将列表中的可能值添加到 groupby 结果
- apache-kafka - 由于组重新平衡,Spring Cloud Stream Kafka 提交失败
- azure-functions - 如何在 Azure 函数中使用 ArangoJS
- swift - 如何在 iOS 的 TikTok 上分享视频?
- apache - Magento 2.2.6 + Apache + varnish 4. 似乎 url 重写不起作用
- javascript - 加载静态资源失败
- asynchronous - 带有管道工的异步 API 端点
- c++ - 在多项目 Visual Studio 解决方案中编译不同配置的项目
- python - 使用简单的 Instagram Scraper 时遇到问题
- python - 两个哈希的比较算法