Tadayoshi Sato created CAMEL-20895:
--------------------------------------

             Summary: camel-djl - The image classification predictors should 
not round the resulted probabilities
                 Key: CAMEL-20895
                 URL: https://issues.apache.org/jira/browse/CAMEL-20895
             Project: Camel
          Issue Type: Improvement
          Components: camel-ai
    Affects Versions: 4.6.0
            Reporter: Tadayoshi Sato


Currently, both {{ZooImageClassificationPredictor}} and 
{{CustomImageClassificationPredictor}} transform the resulted 
{{Classifications}} objects into maps of {{Map<String, Float>}}. However, the 
data type of {{Classifications}} is a map from the class name to probability 
with {{String -> Double}}, thus the precision is lost in the mapping.

It doesn't seem to be a good transformation in the following points:
- Sometimes rounding from double to float loses not only precision but also 
accuracy of the value
- The [Softmax|https://en.wikipedia.org/wiki/Softmax_function] function used in 
the classification problems expects the probabilities to sum up to {{1.0}}, but 
due to the loss of accuracy above the premise seems to be broken to a large 
extent.
- Finally, probably it's just better to simply return the {{Classifications}} 
object rather than converting it to a {{Map}} because the class already 
provides useful methods such as {{best()}}, {{topK()}}, etc. so that downstream 
components can easily extract the conclusions from the output out of the box; 
if we just provide it as a map, downstream is required to craft some manual 
calculations upon the result every time.

In conclusion, I think it's better for {{ZooImageClassificationPredictor}} and 
{{CustomImageClassificationPredictor}} to simply return the output as 
{{Classifications}}.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to