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,真的很方便,几句指令就完 ...
随机推荐
- 2018.7.20 编程题: 写一个Singleton出来。
编程题: 写一个Singleton出来. Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在. 一般Singleton模式通常有几种种形式: 第一种形式: 定义 ...
- 2017.10.29 C/C++/C#程序如何打成DLL动态库
C/C++程序如何打成DLL动态库: **1.在VS中新建main.h,添加如下内容:** extern "C" _declspec(dllexport) int onLoad() ...
- 复式记账中"借"与"贷"的理解
财务常识中,复式记账法应用极广,公司采用的是它的借贷记账法.因此,深刻的理解"借"与"贷"的含义极其重要. 一切从历史说起. 起源: Credit 英文含义 ...
- Ext4.2 select 和 query 区别与联系
Ext.query和Ext.select的作用是一致的,同是根据CSS选择符查找出一个或多个元素.区别在于返回类型上.分别是:query方法返回的是JavaScript标准的数组类型:select方法 ...
- 解决 Jsp_Servlet 编码乱码问题
Tomcat8.0以上浏览器请求的数据编码格式(包含): Get请求的时候Tomcat用UTF-8处理 post请求的时候Tomcat用ISO8859-1处理 Tomcat8.0以下浏览器请求的数据编 ...
- 【经典问题】bzoj2957: 楼房重建
经典问题:动态维护上升子序列长度 进阶问题:[经典问题]#176. 栈 Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无 ...
- spring cloud 学习之服务消费者(Feign)
一.Feign简介 Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单.使用Feign,只需要创建一个接口并注解.它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注 ...
- 设置vim tab为4个空格
Vim 编辑器默认tab为8个空格,但对于pythoner来说,必须要调整到4个空格. 方法如下: 在~/.vimrc文件中加入下面设置: set ts=4 #设置tabstop为4个空格 set e ...
- php学习【2】
1:运算符 <?php $x=1; echo 1+1;//算术运算符 echo $x+=5;//赋值运算符 echo "<br/>"; echo $x++; ec ...
- python__系统 : socket_TCP相关
tcp和udp对比起来.还是tcp相对稳定一些,但是因为有三次挥手和四次握手,以及确认包(ack)的存在,可能在速度上会比udp慢. 用python的socket模块可以建立tcp服务端: from ...