eranor
(eranor)
1
Hi,
I have a more java related question but I’m stuck. In the examples on Android, we can read:
Tensor input = Tensor.fromBlob(data, new long{1, data.length});
In my case, I have an array:
float myArray = new float[150][7];
And
Tensor input = Tensor.fromBlob(myArray, new long{1, myArray.length});
Doesn’t work.
eranor
(eranor)
2
Ok I got it. Didn’t read properly the doc. I need to flatten my array and then give the proper tensor dimension.
Venryx
(Stephen Wicklund)
3
Can you give a link to the documentation page that shows how to flatten the array? (I have the same problem)
eranor
(eranor)
4
@Venryx You have to do it yourself. If you use Kotlin, you have a method https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/flatten.html
If you use Java, you can do it recursively (https://stackoverflow.com/questions/31851548/flatten-nested-arrays-in-java might help, I didn’t check the content).
In my case, my model is expecting an array of float of dimension (n, b, m). So in kotlin:
...
val input: Tensor = Tensor.fromBlob(myFloatArray, longArrayOf(n, b, m))
val output: Tensor = module.forward(IValue.from(input))!!.toTensor()
...
You can find the doc there: https://pytorch.org/docs/1.3.0/org/pytorch/Tensor.html#id2
Hope it helps.
1 Like