Это мой код:
Код: Выделить всё
public static float[] getFloat(DataBuffer data) {
float[] res = new float[(int) data.size()];
for (int i = 0; i < data.size(); i++) {
res[i] = data.getObject(i); // Copy each Float element into float[]
}
return res;
}
public static void main(String[] args) {
try (SavedModelBundle model = SavedModelBundle.load("C:\\Users\\User\\Documents\\TensorflowProject\\Model\\model", "serve")) {
Graph graph = model.graph();
try(Session session = model.session()) {
Ops tf = Ops.create(graph);
Tensor result = session.runner()
.feed("serve_input_layer:0", readImage("C:\\Users\\User\\Documents\\TensorflowProject\\TrainData\\image.jpg"))
.fetch("StatefulPartitionedCall:0").run().get(0);
DataBuffer data = result.asRawTensor().data().asFloats();
Tensor result2 = session.runner()
.feed("serve_input_layer:0", readImage("C:\\Users\\User\\Documents\\TensorflowProject\\TrainData\\image.jpg"))
.fetch("StatefulPartitionedCall:0").run().get(0);
DataBuffer data2 = result2.asRawTensor().data().asFloats();
Sub diff = tf.math.sub(tf.constant(getFloat(data)), tf.constant(getFloat(data2)));
Tensor diffTensor = session.runner().fetch(diff).run().get(0);
System.out.println("Difference: " + diffTensor.asRawTensor().data().asFloats().getObject(0));
Square square = tf.math.square(diff);
Tensor squareTensor = session.runner().fetch(square).run().get(0);
System.out.println("Square: " + squareTensor.asRawTensor().data().asFloats().getObject(0));
Sqrt sqrt = tf.math.sqrt(square);
Tensor distance = session.runner().fetch(sqrt).run().get(0);
System.out.println("Distance: " + distance.asRawTensor().data().asFloats().getObject(0));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
Код: Выделить всё
Difference: 3.9829087E35
Square: Infinity
Distance: Infinity
Код: Выделить всё
public static double calculateDistance(float[] arr1, float[] arr2) {
if (arr1.length != arr2.length) {
throw new IllegalArgumentException("Both arrays must have the same length.");
}
double sum = 0.0;
for (int i = 0; i < arr1.length; i++) {
double diff = arr1[i] - arr2[i];
sum += Math.pow(diff, 2);
}
return Math.sqrt(sum);
}
это мой pom.xml:< /p>
Код: Выделить всё
org.tensorflow
tensorflow-core-platform-gpu
0.5.0
Я искренне прошу помощи, пожалуйста, спасибо

п>
Подробнее здесь: https://stackoverflow.com/questions/790 ... java-0-5-0