TensorFlow 基本问题思考2

TensorFlow迭代器详解
本文对比了并存多个迭代器与单一迭代器的区别,详细解释了可馈送迭代器和可重新初始化迭代器的工作原理及优劣。同时,讨论了在处理不同长度样本时的分批问题,并提醒在Python函数使用时需注意的事项。

以下两种方式有什么不一样,以及优劣?
1312654-20181120153606988-1183974161.png

1312654-20181120153642298-1582578802.png

1312654-20181120155907540-71804723.png

总结一下就是并存三个迭代器对象,而不像之前只有一个,通过重新初始化便可多次复用;当前的情况就是,另外两个借助一个迭代器到达next_element; 像汇流一样。

可馈送迭代器可以与 tf.placeholder 一起使用,以选择所使用的 Iterator(在每次调用 tf.Session.run 时)(通过熟悉的 feed_dict 机制)。它提供的功能与可重新初始化迭代器的相同,但在迭代器之间切换时不需要从数据集的开头初始化迭代器。例如,以上面的同一训练和验证数据集为例,您可以使用 tf.data.Iterator.from_string_handle 定义一个可让您在两个数据集之间切换的可馈送迭代器:

每个条样本长度不一,分批的时候会出问题,批次内长度要求一致,怎么办,patch 0
1312654-20181120170241190-638674917.png

tensorflow 中 Python语言中函数使用要使用tf.py_func包装!!否则函数只在定义的时候运行一次,并取得值,不会按想的那样发挥作用,能不用就尽量不用吧,麻烦事多还影响效率。
1312654-20181120183704832-1567290203.png

TensorFlow中做动态操作很蛋疼,比如形状由运行时的结果确定,有点难做到,因为不是所有的事情都是在运行前就可以知道的,也取决于运行时的内容情况!

转载于:https://www.cnblogs.com/wdmx/p/9989300.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值