machine-learning - 如何使用给出图像数据集的数据集训练模型,并在单独的 csv 文件中给出该图像的标签?

标签 machine-learning

我有一个数据集,其中图像文件是单独给出的,该图像文件的标签在单独的 csv 文件中给出,第一列是图像文件名,第二列是其各自的标签。

|图片|标签| |123.jpeg|标签名称|

123.jpeg 真实图像在另一个文件夹(train)中

如何像这样输入数据集并训练我的机器学习模型,以便我有另一个图像文件夹(测试),其中存在用于测试的图像,并且这些图像名称在另一个单独的 test.csv 中给出,只有图像名称

|图片|标签| |13.jpg| ? |

我必须为哪个图像预测标签。如果有人可以用代码结构来解释这一点,那么它会很好理解,因为我是新手。谢谢

最佳答案

您必须先将 csv 文件加载到包含您的标签的数据框中。

import pandas as pd    
train = pd.read_csv(path_to_train_csv_file)
test = pd.read_csv(path_to_test_csv_file)

这将加载包含您的 image_name 和分配给它的相应标签的 csv 文件。确保标签名称是字符串,并且测试数据框不会有任何标签列。

然后定义你的train文件夹所在的路径。

train_folder = path_to_train_folder
test_folder = path_to_test_folder

现在您可以使用 tensorflow keras api 加载数据。首先定义一个Data generator

import tensorflow as tf
import tensorflow.keras as keras
from tensorflow.keras.preprocessing.image import ImageDataGenerator

# Define your data generator
train_gen = ImageDataGenerator(
rotation_range=45,
rescale=1./255,
horizontal_flip=True
)
test_gen = ImageDataGenerator(rescale = 1.255)

请注意,测试生成器仅缩放而不增加任何内容,而在训练生成器中应用 horizo​​ntal_flip 和旋转范围等增强技术。

创建数据生成器后,我们必须获取数据

train_data = train_gen.flow_from_dataframe(dataframe = train, 
directory = train_folder, x_col = name of your column with image, 
y_col = name of column of your labels, seed = 42,
batch_size = size of your batch, shuffle = True, 
class_mode="categorical",target_size = (height of image, width of image))

test_data = test_gen.flow_from_dataframe(dataframe = test, 
directory = test_folder, x_col = name of your column with image, 
y_col = None,
batch_size = size of your batch, shuffle = False, 
class_mode=None,target_size = (height of image, width of image))

请注意在 test_data 中,y_col 和 class_mode 是 None 的,因为它没有定义并且缺失并且必须被预测。

您可以检查它们是否正确加载。

imgs, lbl = next(iter(train_data))

您可以可视化您的 imgs,这是您的图像批处理,类似地,lbl 是您的标签批处理。

这就是您加载训练数据和测试数据以进行训练的方式

关于machine-learning - 如何使用给出图像数据集的数据集训练模型,并在单独的 csv 文件中给出该图像的标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62218611/

相关文章:

machine-learning - 如何构建多元排名系统?

machine-learning - 在经过训练的 CNN 模型中使用自己的类似 MNIST 的图像数据进行错误的预测

tensorflow - 在序列模型中使用填充时,Keras 验证准确性是否有效/可靠?

python - 涉及序列的任务需要多少个 RNN 单元?

machine-learning - 类别的混淆矩阵子集无法正常工作

python - keras-evaluate_generator 使用相同的训练数据产生不同的准确率

python - 你如何在 Tensorflow 中进行预测

python - 如何按顺序标记 Pandas 中的分类变量?

python - ValueError : Expected 2D array, 得到标量数组而不是 : array=5. 5

python - ml.projects.predict 函数有哪些参数以及如何调用它?