python - 构建我自己的数据集以与 Tensorflow 或 Keras 一起使用

标签 python tensorflow keras dataset

目前我以这种方式加载数据集:

from keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()

但我想使用我自己的数据集,该数据集以这种方式在文件夹中标记:

flower_phoyos/daisy 
flower_phoyos/dandelion
flower_phoyos/roses
flower_phoyos/sunflowers
flower_phoyos/tulips

每个子文件夹都是一个要分类的类,分类器必须对雏菊、蒲公英、玫瑰、向日葵或郁金香进行排序。

解决方案可以使用tensorflow或keras

最佳答案

不是最优雅的方法,但对于小型数据集来说这应该足够了。 首先获取所有文件的列表,并记下它们的类:

import os
import numpy as np
from matplotlib import pyplot as plt

file_list = []
class_list = []

classnames = ['daisy', 'dandelion', 'roses', 'sunflowers', 'tulips']   
for class_name in classnames:
    dir_list = os.listdir(os.path.join('flower_phoyos', class_name))
    file_list.extend(dir_list)
    class_list.extend([classnames] * len(dir_list))

现在您知道自己有多少个示例 (len(file_list)),并且可以读取它们,并将它们分配给 numpy 数组。

img_data = np.zeros(len(file_list), height, width, n_bands)
# Of course I've assumed that you want all of the images to be the same size.
for ii, file_ in enumerate(file_list):
    img = plt.imread(file_)
    # Resize to height, width if your images are not all the same size.
    img_data[ii, :, :, :] = img
class_labels = np.array(class_list)

您现在可以重新排序 img_data 和 class_labels(确保以相同的方式重新排序)并将它们分成训练和测试。

关于python - 构建我自己的数据集以与 Tensorflow 或 Keras 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52749091/

相关文章:

python - Django 的多文件上传代码

python - 为什么我会得到一个(看似)正确拆分的字符串的 IndexError?

python - Keras/Theano - 如何在 Lambda 层中乘以向量

python - 回调问题 FailedPreconditionError

python - 线性链 CRF 分类器使用哪个激活函数?

python - Pyplot 填充线下方区域

python - Plotly:如何在直方图中同时显示正态分布和核密度估计?

tensorflow - 在 slim.stack 中交错 slim.dropout 和 slim.complete_connected ?

tensorflow - tf.compat.v1 和 tf.compat.v2 之间的别名和区别是什么?

python - 如何在pytorch中实现tf.nn.top_k