TensorFlow dataset API 使用
TensorFlow dataset API 使用
由于本人感兴趣的是自然语言处理,所以下面有关dataset API 的使用偏向于变长数据的处理。
1. 从迭代器中引入数据
import numpy as np
import tensorflow as tf
def gen():
for _ in range(10):
sz = np.random.randint(3, 20, 1)[0]
yield np.random.randint(1, 100, sz), np.random.randint(0, 10, 1)[0]
dataset = tf.data.Dataset.from_generator(
gen, (tf.int32, tf.int32)).repeat(2).shuffle(buffer_size=100).padded_batch(3, padded_shapes=([None], []))
iter = dataset.make_one_shot_iterator()
x, y = iter.get_next()
with tf.Session() as sess:
try:
while True:
_x, _y = sess.run([x, y])
print("x is :\n", _x)
print("y is :\n", _y)
print("*" * 50)
except tf.errors.OutOfRangeError:
print("done")
finally:
pass
输出的结果如下所示,我们可以将X看作是句子,存的是词的ID,Y看作是对句子的分类标签。由于不同句子长度不一样,所以这里使用了0进行填充,使得每个batch内的句子长度一样。
x is :
[[41 57 68 84 40 72 98 71 95 50 94 17 78 60 69 29 77]
[55 44 11 70 39 39 97 86 71 20 0 0 0 0 0 0 0]
[12 36 75 49 86 0 0 0 0 0 0 0 0 0 0 0 0]]
y is :
[4 1 9]
**************************************************
x is :
[[59 33 64 47 20 53 93 68 73 57 68 59 34]
[69 39 12 83 54 11 92 89 60 21 30 30 31]
[19 32 62 9 66 34 85 86 22 33 19 79 28]]
y is :
[8 1 5]
**************************************************
x is :
[[47 24 96 38 21 53 78 52 74 15 87 37 21 29 45 61 19 56 73]
[ 1 24 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[73 52 14 11 83 77 83 24 34 0 0 0 0 0 0 0 0 0 0]]
y is :
[9 4 4]
**************************************************
x is :
[[34 21 36 17 90 96 19 3 28 60 87 93 4 41 22 89 70 83 58]
[70 25 84 42 45 29 40 0 0 0 0 0 0 0 0 0 0 0 0]
[97 72 19 73 7 9 83 46 72 64 98 13 78 94 66 10 30 46 13]]
y is :
[9 9 4]
**************************************************
x is :
[[33 27 59 45 79 21 57 17 46 24 67 64 83 95 59 65 7 26 82]
[84 31 48 91 7 51 14 71 17 40 89 44 25 17 42 13 99 0 0]
[63 97 45 49 68 70 79 28 90 4 68 77 27 0 0 0 0 0 0]]
y is :
[8 1 8]
**************************************************
x is :
[[62 19 42 88 3 16 20 38 5 59]
[99 84 87 10 8 13 0 0 0 0]
[44 45 45 58 34 53 8 54 0 0]]
y is :
[1 1 4]
**************************************************
x is :
[[77 51 44 51 2 38 60 46 12 78 20 15 23 57]
[25 81 23 22 0 0 0 0 0 0 0 0 0 0]]
y is :
[4 5]
**************************************************
done
TensorFlow dataset API 使用的更多相关文章
- TensorFlow数据读取方式:Dataset API
英文详细版参考:https://www.cnblogs.com/jins-note/p/10243716.html Dataset API是TensorFlow 1.3版本中引入的一个新的模块,主要服 ...
- tensorflow models api:ValueError: Tensor conversion requested dtype string for Tensor with dtype float32: 'Tensor("arg0:0", shape=(), dtype=float32, device=/device:CPU:0)'
tensorflow models api:ValueError: Tensor conversion requested dtype string for Tensor with dtype flo ...
- element.dataset API
不久之前我向大家展示了非常有用的classList API,它是一种HTML5里提供的原生的对页面元素的CSS类进行增.删改的接口,完全可以替代jQuery里的那些CSS类操作方法.而另外一个非常有用 ...
- TensorFlow - 相关 API
来自:https://cloud.tencent.com/developer/labs/lab/10324 TensorFlow - 相关 API TensorFlow 相关函数理解 任务时间:时间未 ...
- TensorFlow — 相关 API
TensorFlow — 相关 API TensorFlow 相关函数理解 任务时间:时间未知 tf.truncated_normal truncated_normal( shape, mean=0. ...
- flink dataset api使用及原理
随着大数据技术在各行各业的广泛应用,要求能对海量数据进行实时处理的需求越来越多,同时数据处理的业务逻辑也越来越复杂,传统的批处理方式和早期的流式处理框架也越来越难以在延迟性.吞吐量.容错能力以及使用便 ...
- 开源框架---tensorflow c++ API 一个卡了很久的问题
<开源框架---tensorflow c++ API 运行第一个“手写字的例子”> 中可以说明tensorflow c++ API是好用的,.......
- Apache Flink - Batch(DataSet API)
Flink DataSet API编程指南: Flink中的DataSet程序是实现数据集转换的常规程序(例如,过滤,映射,连接,分组).数据集最初是从某些来源创建的(例如,通过读取文件或从本地集合创 ...
- 开源框架---通过Bazel编译使用tensorflow c++ API 记录
开源框架---通过Bazel编译使用tensorflow c++ API 记录 tensorflow python API,在python中借用pip安装tensorflow,真的很方便,几句指令就完 ...
随机推荐
- grep的使用
http://www.eguidedog.net/linux-tutorial/05-grep.php grep apple fruitlist.txt:在fruitlist.txt中查找apple字 ...
- 【转】基于JavaMail的Java邮件发送
http://blog.csdn.net/xietansheng/article/details/51673073 http://blog.csdn.net/xietansheng/article/d ...
- BOM编程
1 BOM编程 1.1 入门 BOM就是浏览器对象模型编程,通过javascript引擎提供的四个浏览器对象,操作浏览器,这叫BOM编程 1.2 window对象(重点) window代表的是一个窗口 ...
- getnumdevices.c && setgetdevicetype例程
getnumdevices.c代码 /* 文件名: getnumdevices.c * 功能 : 测试函数acc_get_num_devices(.) */ #include<stdio.h&g ...
- vue项目中的函数封装
项目中一般都会有fun.js这类的文件,里面有各种的如转换时间格式的,处理转换的等等函数方法. 其实经常用到的去获取基本数据的接口也可以封装成一个方法,方便复用. 如上面所标,获取列表数据之前需要先获 ...
- C#后台动态添加Grid表格
前面页面: <ScrollViewer x:Name=" BorderBrush="#25A0DA" VerticalScrollBarVisibility=&qu ...
- ethereum(以太坊)(九)--global(全局函数)
pragma solidity ^0.4.0; contract modifierTest{ bytes32 public blockhash; address public coinbase; ui ...
- JavaScript对象回收机制
js维护了一张对象引用表: 当一个对象被创建以后,栈内就有一个a,a这个对象就指向了对这个地址,当a=new Person()执行后,引用次数加1.当a=null置空,引用次数减1.由系统来维护对象引 ...
- while循环,格式化输出,运算符
1.while循环 1.while 基本机构: while 条件: 循环体 执行流程: 当条件成立时为真,执行循环体. 再次判断条件是否成立,如果成立再次执行. 当判断条件结果为假时,跳出循环,本 ...
- PHP开发搭建环境二:开发工具PhpStorm安装、激活以及配置
关于php的开发工具很多,目前市面上最好用最强大的莫过于PhpStorm这款开发神器了,但是鉴于很多开发者朋友在网站上下载的PhpStorm开发工具不能用,或者使用起来很不方便,笔者把最好用的下载地址 ...