python - 在带有会话的图形模式下使用 tensorflow 数据集窗口操作时出错
问题描述
window
我无法在图形模式下运行 tensorflow 数据集示例。这个
def test_window_graph_mode():
tf.reset_default_graph()
dataset = tf.data.Dataset.range(7).window(3, 2, 1, True)
iterator = dataset.make_one_shot_iterator()
next_element = iterator.get_next()
with tf.Session() as sess:
print(sess.run(next_element))
崩溃 - 而这
def test_window_graph_mode():
tf.reset_default_graph()
dataset = tf.data.Dataset.range(7)
iterator = dataset.make_one_shot_iterator()
next_element = iterator.get_next()
with tf.Session() as sess:
print(sess.run(next_element))
工作正常。错误是
TypeError: Fetch argument <_VariantDataset shapes: (), types: tf.int64> has invalid type <class 'tensorflow.python.data.ops.dataset_ops._VariantDataset'>, must be a string or Tensor. (Can not convert a _VariantDataset into a Tensor or Operation.)
这些例子没有展示make_one_shot_iterator
和get_next
——我是从谷歌搜索中找到的。在旧式图形模式 tensorflow 中使用 Window 是否还有其他接口?
解决方案
如果您添加该行,您的代码可以正常工作,
dataset = dataset.flat_map(lambda x:x.batch(2))
行前,
iterator = dataset.make_one_shot_iterator()
完整的工作代码如下所示:
tf.reset_default_graph()
dataset = tf.data.Dataset.range(7).window(3, 2, 1, True)
dataset = dataset.flat_map(lambda x:x.batch(2))
iterator = dataset.make_one_shot_iterator()
next_element = iterator.get_next()
with tf.Session() as sess:
print(sess.run(next_element))
有关更多信息,请参阅此 Stack Overflow Issue1和Issue2。
希望这可以帮助。快乐学习!
推荐阅读
- android - 如何在android端访问flutter Shared首选项(使用java)
- python - 遇到 Import Error DLL load 不断失败
- json - 基于另一个模式对象对 json 模式使用条件语句
- windows - 如何将命令输出设置为 env。windows cmd中的变量?
- java - springMVC 中的@RequestAttribute 没有绑定实体类的对象
- javascript - 在 Jquery 每个循环中使用 TypeScript 变量
- r - 如何在openxlsx生成的XLSX中允许按年、月、日过滤
- azure - 用 ADFS 替换 AD 的最简单方法(或将其添加到它上面)?
- jquery - CSS:“前沿”设计。如何?
- metadata - Icecast/Shoutcast 广播流:提取正在播放的信息