Hello,
I want to fine tune a CoreML model, with multiple binary outputs, on device. Therefore I would need multiple Loss Functions. If I try to compile that model I get the error:
Error Domain=com.apple.CoreML Code=3 "Error reading protobuf spec. validator error: This model has more than one loss layers specified, which is not supported at the moment." UserInfo={NSLocalizedDescription=Error reading protobuf spec. validator error: This model has more than one loss layers specified, which is not supported at the moment.}
Is it somehow possible to train an updatable CoreML model with multiple outputs on the device itself?
I would really appreciate any help. Thank you!
Post
Replies
Boosts
Views
Activity
Hello,
I have a pre-trained DNN that has eight binary output labels. It uses one output node with a Sigmoid activation function per output label. I want to use on-device personalisation to fine tune this DNN. Is that possible?
I have found, that only "Categorical Cross Entropy" is available as a loss function for updatable classifiers in CoreML, but the function set_categorical_cross_entropy_loss() needs a Softmax layer as input and I have output layers with Sigmoid activation function (because the classifications are only binary).
Is there a way to use the DNN as it is or do I have to remove the last layer with Sigmoid activation and add two nodes and a Softmax layer instead (per output label)?