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位深的图片就会在这里报错,但是坑爹的是在做数据集的时候并不会报错 。
结果:
图片存放目录:
相关推荐
3. **创建Tensorflow数据管道**:将读取到的数据转换成Tensorflow的`tf.train.slice_input_producer`或`tf.data.Dataset`,这可以创建一个数据流,供模型训练使用。 4. **预处理**:对图像进行归一化(通常将像素值...
### TensorFlow 数据读取详解 #### 引言 在深度学习领域,TensorFlow 是一个...而从文件中读取数据则适合处理大型数据集,可以有效地提高数据处理的效率。根据不同的应用场景选择合适的数据读取方式是非常重要的。
在 TensorFlow 中,可以使用 `tf.data.TextLineDataset` 读取文件的每一行,然后使用 `tf.data.experimental.make_csv_dataset` 处理这些行,将其转换为结构化的数据集。 ```python def csv_input_fn(file_pattern,...
本案例中,我们将探讨如何利用 TensorFlow 实现一个简单的图片分类模型,基于提供的"星座数据集"。 首先,我们需要理解数据集的结构和内容。在"星座数据集"中,通常包含代表不同星座的图像,每个类别下有多个示例...
在本文中,我们将深入探讨如何使用Tensorflow训练一个简单的深度学习模型,特别是在处理自定义数据集,例如这里的猫狗图片分类任务。这个任务虽然规模较小(仅38张图片),但对于初学者来说,是一个很好的实践项目,...
MNIST数据集是机器学习新手入门的经典案例,它包含60,000个训练样本和10,000个测试样本的手写数字图像,每个图像都是28x28像素的灰度图片。这个数据集主要用于识别手写数字,是许多深度学习教程的首选。 标题中提到...
构建从CSV文件到TensorFlow数据集的过程可以分为以下几个步骤: 1. 获得CSV文件的路径列表:首先,我们需要一个包含CSV文件路径的列表。这个列表可以手动创建,也可以使用文件搜索功能自动化生成。 2. 创建文件名...
本教程将深入探讨如何使用TensorFlow创建数据集并利用InceptionV3模型进行训练,这是一个针对图像识别任务优化的预训练模型。 首先,让我们了解TFRecord。TFRecord是TensorFlow提供的一个二进制文件格式,用于存储...
**TensorFlow Datasets (TFDS) 是一个用于加载和预处理数据的强大工具,它提供了许多标准数据集,方便机器学习和深度学习实验。在本案例中,我们关注的是`imdb_reviews`数据集,这是一个广泛使用的电影评论情感分类...
这个例子中,`parse_image`函数处理单个图像,`create_dataset`则根据给定的图片路径和批次大小创建数据集。通过这种方式,我们可以实时地在训练过程中进行图像预处理,适应不断变化的预处理需求,而无需预先保存...
第二个实例则是读取Iris数据集的CSV文件,这个例子稍微复杂一些,因为它涉及到训练和测试数据集的读取。我们定义了一个`read_data`函数,它接受一个文件队列作为参数,然后使用`TextLineReader`读取文件,同时跳过...
总之,TensorFlow提供了丰富的工具和方法来处理图像数据,无论是单张图片的简单读取,还是大规模数据集的高效训练。理解并掌握这些方法,对于进行深度学习实践至关重要。在实际应用中,应根据项目需求选择合适的数据...
船舶图片数据集的创建和收集是一项复杂而细致的工作,需要大量的资源和时间投入。从描述中我们知道,此数据集规模庞大,拥有两千多张海面船舶图片,这些图片来源于世界各地不同的海域。每张图片都可能在不同的季节、...
通过遵循上述步骤,你将能够利用TensorFlow成功创建和训练自己的图像数据集。这个过程不仅可以加深对TensorFlow的理解,也适用于其他类似的深度学习项目。记得根据实际需求调整代码,以满足特定任务的需求。
同时,TensorFlow的子库如TensorFlow Datasets可以简化数据集的获取和预处理。 总的来说,TensorFlow提供的工具和API使得数据读取、模型训练和测试变得高效且易于理解。理解并熟练掌握这些基本概念和操作,对于任何...
Python在处理此类数据集时,通常会使用PIL(Python Imaging Library)或者OpenCV库来读取和预处理图像,包括调整尺寸、归一化像素值、数据增强等步骤。同时,numpy库用于处理图像数据,而pandas用于管理标签和元数据...
MNIST(Modified National Institute of Standards and Technology)是一个广泛使用的手写数字识别数据集,由Yann LeCun等人创建,是机器学习和深度学习领域的经典入门案例。它包含60,000个训练样本和10,000个测试...
1. **数据预处理**:加载数据集,可能使用PIL或OpenCV库来读取和调整图像大小,使其适应模型输入。同时,将标签编码为数值形式,便于模型理解。 2. **数据划分**:根据原始数据集的结构,将数据划分为训练集、验证...