在TensorF中导入自己的数据集

2024-09-30 01:33:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我用TensorFlow做了一个神经网络。我现在想导入我自己的图像作为数据集,在这些图像上训练神经网络。在

为此,我首先得到一个文件名及其相应标签的列表。我使用以下代码执行此操作:

locations = {"chimpanzee":["G:\Profielwerkstuk\chimpanzee"],
           "gorilla":["G:\Profielwerkstuk\gorilla"],
           "howler monkey":["G:\Profielwerkstuk\howler_monkey"]}

files = []
labels = []
numberlabel = []

for label, folders in locations.items():
    numberlabel.append(label)
    filesperlabel = []
    for folder in folders:
        filesperlabel.extend([join(folder, f) for f in listdir(folder) if isfile(join(folder, f))])
    print(len(filesperlabel))
    files.extend(filesperlabel)
    labels.extend([len(numberlabel) - 1] * len(filesperlabel))

locations这是一个以标签为键,文件夹为值的字典。在

这很好:我得到一个文件位置的列表,一个标签列表,以及一个在monkey类型中转换输出神经元编号的列表。在

然后我试着从这个数据集中创建一个TensorFlow数据集。我首先转换TensorFlow常量中的文件名和标签名列表:

^{pr2}$

我首先尝试了datasets#decoding_image_data_and_resizing_it" rel="nofollow noreferrer">Tensorflow website上的代码。但是,我得到的错误是图像没有形状解码后。如何正确导入图像?在

此外,在生成一个数据集之后,我希望成批地循环使用它。MNIST数据集包含一个非常方便的函数,但是它是否也可以用于自定义数据集?寻找这些问题并没有给我很多有用的提示。在


Tags: 数据in图像列表forlentensorflow标签
1条回答
网友
1楼 · 发布于 2024-09-30 01:33:25

对于导入:使用OpenCV导入图像

import opencv as cv
imgDataset = []
for i in range(len(files)):
    imgDataset.append(cv2.imread(files[i]))
imgDataset = np.asarray(imgDataset)

您将得到一个numpy数组的形状(num_files,height,width,color_channels)

访问第i个图像应该是imgDataset[i]。在

这里的问题可能是,如果数据集太大,以后将在将其输入占位符时遇到问题。批处理整个数据集可能很困难。在

如果您在尺寸方面遇到困难,请查看以下链接: https://stanford.edu/~shervine/blog/keras-how-to-generate-data-on-the-fly.html

这离批处理数据集又近了一步。在

相关问题 更多 >

    热门问题