gpt4 book ai didi

java - Tensorflow-Java 图像比较

转载 作者:行者123 更新时间:2023-12-02 12:21:13 24 4
gpt4 key购买 nike

我是 tensorflow 新手,所以有很多基本疑问:-)

我有两个相同的图像(狗),我编辑了一个(即我切下了狗的一小部分,请不要以科学的名义讨厌我)现在我已经用这两个图像创建了一个张量图像,当我打印张量时它具有相同的值,它不应该是两个不同的值吗?我如何区分这两个图像之间的区别?我想测量这两个图像之间的变化量和变化。

Tensor:-
[172, 293, 3, 1]

Code:-
final Output input = b.constant("input", imgBytes);
output = b.expandDims(
b.cast(b.decodeJpeg(input, 3), DataType.FLOAT),
b.constant("make_batch", 3));

try (Session s = new Session(g)) {
t = s.runner().fetch(output.op().name()).run().get(0);
}
System.out.println("output1="+t.toString());

@pyb,感谢您提供代码格式。

最佳答案

Tensor.toString()不返回张量内容的值。它返回一个描述元数据的字符串 - 形状和类型(请参阅链接的 javadoc)。

我怀疑字符串 [172, 293, 3, 1]Tensor.toString() actually prints 的截断形式,类似于形状为 [172, 293, 3, 1] 的 FLOAT 张量

如果是这种情况,您会看到相同的字符串,因为两个图像具有相同的尺寸(它们是 172x293x3 像素图像)。

要查看张量的内容,请参阅 Tensor.writeToTensor.copyTo

例如:

float[][][] contents = t.copyTo(new float[172][293][3]);
System.out.println(Arrays.toString(contents));

希望有帮助。

关于java - Tensorflow-Java 图像比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45763045/

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