Tensorflow批处理:将结果保留为字符串

2024-05-08

这个简单的程序

import tensorflow as tf

input = 'string'
batch = tf.train.batch([tf.constant(input)], batch_size=1)
with tf.Session() as sess:
    tf.train.start_queue_runners()
    output, = sess.run(batch)

    print(1, input, output)
    print(2, str(output, 'utf-8'))
    print(3, input.split('i'))
    print(4, str(output, 'utf-8').split('i'))
    print(5, output.split('i'))

prints

1 串 b'string'
2 串
3 ['str', 'ng']
4 ['str', 'ng']
错误:tensorflow:QueueRunner 中出现异常:会话已关闭。
打印(5, 输出.split('i'))
类型错误:需要类似字节的对象,而不是“str”

如果输入是字符串列表,为什么结果不是字符串列表?

好的,@jdehesa解释了 https://stackoverflow.com/questions/53278261/tensorflow-batch-keep-result-as-strings/53279982?noredirect=1#comment93444348_53279982 WHY,但不是如何“修复”它。我可以申请bytes.decode()会议结果:

output, = map(bytes.decode, sess.run(batch))

并且存在tf.map_fn()这应该对张量做同样的事情。唯一的问题是我如何在我的场景中使用它?


PS:实际上,错误消息也令人费解。问题是我们提供了一个字节对象,而不是一个字符串。但是类型错误恰恰相反。

PPS:错误消息得到了解释,感谢@jdehesa:它是关于split()的参数,而不是对象。output.split(b'i')效果很好!


问题是output is a bytes对象,因为 TensorFlowtf.string张量确实是由bytes。但随后你尝试使用split with a str分隔符,这就是它抱怨的原因。尝试:

output.split(b'i')

or:

output.decode().split('i')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tensorflow批处理:将结果保留为字符串 的相关文章

随机推荐

  • 加载器如何引用共享库中的变量?

    我现在了解如何通过过程链接表引用动态函数 如下所示 Dump of assembler code for function foo plt 0x0000000000400528
  • 为应用程序启用主题

    我有一个旧的应用程序 在Win XP中的delphi 7中启动 现在我正在使用delphi 2009 win Vista 如果我开始一个新项目 所有按钮都有一个圆形边缘 但在我的旧应用程序中 所有按钮都有 方形 形状的外观 有什么设置我错过
  • 安装了 Resharper,现在立即窗口中没有自动代码提示

    我已经习惯使用 ReSharper 因此无法卸载它 然而 我想尝试修复的一件小事是立即窗口 例如 当我键入 myObject 时 我会收到自动智能提示 自从我安装了 ReSharper 以来 这似乎不再起作用 并且仅在调试时在即时窗口中起作
  • GitHub Web UI 中的“base”和“head”存储库是什么?

    GitHub 的 UI 相当不直观且考虑不周 所以这里有一个问题 什么是 头 回购 什么是 基础 回购 不知道是从哪一个抄来的 基础 和 头部 这两个词的意思是相同的 链表的 头 类似于树的 基 GitHub 有叉树和文件树 Head 和
  • 去掉密码确认;设计

    我在 Rails 3 2 6 应用程序中使用 devise 进行身份验证 我有password confirmation首先 但现在我想删除它 该怎么做呢 你只需要删除password confirmation您表单中的字段 More in
  • HTTP 错误 500.19 - 无法读取配置文件

    在我的一个 ASP NET 应用程序中 由于下面显示的错误 我突然无法在 Visual Studio 2013 中运行它 它似乎正在尝试从甚至不存在的路径打开 web config 我的所有项目代码 包括 web config 都位于 C
  • 如何在具有动态高度的固定 div 标题后设置 div 内容样式

    以下情况 div style width 100 place holder for header div div style width 100 margin top 100px content div 我需要标题始终可见且位于顶部 因此该
  • 如何仅提取 mysql 和 php 中具有非零值的列?

    我正在尝试从 mysql 数据库中提取并显示在网页上 仅非零列 哪一列的日期是 0000 00 00 我不想在网页上显示这些列 下面分别是HTML代码和php脚本
  • “使用命名空间 std::literals”安全吗?

    一般来说 using namespace在全球范围内是被认为是一种不好的做法 https stackoverflow com questions 1452721 why is using namespace std considered b
  • Foreach 更改未保留在 Linq 项目集合上

    在以下示例中 当我返回集合时 不会保留在 foreach 中应用的更改 var people SomeLinqToSqlSource foreach var person in people person Name Jimmy return
  • 克隆存储库时出现 Git 冲突复制错误

    我使用 dropbox 作为 git 存储库 现在由于同步中的一些问题 git 中存在一些冲突的副本 我该如何消除这种冲突 由于这种冲突 我无法克隆该存储库的内容 我在克隆存储库时遇到的错误是 Git 致命 参考格式无效 refs head
  • 如何选择使用默认命名空间的节点?

    XML 文件的结构大致如下 a b b a
  • 整数的十进制表示形式中的分隔数字

    例如 我想将用户输入作为整数输入 45697 并将前两位数字存储在数组 向量或其他内容中 例如 4 5 6 9 7 这样我就可以使用一些函数调用来检查前两个值 4 5 并对它们进行计算 问题 我不知道如何存储恢复前两个值 有没有简单的函数调
  • GTK 滚动窗口 - 将滚动条保持在底部

    我有一个使用 ScrolledWindow 的 GTK C 程序 我不断将数据添加到滚动窗口内的列表中 并且我想将注意力集中在最新的项目上 但我还想允许用户滚动数据以选择旧项目 有没有办法做到这一点 我到处都找过了 但什么也没找到 我不太清
  • 捕获异常:除以零

    当我尝试除以 0 时 以下代码不会捕获异常 我是否需要抛出异常 或者计算机是否在运行时自动抛出异常 int i 0 cin gt gt i what if someone enters zero try i 5 i catch std lo
  • 如何“grep”连续流?

    可以用吗grep在连续的流中 我的意思是有点tail f
  • Paperclip 会自动清理文件名吗?

    我正在使用 Thoughtbot回形针宝石 https github com thoughtbot paperclip处理文件上传 我发现当我上传文件名中包含空格的文件时 它会用下划线替换空格来存储 那挺好的 我还尝试上传带有特殊字符的文件
  • 我如何知道谁持有shared_ptr<>?

    I use boost shared ptr在我的 C 应用程序中 内存问题确实很严重 应用程序占用大量内存 但是 因为我将每个新对象放入shared ptr 当应用程序退出时 无法检测到内存泄漏 一定有类似的东西std vector
  • 如何使用golang中通过引用传递的索引访问切片中的元素

    我将切片的引用传递给函数 并且我正在函数内的切片中进行更改 我还尝试使用索引访问切片中的元素 它在 golang 中抛出异常 通过引用传递的索引访问切片中的元素的最佳方法是什么 您可以在此处找到示例代码 参考 http www reddit
  • Tensorflow批处理:将结果保留为字符串

    这个简单的程序 import tensorflow as tf input string batch tf train batch tf constant input batch size 1 with tf Session as sess