use of com.yahoo.tensor.functions.ConstantTensor in project vespa by vespa-engine.
the class TensorFunctionBenchmark method dotProduct.
private double dotProduct(Tensor tensor, List<Tensor> tensors) {
double largest = Double.MIN_VALUE;
TensorFunction dotProductFunction = new Reduce(new Join(new ConstantTensor(tensor), new VariableTensor("argument"), (a, b) -> a * b), Reduce.Aggregator.sum).toPrimitive();
MapEvaluationContext context = new MapEvaluationContext();
for (Tensor tensorElement : tensors) {
// tensors.size() = 1 for larger tensor
context.put("argument", tensorElement);
double dotProduct = dotProductFunction.evaluate(context).asDouble();
if (dotProduct > largest) {
largest = dotProduct;
}
}
return largest;
}
use of com.yahoo.tensor.functions.ConstantTensor in project vespa by vespa-engine.
the class TensorTestCase method dotProduct.
private double dotProduct(Tensor tensor, List<Tensor> tensors) {
double sum = 0;
TensorFunction dotProductFunction = new Reduce(new Join(new ConstantTensor(tensor), new VariableTensor("argument"), (a, b) -> a * b), Reduce.Aggregator.sum).toPrimitive();
MapEvaluationContext context = new MapEvaluationContext();
for (Tensor tensorElement : tensors) {
// tensors.size() = 1 for larger tensor
context.put("argument", tensorElement);
// System.out.println("Dot product of " + tensor + " and " + tensorElement + ": " + dotProductFunction.evaluate(context).asDouble());
sum += dotProductFunction.evaluate(context).asDouble();
}
return sum;
}
Aggregations