Tensorflow-Java 图像比较
Tensorflow-Java Image Comparison
我是 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()
不return张量内容的值。它 return 是一个描述元数据的字符串 - 形状和类型(参见链接的 javadoc)。
我怀疑字符串 [172, 293, 3, 1]
是 Tensor.toString()
actually prints 的截断形式,类似于 FLOAT tensor with shape [172, 293, 3, 1]
.
如果是这种情况,您会看到相同的字符串,因为两个图像具有相同的尺寸(它们是 172x293x3 像素图像)。
要查看张量的内容,请参阅Tensor.writeTo
or Tensor.copyTo
例如:
float[][][] contents = t.copyTo(new float[172][293][3]);
System.out.println(Arrays.toString(contents));
希望对您有所帮助。
我是 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()
不return张量内容的值。它 return 是一个描述元数据的字符串 - 形状和类型(参见链接的 javadoc)。
我怀疑字符串 [172, 293, 3, 1]
是 Tensor.toString()
actually prints 的截断形式,类似于 FLOAT tensor with shape [172, 293, 3, 1]
.
如果是这种情况,您会看到相同的字符串,因为两个图像具有相同的尺寸(它们是 172x293x3 像素图像)。
要查看张量的内容,请参阅Tensor.writeTo
or Tensor.copyTo
例如:
float[][][] contents = t.copyTo(new float[172][293][3]);
System.out.println(Arrays.toString(contents));
希望对您有所帮助。