tensorflow-- Dataset创建数据集对象
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创建数据集对象的更多相关文章
- 022. ASP.NET为DataSet中数据集添加关系及动态创建主子表和添加主子表关系
protected void Page_Load(object sender, EventArgs e) { string connectionString = "server=.;data ...
- DataSet与DataTable对象
DataSet与DataTable对象 摘自:http://www.cnblogs.com/fttbfttb/articles/1509662.html DataSet对象 DataSet是ADO.N ...
- 一个简单的TensorFlow可视化MNIST数据集识别程序
下面是TensorFlow可视化MNIST数据集识别程序,可视化内容是,TensorFlow计算图,表(loss, 直方图, 标准差(stddev)) # -*- coding: utf-8 -*- ...
- R语言实战读书笔记2—创建数据集(上)
第二章 创建数据集 2.1 数据集的概念 不同的行业对于数据集的行和列叫法不同.统计学家称它们为观测(observation)和变量(variable) ,数据库分析师则称其为记录(record)和字 ...
- DataSnap数据库连接池,数据集对象池的应用
传统的应用服务器的开发往往是在ServerMethods单元中拖放一堆TDataSet, TDaTaSetProvider控件,这是一个最简单粗暴的开发方向,往往会造成服务端程序文件的臃肿.服务运行期 ...
- c# 数据库编程(利用DataSet 和 DataAdaper对象操作数据库--单表操作)
一.概述 前面2篇文章,介绍了使用SqlCommand对象利用sql命令来操作数据库. 这篇文章我们来介绍使用c#的DataSet 和 DataAdaper对象操作操作数据库. 先来介绍下这两个对象是 ...
- SSAS系列——【03】多维数据(多维数据集对象)
原文:SSAS系列--[03]多维数据(多维数据集对象) 1.什么是Cube? 简单 Cube 对象由基本信息.维度和度量值组组成. 基本信息包括多维数据集的名称.多维数据集的默认度量值.数据源和存储 ...
- 第一课 导入库 - 创建数据集 - CSV读取 - 导出 - 查找最大值 - 绘制数据
第1课 创建数据 - 我们从创建自己的数据集开始分析.这可以防止阅读本教程的最终用户为得到下面的结果而不得不下载许多文件.我们将把这个数据集导出到一个文本文件中,这样您就可以获得从文本文件中一些拉取数 ...
- 创建javaScript对象的方法
一.工厂模式 function person (name,age) { var p=new Object(); p.name=name; p.age=age; p.showMessage=functi ...
随机推荐
- salt python msgpack.exceptions.
msgpack.exceptions.UnpackValueError: 'utf-8' codec can't decode byte 0x82 in position 22: invalid st ...
- 手动SQL注入原理分析与实践
代码仓库 本文所用代码的代码库地址: 点击这里前往Github仓库 了解SQL注入 定义 SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞.可以用它来从数 ...
- Spring Cloud进阶之路 | 二:服务提供者(discovery)
1 创建父项目 以前文所述,以spring boot 2.1.7.RELEASE为基,spring cloud版本为Greenwich.SR2,spring cloud alibaba版本为2.1.0 ...
- cmake常用命令总结
最近研究了下cmake,总结了一些常用命令,方便以后快速查找. project(projectname [CXX] [C] [Java]): 设置工程名. set(VAR [VALUE] [CACHE ...
- C# 生成全球唯一标识符GUID
string strguid = Guid.NewGuid().ToString();//57d99d89-caab-482a-a0e9-a0a803eed3ba 生成标准的标志符 (36位标准)st ...
- 使用VS进入源码调试
我的使用的是Visual Studio 2019 原因 学习完一部分东西后,我发现了一个更牛b的东西ABP框架. 所以开始学习ABP框架 https://github.com/aspnetboiler ...
- 百度大脑UNIT3.0智能对话技术全面解析
智能客服.智能家居.智能助手.智能车机.智能政务……赋予产品智能对话能力是提升产品智能化体验.高效服务的重要手段,已经开始被越来越多的企业关注并布局.然而,智能对话系统搭建涉及NLP.知识图谱.语音等 ...
- 查看python版本多少位的
正常我们在cmd终端输入python之后,如果有安装python,就会在回车之后出来关于你安装的python版本信息,几版本,多少位的,但是还有一种,像我这样只显示了python版本是3.7.5,并没 ...
- Web安全测试学习笔记-DVWA-盲注(使用sqlmap)
之前的sql注入页面(https://www.cnblogs.com/sallyzhang/p/11843291.html),返回了查询结果和错误信息.而下面的页面,返回信息只有存在和不存在两种情况, ...
- Mysql - 读写分离与读负载均衡之Maxscale
一.概述 常见的高可用方案如MMM和MHA等都将重点放在主库上,一旦主库出现故障,通过这些方案能将主库故障进行转移. 本文将给大家介绍一款由mariadb公司出品的中间件Maxscale,该中间件能实 ...