图像到张量数据

时间:2020-09-09 06:06:59

标签: java pytorch torch

库: pytorch_java_only-1.6.0

我想将BufferedImage / File转换为Tensor数据,对此是否有一些方法/库?

Python解决方案:

image = Image.open(image_path)
image = image.convert('RGB') 
transform = Compose([ToTensor()])
image = transform(image)
image = image.view(1, 3, 64, 64).cuda()
output = my_model(image)
output = output.view(-1, self.quantity)
output = nn.functional.softmax(output, dim=1)
output = torch.argmax(output, dim=1)
output = output.view(-1, self.size)[0]

我签出了java-demo

这就是我感兴趣的:

Module mod = Module.load("demo-model.pt1");
Tensor data =
Tensor.fromBlob(
    new int[]  {1, 2, 3, 4, 5, 6}, // **data array**
    new long[] {2, 3} // **shape array**
    );
IValue result = mod.forward(IValue.from(data), IValue.from(3.0));
Tensor output = result.toTensor();
System.out.println("shape: " + Arrays.toString(output.shape()));
System.out.println("data: " + Arrays.toString(output.getDataAsFloatArray()));

具有形状的数组,所有内容都清晰可见,即图像的高度,宽度和通道。

但是 data 数组呢?我如何将图像转换为正确的数组?也许我应该使用javacv / nd4j之类的东西?

感谢您的回复!

0 个答案:

没有答案