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. Winform 中DataGridView、dev Gridview控件添加行标题

    有很多种方法. 1.可以在DataGridView控件中的RowStateChanged事件改变行标题单元格的值(Row.HeaderCell.Value) /// <summary> / ...

  2. 我的第一次面试 —— 腾讯 AI安全 一面总结

    前言 在校两年半,没经历过面试的毒打,第一次面试给了腾讯,周二晚上学长帮推的简历周三下午就打电话来问周四晚上有没有空面试.那天下午还在赶着数据库的实验报告,脑子有点转不过来就说了有空,然后仔细一看好像 ...

  3. VS2019 开发Django(十一)------表单

    导航:VS2019开发Django系列 今天是中华人民共和国成立70周年的日子,普天同庆,看阅兵看得满腔热血,热泪盈眶,祖国都这么优秀了,我要更加努力才行啊! 这个Django系列的文章,没有很深入的 ...

  4. sudo 1.2.27 - Security Bypass

    EXP: https://www.exploit-db.com/exploits/47502?utm_source=dlvr.it&utm_medium=twitter 漏洞复现: 具体配置参 ...

  5. Shell(五):函数

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用. shell中函数的定义格式: [ function ] funname [()] { action; [return i ...

  6. Nginx模块及配置虚拟主机

    1.Nginx的2组主要的模块 (1)core modules (必需,核心模块) 包括:Main.Events (2)Standard HTTP modules(虽然不是必需,但是缺省都会安装,不建 ...

  7. 使用函数计算三步实现深度学习 AI 推理在线服务

    目前深度学习应用广发, 其中 AI 推理的在线服务是其中一个重要的可落地的应用场景.本文将为大家介绍使用函数计算部署深度学习 AI 推理的最佳实践,  其中包括使用 FUN 工具一键部署安装第三方依赖 ...

  8. 精通awk系列(5):BEGIN和END语句块

    回到: Linux系列文章 Shell系列文章 Awk系列文章 BEGIN和END语句块 awk的所有代码(目前这么认为)都是写在语句块中的. 例如: awk '{print $0}' a.txt a ...

  9. python中time.strftime不支持中文,报错UnicodeEncodeError: 'locale' codec can't encode character '\u5e74' in position 2: encoding error

    使用time.strftime将 "2020-10-10 10:10:10" 转化为  2020年10月10日10时10分10 报错: import time timestr=&q ...

  10. 爬虫(二):抓包工具Fiddler

    1. 抓包工具Fiddler 1.1 Fiddler下载与安装 最简单的方法,打开百度,搜索fiddler下载. 下载完毕解压即可,此版本为绿色版. 点击这个即可运行抓包软件. 1.2 Fiddler ...