gpt4 book ai didi

java - tensorflow java模型推理将获取的张量转换为字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 11:07:10 26 4
gpt4 key购买 nike

我现在使用tensorflow(python)来训练我的模型,并想使用tensorflow(java)来在线推理结果。

计算图有一个返回shape[1,16]结果的操作,张量中的每个元素都是一个字符串。现在我想将结果转换为整个字符串。

我创建了一个ByteBuffer,并调用Tensor.writeTo将数据写入缓冲区。但是当我解码最终缓冲区时,它的标题中有一些意外的字符,我猜最终字节可能包含一些张量元信息。

Tensor predictedTensor = result.get(0);
ByteBuffer bb = ByteBuffer.allocate(predictedTensor.numBytes());
predictedTensor.writeTo(bb);
String predictedTokens = null;
byte[] bbArray = bb.array();
predictedTokens = new String(bbArray, "UTF-8");

结果是这样的:第一部分是一些错误的代码,最后一部分是正确的。

& *  ? *  C J M X & *  ? *  C J M X hello,world!

我想形状(1,16)的张量可能有字节元信息,但我不知道如何获取我需要的部分。

有人知道如何在javatensorflow接口(interface)中将多维张量转换为java字符串吗?

最佳答案

我找到了解决这个问题的方法!训练模型时,我对 shape(1,16) 的张量调用 tf.reduce_join 以获得一个标量。当用java语言进行推理时,我只需获取标量节点,然后调用tensor.byteValue()来获取张量字节。它将返回没有标题代码的纯结果。

关于java - tensorflow java模型推理将获取的张量转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46377189/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com