`

tensorflow的 图片数据集创建和读取

阅读更多

  TensorFlow是Google开源的深度学习框架。可以通过大量打过标签的数据的feed,来生成对同类事物的识别做用。 当然数据量少的话 就只能当一个分类器了。

   TensorFlow 也是一个熊弟介绍给我的, 当时说好了一起搞这东西,但是最后只剩我一个人在摸索了(有老婆的人,嗯~ 还是坑啊)

   

# -*- coding: utf-8 -*-
import os
import tensorflow as tf
from PIL import Image
import numpy as np

class_path="/home/images/"
writer = tf.python_io.TFRecordWriter("anm_pic_train.tfrecords")

count = 0
dic={}

def sort(key):
    global count
    if key in dic:
        return dic[key]
    else:
        dic[key]=count
        count = count +1
        return count-1

def text2vec(text):
    result = np.zeros(3, dtype=np.int)
    if text < 10 :
        result[0]=1
    if (text >= 10) and (text < 30):
        result[1]=1
    if text >= 30:
        result[2]=1
    return result

for file in os.listdir(class_path):
    if file.endswith(".jpg"):
        file_path = class_path + file
#       print(file_path)
        img = Image.open(file_path)
        # keng
        if img.mode == 'RGB':
            #处理图片的大小
            img = img.resize((240, 320))
            img_raw = img.tobytes()
            example = tf.train.Example(features=tf.train.Features(feature={
                #图片对应单个结果
                "label": tf.train.Feature(int64_list=tf.train.Int64List(value=[sort(file[:file.rindex("_")])])),
                # 图片对应多个结果
                #"label": tf.train.Feature(int64_list=tf.train.Int64List(value=text2vec(xx))),
                'img_raw': tf.train.Feature(bytes_list=tf.train.BytesList(value=[img_raw]))
            }))
            writer.write(example.SerializeToString())
writer.close()
print('dic:',dic,'  length:', len(dic))


# 读取tf
def read_and_decode(filename):
    filename_queue = tf.train.string_input_producer([filename])
    reader = tf.TFRecordReader()
    _, serialized_example = reader.read(filename_queue)
    features = tf.parse_single_example(serialized_example,
       features={
           # 单结果的 label 返回是int
           'label': tf.FixedLenFeature([], tf.int64),
           # 数组返回, [3] 输入的数组的长度一样
           # 'label': tf.FixedLenFeature([3], tf.int64),
           'img_raw' : tf.FixedLenFeature([], tf.string),
       })
    img = tf.decode_raw(features['img_raw'], tf.uint8)
    img = tf.reshape(img, [240, 320, 3])
    # normalize
    img = tf.cast(img, tf.float32) * (1. / 255) - 0.5
    label = features['label']
    return img, label

img, label = read_and_decode("anm_pic_train.tfrecords")
img_batch, label_batch = tf.train.shuffle_batch([img, label],batch_size=10, capacity=2000, min_after_dequeue=1000)
init = tf.global_variables_initializer()

with tf.Session() as sess:

    sess.run(init)
    coord = tf.train.Coordinator()
    threads = tf.train.start_queue_runners(coord=coord, sess=sess)
    for i in range(10):
        val, l = sess.run([img_batch, label_batch])
        print(l)
    print ("complete ...")
    coord.request_stop()
    coord.join(threads)
    sess.close()

 

   以上是 tensorflow 本地图片做数据集和队列读取的代码。 其中RGB图片是深坑之一(网上很多文章代码都一样,但是偏偏我用了就报错),当下载下来大量图片之后, 有些图片的位深 是不一样的,有24,32等等,其中24的rgb。

   在 tf.reshape的时候是 指定了3通道的图片即24位深的图片, 如果是32位深的图片就会在这里报错,但是坑爹的是在做数据集的时候并不会报错眨眼 。

 

 

结果:

 图片存放目录:



 

 

 

  • 大小: 44.5 KB
  • 大小: 28.2 KB
分享到:
评论

相关推荐

    Tensorflow MNIST 数据集打包

    3. **创建Tensorflow数据管道**:将读取到的数据转换成Tensorflow的`tf.train.slice_input_producer`或`tf.data.Dataset`,这可以创建一个数据流,供模型训练使用。 4. **预处理**:对图像进行归一化(通常将像素值...

    TensorFlow数据读取

    ### TensorFlow 数据读取详解 #### 引言 在深度学习领域,TensorFlow 是一个...而从文件中读取数据则适合处理大型数据集,可以有效地提高数据处理的效率。根据不同的应用场景选择合适的数据读取方式是非常重要的。

    TensorFlow 数据集快速入门

    在 TensorFlow 中,可以使用 `tf.data.TextLineDataset` 读取文件的每一行,然后使用 `tf.data.experimental.make_csv_dataset` 处理这些行,将其转换为结构化的数据集。 ```python def csv_input_fn(file_pattern,...

    tensorflow 用于实现图片分类数据集

    本案例中,我们将探讨如何利用 TensorFlow 实现一个简单的图片分类模型,基于提供的"星座数据集"。 首先,我们需要理解数据集的结构和内容。在"星座数据集"中,通常包含代表不同星座的图像,每个类别下有多个示例...

    Tensorflow(一)训练自己的数据集——猫狗图片

    在本文中,我们将深入探讨如何使用Tensorflow训练一个简单的深度学习模型,特别是在处理自定义数据集,例如这里的猫狗图片分类任务。这个任务虽然规模较小(仅38张图片),但对于初学者来说,是一个很好的实践项目,...

    tensorflow中keras支持的mnist数据集

    MNIST数据集是机器学习新手入门的经典案例,它包含60,000个训练样本和10,000个测试样本的手写数字图像,每个图像都是28x28像素的灰度图片。这个数据集主要用于识别手写数字,是许多深度学习教程的首选。 标题中提到...

    如何从csv文件构建Tensorflow的数据集

    构建从CSV文件到TensorFlow数据集的过程可以分为以下几个步骤: 1. 获得CSV文件的路径列表:首先,我们需要一个包含CSV文件路径的列表。这个列表可以手动创建,也可以使用文件搜索功能自动化生成。 2. 创建文件名...

    tensorflow数据集制作以及使用Inceptionv3进行训练

    本教程将深入探讨如何使用TensorFlow创建数据集并利用InceptionV3模型进行训练,这是一个针对图像识别任务优化的预训练模型。 首先,让我们了解TFRecord。TFRecord是TensorFlow提供的一个二进制文件格式,用于存储...

    从tensorflow_datasets中下载的数据集:imdb_reviews

    **TensorFlow Datasets (TFDS) 是一个用于加载和预处理数据的强大工具,它提供了许多标准数据集,方便机器学习和深度学习实验。在本案例中,我们关注的是`imdb_reviews`数据集,这是一个广泛使用的电影评论情感分类...

    Tensorflow图像处理以及数据读取.docx

    这个例子中,`parse_image`函数处理单个图像,`create_dataset`则根据给定的图片路径和批次大小创建数据集。通过这种方式,我们可以实时地在训练过程中进行图像预处理,适应不断变化的预处理需求,而无需预先保存...

    TensorFlow 读取CSV数据的实例

    第二个实例则是读取Iris数据集的CSV文件,这个例子稍微复杂一些,因为它涉及到训练和测试数据集的读取。我们定义了一个`read_data`函数,它接受一个文件队列作为参数,然后使用`TextLineReader`读取文件,同时跳过...

    浅谈TensorFlow中读取图像数据的三种方式

    总之,TensorFlow提供了丰富的工具和方法来处理图像数据,无论是单张图片的简单读取,还是大规模数据集的高效训练。理解并掌握这些方法,对于进行深度学习实践至关重要。在实际应用中,应根据项目需求选择合适的数据...

    船舶图片数据集.rar

    船舶图片数据集的创建和收集是一项复杂而细致的工作,需要大量的资源和时间投入。从描述中我们知道,此数据集规模庞大,拥有两千多张海面船舶图片,这些图片来源于世界各地不同的海域。每张图片都可能在不同的季节、...

    tensorflow制作自己的图像数据集并训练

    通过遵循上述步骤,你将能够利用TensorFlow成功创建和训练自己的图像数据集。这个过程不仅可以加深对TensorFlow的理解,也适用于其他类似的深度学习项目。记得根据实际需求调整代码,以满足特定任务的需求。

    2.tensorflow数据读取、训练模型、测试模型代码

    同时,TensorFlow的子库如TensorFlow Datasets可以简化数据集的获取和预处理。 总的来说,TensorFlow提供的工具和API使得数据读取、模型训练和测试变得高效且易于理解。理解并熟练掌握这些基本概念和操作,对于任何...

    fer2013数据集和提取出的数据集图片以及python提取代码 - 副本.zip

    Python在处理此类数据集时,通常会使用PIL(Python Imaging Library)或者OpenCV库来读取和预处理图像,包括调整尺寸、归一化像素值、数据增强等步骤。同时,numpy库用于处理图像数据,而pandas用于管理标签和元数据...

    读取mnist文件转为图片

    MNIST(Modified National Institute of Standards and Technology)是一个广泛使用的手写数字识别数据集,由Yann LeCun等人创建,是机器学习和深度学习领域的经典入门案例。它包含60,000个训练样本和10,000个测试...

    fer2013数据集和提取出的数据集图片以及python提取代码

    1. **数据预处理**:加载数据集,可能使用PIL或OpenCV库来读取和调整图像大小,使其适应模型输入。同时,将标签编码为数值形式,便于模型理解。 2. **数据划分**:根据原始数据集的结构,将数据划分为训练集、验证...

Global site tag (gtag.js) - Google Analytics