tf.data模块包含:

  • experimental 模块
  • Dataset 类
  •  FixedLengthRecordDataset 类
  • TFRecordDataset 类
  • TextLineDataset 类

 #  author by FH.
# OverView:
# tf.data
# experimental ---Modules
# Dataset ---class
# FixedLengthRecordDataset ---class
# TFRecordDataset ---class
# TextLineDataset ---class
import tensorflow as tf
import numpy as np # 1. 使用静态方法 tf.data.Dataset.from_tensor_slices
# 将输入的第一个维度切割,形成dataset
# 2. 使用 Dataset的 make_one_shot_iterator() 实例化一个 iterator
# 这个iterator 只能从头到尾读取一次。“one shot iterator”
def test1():
sess = tf.Session()
dataset1 = tf.data.Dataset.from_tensor_slices(np.array([1.0,2.0,3.0,4.0,5.0]))
dataset2 = tf.data.Dataset.from_tensor_slices(np.array([[1,2],[3,4],[0,9]]))
dataset3 = tf.data.Dataset.from_tensor_slices(
{
"a":np.array([1.0,2,3,4,5.0]),
"b":np.random.uniform(size=(5,2))
}
)
# 使用 Dataset的 make_one_shot_iterator() 实例化一个 iterator
# 这个iterator 只能从头到尾读取一次。“one shot iterator”
oneShotIterator1 = dataset1.make_one_shot_iterator()
oneShotIterator2 = dataset2.make_one_shot_iterator()
oneShotIterator3 = dataset3.make_one_shot_iterator()
element1 = oneShotIterator1.get_next()
element2 = oneShotIterator2.get_next()
element3 = oneShotIterator3.get_next()
for i in range(5):
print(sess.run(element1))
for i in range(3):
print(sess.run(element2))
for i in range(5):
print(sess.run(element3))
sess.close() # 1.Dataset 中的数据元素转换。
# map() :参数为一个函数,将dataset中的每个元素带入获取新的值
# batch(): 参数为一个整数,将多个元素组合成一个batch
def test2():
sess = tf.Session()
dataset = tf.data.Dataset.from_tensor_slices(np.array([1.0, 2.0, 3.0, 4.0, 5.0,6]))
# map() 重新映射新的元素值
dataset1 = dataset.map(lambda x: x * 3)
# batch() 2个组成一个batch, 组成batch 之后size 为3
dataset2 = dataset.batch(2)
# shuffle() 打乱dataset
dataset3 = dataset.shuffle(buffer_size=3)
# repeat() 将整个序列重复多次,重复4次 size 为24
dataset4 = dataset.repeat(4) oneShotIterator1 = dataset1.make_one_shot_iterator()
oneShotIterator2 = dataset2.make_one_shot_iterator()
oneShotIterator3 = dataset3.make_one_shot_iterator()
oneShotIterator4 = dataset4.make_one_shot_iterator()
element1 = oneShotIterator1.get_next()
element2 = oneShotIterator2.get_next()
element3 = oneShotIterator3.get_next()
element4 = oneShotIterator4.get_next()
for i in range(6): # map()
print(sess.run(element1))
for i in range(3): # batch()
print(sess.run(element2))
for i in range(6): # shuffle()
print(sess.run(element3))
for i in range(24): # repeat()
print(sess.run(element4))
sess.close() # example1: 读取图片和相应的标签并打乱,组成
# batch_size=2 的数据集,重复10 epoch
def _parse_function(imgfilename,label):
image_value = tf.read_file(imgfilename)
img = tf.image.decode_image(image_value)
img = tf.image.resize_images(img,[256,256])
return img,label
def example1():
# 图片列表
filesnames = tf.constant(['name1.jpg','name3.jpg','name5.jpg','name6.jpg','name7.jpg','name8.jpg'])
# 对应标签
labels = tf.constant([0,1,0,1,1,0])
# dataset (名称,标签)
dataset = tf.data.Dataset.from_tensor_slices((filesnames,labels))
# map 映射成图片和标签
dataset = dataset.map(_parse_function)
# shuffle ,batch , repeat
dataset = dataset.shuffle(buffersize=3).batch(2).repeat(10)
return dataset if __name__ == '__main__':
test2()

tensorflow-- Dataset创建数据集对象的更多相关文章

  1. 022. ASP.NET为DataSet中数据集添加关系及动态创建主子表和添加主子表关系

    protected void Page_Load(object sender, EventArgs e) { string connectionString = "server=.;data ...

  2. DataSet与DataTable对象

    DataSet与DataTable对象 摘自:http://www.cnblogs.com/fttbfttb/articles/1509662.html DataSet对象 DataSet是ADO.N ...

  3. 一个简单的TensorFlow可视化MNIST数据集识别程序

    下面是TensorFlow可视化MNIST数据集识别程序,可视化内容是,TensorFlow计算图,表(loss, 直方图, 标准差(stddev)) # -*- coding: utf-8 -*- ...

  4. R语言实战读书笔记2—创建数据集(上)

    第二章 创建数据集 2.1 数据集的概念 不同的行业对于数据集的行和列叫法不同.统计学家称它们为观测(observation)和变量(variable) ,数据库分析师则称其为记录(record)和字 ...

  5. DataSnap数据库连接池,数据集对象池的应用

    传统的应用服务器的开发往往是在ServerMethods单元中拖放一堆TDataSet, TDaTaSetProvider控件,这是一个最简单粗暴的开发方向,往往会造成服务端程序文件的臃肿.服务运行期 ...

  6. c# 数据库编程(利用DataSet 和 DataAdaper对象操作数据库--单表操作)

    一.概述 前面2篇文章,介绍了使用SqlCommand对象利用sql命令来操作数据库. 这篇文章我们来介绍使用c#的DataSet 和 DataAdaper对象操作操作数据库. 先来介绍下这两个对象是 ...

  7. SSAS系列——【03】多维数据(多维数据集对象)

    原文:SSAS系列--[03]多维数据(多维数据集对象) 1.什么是Cube? 简单 Cube 对象由基本信息.维度和度量值组组成. 基本信息包括多维数据集的名称.多维数据集的默认度量值.数据源和存储 ...

  8. 第一课 导入库 - 创建数据集 - CSV读取 - 导出 - 查找最大值 - 绘制数据

    第1课 创建数据 - 我们从创建自己的数据集开始分析.这可以防止阅读本教程的最终用户为得到下面的结果而不得不下载许多文件.我们将把这个数据集导出到一个文本文件中,这样您就可以获得从文本文件中一些拉取数 ...

  9. 创建javaScript对象的方法

    一.工厂模式 function person (name,age) { var p=new Object(); p.name=name; p.age=age; p.showMessage=functi ...

随机推荐

  1. 201871010119-帖佼佼《面向对象程序设计(java)》第十六周学习总结

    博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.co ...

  2. Java中“附近的人”实现方案讨论及代码实现

    前言 在我们平时使用的许多app中有附近的人这一功能,像微信.qq附近的人,哈罗.街兔附近的车辆.这些功能就在我们日常生活中出现. 像类似于附近的人这一类业务,在Java中是如何实现的呢? 本文就简单 ...

  3. 前台get传递含中文数据到后台出现中文乱码

    博客:(前后台文件编码相同)前台传后台中文乱码 4月4日补充 jsp页面第一句没有下面一句或者页面发布后查看源代码时第一句已经不在了 <%@ page language="java&q ...

  4. django----orm查询优化 MTV与MVC模型 choice参数 ajax serializers

    目录 orm查询优化 only defer select_related 与 prefetch_related MTV 与 MVC 模型 choice参数 Ajax 前端代码 后端代码 前后端传输数据 ...

  5. 清晰架构(Clean Architecture)的Go微服务: 程序结构

    我使用Go和gRPC创建了一个微服务,并试图找出最佳的程序结构,它可以用作我未来程序的模板. 我有Java背景,并发现自己在Java和Go之间挣扎,它们之间的编程理念完全不同.我写了一系列关于在项目工 ...

  6. 《Java基础知识》动态代理(InvocationHandler)详解

    1. 什么是动态代理 对象的执行方法,交给代理来负责.比如user.get() 方法,是User对象亲自去执行.而使用代理则是由proxy去执行get方法. 举例:投资商找明星拍广告,投资商是通过经纪 ...

  7. sql语句字符串包含

    select instr('1222','122') from dual//前者包含后者>0 oracle mysql 数据库可中 select charindex('1','12') from ...

  8. 解决logstash.outputs.elasticsearch[main] Could not index event to Elasticsearch status 404

    现象:lostack启动正常,logstack收集输入redis数据,输出到elasticsearch写入失败 提示:去建索引 的时候elasticsearch返回404 [2019-11-12T11 ...

  9. 微信小程序视图层介绍及用法

    一. 视图层 WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. 1.1. 数据绑定 1.1.1. 普通写法 <vi ...

  10. (译)An introduction to Kubernetes

    原文:https://www.jeremyjordan.me/kubernetes/(博客园团队推荐的) 这篇博客文章将对Kubernetes进行介绍,以便您了解该工具背后的动机,含义以及使用方式.在 ...