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 ...
随机推荐
- autocad 二次开发 最小包围圆算法
autocad 二次开发 最小包围圆算法 主要实现了在模型空间下的得到一个包围所有图元的最小圆,该算法的思路是这样:1.从点集中随机选出两个点作为直径对圆进行初始化.2.判断下一个点p是否在圆中,如果 ...
- webpack学习3.1由浅入深-打包JS
打包JS Step1:在新建的文件夹下新建一个sum.js文件,一个app.js文件 sum.js //es module export default function(a,b){ return a ...
- jdk13-新特性预览
一新特性 350: Dynamic CDS Archives(动态CDS档案) 351: ZGC: Uncommit Unused Memory(ZGC:取消提交未使用的内存) 353: Reimpl ...
- 如何使用charles抓包H5页面内容
安装charles 这里推荐直接去官网下载 https://www.charlesproxy.com/latest-release/download.do 根据自己的电脑选择合适的安装包,我这里选择m ...
- 云服务器配置 docker java mysql mongodb redis nginx 环境
磁盘挂载 fdisk -l #查看磁盘列表 mkfs.ext4 /dev/vdb #格式化磁盘 mount /dev/vdb /data #挂载磁盘在/data echo '/dev/vdb /dat ...
- Homebrew的安装
Homebrew是一款Mac OS平台下的软件包管理工具. 安装方法:命令行输入 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubuserc ...
- (译)An introduction to Kubernetes
原文:https://www.jeremyjordan.me/kubernetes/(博客园团队推荐的) 这篇博客文章将对Kubernetes进行介绍,以便您了解该工具背后的动机,含义以及使用方式.在 ...
- CSS入门(背景各种属性的详解、垂直居中和过渡效果的详解、渐变效果的简单讲解、雪碧图和精灵图)
一.各种背景属性 1.background-image 属性为元素设置背景图像. 元素的背景占据了元素的全部尺寸,包括内边距和边框,但不包括外边距. 默认地,背景图像位于元素的左上角,并在水平和垂直方 ...
- 初识PMP PMBOK初解(指南第一章引论)
引论 1.1指南概述和目的 普遍认可:大多数时候是适用于大多数项目,价值和有效性已获得一致认可. 良好实践:知识.技能.工具和技术能够达到预期的商业价值和成果,提高很多项目成功的可能性. 确定过程.输 ...
- 林克的小本本之——记一些基础的linux命令
查看shell cat /etc/shells 查看系统支持的shell echo $SHELL 查看目前正在使用的shell 快捷键 Ctrl+a 跳到行首 Ctrl+e 跳到行尾 Ctrl+u 删 ...