【问题标题】:Load image files in a directory as dataset for training in Tensorflow将目录中的图像文件加载为数据集以在 Tensorflow 中进行训练
【发布时间】:2017-02-18 05:45:19
【问题描述】:

我是 tensorflow 的新手,我从官方的 MNIST 示例代码开始学习 tensorflow 的逻辑。但是,我觉得不好的一点是,MNIST 示例提供了原始数据集作为一些压缩文件,其格式对初学者来说并不清晰。这种情况也适用于以二进制文件形式提供数据集的 Cifar10。我认为在实际的深度学习任务中,我们的数据集可能是很多图像文件,例如一个目录中的*.jpg*.png,我们还有一个记录每个文件标签的文本文件(如 ImageNet 数据集)。让我以 MNIST 为例。

MNIST 包含 50k 个大小为 28 x 28 的训练图像。现在让我们假设这些图像是 jpg 格式,并存储在目录./dataset/ 中。在./dataset/,我们有一个文本文件label.txt存储每张图片的标签:

/path/to/dataset/
                 image00001.jpg
                 image00002.jpg
                 ... ... ... ...
                 image50000.jpg
                 label.txt

label.txt 是这样的:

#label.txt:
image00001.jpg 1
image00002.jpg 0
image00003.jpg 4
image00004.jpg 9
... ... ... ... 
image50000.jpg 3

现在我想用 Tensorflow 用这些数据集训练一个单层模型。谁能帮忙提供一个简单的代码 sn-p 来做到这一点?

【问题讨论】:

    标签: python tensorflow


    【解决方案1】:

    基本上你需要两件事。第一个是普通的python代码,如下所示:

    import numpy as np
    from scipy import misc # feel free to use another image loader
    
    def create_batches(batch_size):
      images = []
      for img in list_of_images:
        images.append(misc.imread(img))
      images = np.asarray(images)
    
      #do something similar for the labels
    
      while (True):
        for i in range(0,total,batch_size):
          yield(images[i:i+batch_size],labels[i:i+batch_size])
    

    现在是张量流部分

    imgs = tf.placeholder(tf.float32,shape=[None,height,width,colors])
    lbls = tf.placeholder(tf.int32, shape=[None,label_dimension])
    
    with tf.Session() as sess:
    #define rest of graph here
    # convolutions or linear layers and cost function etc.
    
    
      batch_generator = create_batches(batch_size)
      for i in range(number_of_epochs):
        images, labels = batch_generator.next()
        loss_value = sess.run([loss], feed_dict={imgs:images, lbls:labels})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-13
      • 2021-06-03
      • 2022-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-06
      • 1970-01-01
      相关资源
      最近更新 更多