apple / coremltools

Core ML tools contain supporting tools for Core ML model conversion, editing, and validation.
https://coremltools.readme.io
BSD 3-Clause "New" or "Revised" License
4.36k stars 630 forks source link

Invalid mlmodel from SKLearn KN Neighbors conversion #1018

Open triztian opened 3 years ago

triztian commented 3 years ago

The *.mlmodel produced by converting from a KNeighborsClassifier is invalid. I encountered it with a custom data set but it's reproducible with SKLearn's Wine Dataset. I encountered the issue when running the script in Google Colab.

Trace

coremlc: warning: unable to read document: /Users/tristian/Downloads/KNN.mlmodel
detail: validator error: Pipeline: the input '__feature_vector__' of model 'CoreML.Specification.ModelDescription' does not match the type previously specified by the pipeline input or the output of a previous model. For the second case, make sure the input and previous model's output has the matching name and shapes.

coremlc: error: Error reading protobuf spec. validator error: Pipeline: the input '__feature_vector__' of model 'CoreML.Specification.ModelDescription' does not match the type previously specified by the pipeline input or the output of a previous model. For the second case, make sure the input and previous model's output has the matching name and shapes.

To Reproduce

Setup the env:

pyenv install 3.6.9
pyenv global 3.6.9

mkdir coremltools-issue && cd coremltools-issue
pip install virtualenv

virtualenv venv
source ./venv/bin/activate

# Here I downloaded and built LLVM 10.0.1 prior to the install
export LLVM_CONFIG=../llvm-project-10.0.1/build/bin/llvm-config 
pip install numpy scipy pandas

unset LLVM_CONFIG
pip install scikit-learn==0.19.2 keras==2.2.4 coremltools==4.0

Then after running the script below the KNN.mlmodel won't be valid when opened with Xcode 12.1

import sys
import pandas as pd
import numpy as np

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

import coremltools
from coremltools.converters import sklearn

print("Python", sys.version)
print("Pandas", pd.__version__)
print("Numpy", np.__version__)
print("CoreMLTools", coremltools.__version__)

"""# Create KN-Neighbors Model"""

wine = datasets.load_wine()
X_train, X_test, y_train, y_test = train_test_split(wine.data, wine.target, test_size=0.3)

print("X Features", wine.data.shape, wine.feature_names)
print("Y Features", wine.target.shape, wine.target_names)

knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(X_train, y_train)

"""## Convert Model"""

coreml_model = sklearn.convert(knn, wine.feature_names, "class")
coreml_model.save("KNN.mlmodel")

This is the base64 encoded KNN.mlmodel:

Base64 Data
CAESiAMKDQoHYWxjb2hvbBoCEgAKEAoKbWFsaWNfYWNpZBoCEgAKCQoDYXNoGgISAAoXChFhbGNhbGluaXR5X29mX2FzaBoCEgAKDwoJbWFnbmVzaXVtGgISAAoTCg10b3RhbF9waGVub2xzGgISAAoQCgpmbGF2YW5vaWRzGgISAAoaChRub25mbGF2YW5vaWRfcGhlbm9scxoCEgAKFQoPcHJvYW50aG9jeWFuaW5zGgISAAoVCg9jb2xvcl9pbnRlbnNpdHkaAhIACgkKA2h1ZRoCEgAKIgocb2QyODAvb2QzMTVfb2ZfZGlsdXRlZF93aW5lcxoCEgAKDQoHcHJvbGluZRoCEgBSCwoFY2xhc3MaAgoAWgVjbGFzc6IGbKIGOwojY29tLmdpdGh1Yi5hcHBsZS5jb3JlbWx0b29scy5zb3VyY2USFHNjaWtpdC1sZWFybj09MC4xOS4yogYrCiRjb20uZ2l0aHViLmFwcGxlLmNvcmVtbHRvb2xzLnZlcnNpb24SAzQuMMIMmzwKmDwKmgQIARKmAgoNCgdhbGNvaG9sGgISAAoQCgptYWxpY19hY2lkGgISAAoJCgNhc2gaAhIAChcKEWFsY2FsaW5pdHlfb2ZfYXNoGgISAAoPCgltYWduZXNpdW0aAhIAChMKDXRvdGFsX3BoZW5vbHMaAhIAChAKCmZsYXZhbm9pZHMaAhIAChoKFG5vbmZsYXZhbm9pZF9waGVub2xzGgISAAoVCg9wcm9hbnRob2N5YW5pbnMaAhIAChUKD2NvbG9yX2ludGVuc2l0eRoCEgAKCQoDaHVlGgISAAoiChxvZDI4MC9vZDMxNV9vZl9kaWx1dGVkX3dpbmVzGgISAAoNCgdwcm9saW5lGgISAFIfChJfX2ZlYXR1cmVfdmVjdG9yX18aCSoHCgENEMCABNIl6wEKCwoHYWxjb2hvbBABCg4KCm1hbGljX2FjaWQQAQoHCgNhc2gQAQoVChFhbGNhbGluaXR5X29mX2FzaBABCg0KCW1hZ25lc2l1bRABChEKDXRvdGFsX3BoZW5vbHMQAQoOCgpmbGF2YW5vaWRzEAEKGAoUbm9uZmxhdmFub2lkX3BoZW5vbHMQAQoTCg9wcm9hbnRob2N5YW5pbnMQAQoTCg9jb2xvcl9pbnRlbnNpdHkQAQoHCgNodWUQAQogChxvZDI4MC9vZDMxNV9vZl9kaWx1dGVkX3dpbmVzEAEKCwoHcHJvbGluZRABCvg3CAESNQofChJfX2ZlYXR1cmVfdmVjdG9yX18aCSoHCgENEKCABFILCgVjbGFzcxoCCgBaBWNsYXNzohm7NwqqNggNEjYKNDMzR0GF60FAw/UoQAAA2EEAAMJCMzPzP+F6FD+uRyE/heuRPwAA8EAfhSs/pHDdPwAAXEQSNgo0hethQaRwvT/hehRAZmaGQQAAvkLNzAxAH4UbQLgehT7D9cg/AACgQI/ClT/hejRAAACgRBI2CjR7FF5BrkehQFK4DkAAAKBBAACgQkjhej97FK4+zczMPnsULj/NzJxA4XoUP3E9qj8AgM9DEjYKNIXrRUHD9Yg/ZmYGQAAAlEEAALBCrkdhQAAAcECPwnU+mpn5PwAAkEC4HoU/rkcxQAAAJUQSNgo0AABsQaRw3T/D9RhAZmY2QQAAtkJmZkZA9ihsQPYo3D4K1zNAzcysQAAAoD9SuC5AAMCPRBI2CjQpXDdBKVxvQMP16D8AAJxBAADWQh+FS0C4HiVAj8J1PrgeZUCamTlAAABAPwrXM0AAgAxEEjYKNLgeVUEpXE9A7FEYQAAArEEAALhCPQr3P1yPQj9mZuY+AACgP1K4BkHNzAw/KVzPPwCAIkQSNgo0rkdFQc3MjD+F6xFAAACAQQAAykIzMwNAH4WLP65HIT+F69E+rkdRQAAAoD+PwtU/AAAqRBI2CjThejBBrkfBP83MDEAAAKxBAACqQqRwHUBI4QpAuB4FP9ejAEAzM/M/SOHaPxSuN0AAgMtDEjYKNAAAREE9CpdAXI8iQAAAqEEAALJC16OwP9ej8D4Urgc/zcxMP2ZmdkAAAEA/XI+iPwAANEQSNgo07FFIQR+FG0BI4QpAAACoQQAAsEIzMyNArkcRQLgehT72KJw/AAAAQGZmZj+F6zFAAICiQxI2CjQAAFhBFK7nPz0KJ0AAAKBBAADAQoXrIUA9CidAKVyPPuF61D+uR2FAKVyPP+F6dEAAQFNEEjYKNOF6SEHsUbBAw/UoQAAAyEEAAMBCuB7lP5qZGT+uRyE/zcyMPwAAoECF61E/7FHYPwDAAEQSNgo0hetFQUjhmj8K1yNAzcyQQQAAxEJI4RpAmpkpQKRwvT64HgVAMzOTQOxRmD8zMxNAAIApRBI2CjQzM1dBzcxsQGZmJkAAALhBAADeQpqZ2T8fhWs/9ijcPkjhuj9I4SpBmplZPxSuxz8AwC1EEjYKNFK4RkGPwo1AUrguQAAA1EEAAMxCzcwMQOxRCED2KNw+SOHaP7geBUAfhWs/FK5HQACAtkMSNgo0exRmQSlc7z/sURhAAABAQQAAzEIzM1NAw/VoQOF6lD6kcD1AAADwQJqZmT8AAEBAAGDBRBI2CjSkcF1BCteDQOxRGEAAAJxBAACyQmZm5j/helQ/j8L1PhSuxz/2KBBBhesRP4Xr0T8AAPBDEjYKNFK4RkEzMyNArkcRQAAAsEEAALRCPQrXPx+F6z/D9Sg/j8K1P83MLED2KFw/MzNTQACAnUMSNgo0KVxjQa5HgUD2KBxAMzOXQQAA3kJmZjZAmpkpQJqZmT4AAKA/FK6nQFK4Xj+4HlVAAACHRBI2CjRmZjpBj8LVPxSuJ0AAANBBAACwQo/C9T97FM4/zczMPh+Fqz9mZiZAexSuP6RwTUAAgAxEEjYKNIXrOUFSuP4/hesRQAAAkEEAAMRCrkdBQNejEEB7FC4+zcysPwAAUEDhepQ/pHA9QACArEMSNgo0rkdBQYXrsT8AACBAAAC0QQAAqEIK1yNAXI8SQPYo3D64HoU/mpk5QHsUbj/2KExAAIDAQxI2CjTD9TxBFK4HQClcL0AAAKxBAAAGQ83MzD+kcH0/KVwPPhSuxz8AACBAMzNzP9ejEEAAQBxEEjYKNEjhTkEzM3NAmpkpQM3MlEEAAMxCcT0aQHE9GkAAAIA+pHD9PwAAkEAK14M/rkdhQACAQEQSNgo09ihYQWZm5j+amSlAAACYQQAA3EJmZhZAheshQOF6lD64HsU/ZmaGQM3MjD8UrjdAAOCIRBI2CjSF611BMzPzPzMzM0AzM5tBAADWQs3MPEB7FD5ApHC9Pq5H4T8AAJBAAACgP5qZWUAAwGREEjYKNK5HSUG4HqU/ZmYGQAAAoEEAAM5CpHC9P+F6FD8Urgc/MzOzPzMz80DhehQ/ZmbGPwAAIEQSNgo0PQpLQQrXwz/XoxBAmpmlQQAAoELXo7A/SOG6P+F6FD8pXM8/MzNDQI/CdT8K1wNAAID3QxI2CjSF60VB16OQP3E9CkAAAJhBAACuQgAAYEBmZkZAXI9CPilc7z9mZo5A9iicPxSuN0AAANJDEjYKNFK4UkF7FKZA4XoUQAAAsEEAALpCUrjeP65HIT/2KBw/ZmbGP83M/ECamRk/pHC9PwBANUQSNgo0MzNLQTMzY0A9ChdAAACsQQAA1EKamdk/mpmZP3sULj49Clc/AACgQBSuRz+4HqU/AAAWRBI2CjQpXD9BH4WLPzMzE0AAAKhBAADKQuxRWEDD9QhAuB4FPjMz0z+kcE1ApHB9P+xRSEAAgF1EEjYKNOxRTEEfhVtApHD9PwAAgEEAAKBC16PQPwAAoD/2KNw+4XpUP5qZWUAzMzM/FK4HQAAAukMSNgo0zcxQQaRw3T9cjwJAZmZGQQAAuEJ7FC5ArkdRQHsULj5xPTpAZmbmQClcjz9xPTpAAMCPRBI2CjSPwlFBMzPzPwAAMEAAAMxBAADoQs3MDEAK16M/uB6FPhSuxz8zM+NA9igcP3E9qj8AgNRDEjYKNHE9SkF7FK4/rkcBQGZmhkEAAMhCrkcBQOF6tD8Urgc/UrgePwAAuEBI4Xo/H4XLPwAA4UMSNgo0zcxQQZqZuUDsUQhAAACsQQAArEIUridAmpkpQJqZmT7XowBAZmYmQEjhOj9mZkZAAAC+QxI2CjTXo0RB4Xq0P6Rw/T8AAIBBAACqQjMzI0AAACBA4XqUPlyP4j+amTlApHCdPylcL0AAANZDEjYKNMP1WEGkcN0/pHAdQAAApEEAAOhCpHA9QIXrMUDNzEw+zcwcQAAAyEBI4Xo/hetBQAAAjEQSNgo0uB5dQQAA4D9I4RpAAABgQQAA3kLsUXhAKVxvQArXoz4pXO8/mpnhQK5HgT/Xo1BAAMCURBI2CjThelxB16MwQDMzE0AAALBBAAC0Qs3MrD97FC4/hevRPgrXgz+uRxlBMzMzPz0K1z8AwBlEEjYKNAAAQEEfhWs/AAAAQAAAmEEAAKxCSOEaQNejEECamZk+PQq3PwAAIEDXo7A/FK5HQAAAi0MSNgo0CtdXQeF61D8pXA9AAADAQQAArkLXo/A/H4XrP3E9ij4K14M/KVxvQEjhej+F6zFAAADsQxI2CjSPwjlBzcysP83MLEAAAKBBAAC8QilcL0BI4TpA4XqUPilcH0CamSlAj8J1P9ejUEAAACpEEjYKNB+FR0Fcj8I/zcwMQAAAmEEAACJDAAAgQK5HEUAK16M+hetRQGZmJkDhepQ/7FEoQABAakQSNgo0UrhGQXsUzj/2KAxAAAC0QQAA2EIAAABAj8IFQHsUrj57FM4/CtcDQBSuhz+kcD1AAICsQxI2CjTXo1RB9ij8Px+FK0BmZoZBAADMQgAAQEBSuE5AUriePuF61D8AAMBAw/WIP4/CNUAAwJ5EEjYKNPYoPEEfhStASOE6QAAAoEEAAM5CAADgP4XrAUCamRk/ZmaGPzMzc0CkcJ0/AAAgQADAF0QSNgo0hetlQZqZ+T8AACBAZmaGQQAA4kJmZnZAKVxfQI/CdT4fhQtAmpn5QPYoXD/NzFxAAAC5RBI2CjRmZl5BPQrXPxSuB0AAAIBBAADKQmZmRkDD9VhAPQpXPsP1CEAzM8NAw/VoP7geVUAAQHZEEjYKNKRwPUHD9ThAUrgOQAAAkEEAAOBC9ijcP8P1qD/2KNw+MzNzP5qZKUCPwnU/rkchQAAA+kMSNgo0w/VMQQrXE0CamRlAAADAQQAAxEIzM5M/H4WLP3E9ij7helQ/Zma2QMP1KD97FK4/AAAMRBI2CjTXo0RBSOFKQKRwDUAAAJBBAACwQmZmNkApXD9AZmbmPgrXM0AzMxNAj8K1P7geNUAAAMtDEjYKNHE9VkFcj+I/FK4nQM3MgEEAALpCZmY2QPYoPEB7FK4+mpm5P5qZmUAfhWs/exROQABglUQSNgo0zcxQQT0Kd0DhehRAAAC0QQAAqkIzM9M/H4XLP/YoHD8pXM8/mpmZQD0KVz/XowBAAMAARBI2CjT2KEhBUriePwAAEEAAAIxBAACqQgAAAEDhehQ/mpkZPwAAoD9mZq5AAABAP65HwT8AgCJEEjYKNOF6VEGF69E/j8I1QAAAeEEAANxCZmYmQB+FK0B7FK4+exSuPzMzk0AfhYs/hesxQAAAXEQSNgo0zcxQQTMz0z8zMyNAAACQQQAAxELNzBxAH4UbQOF6lD7sUbg/AACIQClcjz/XoyBAACCKRBI2CjRxPTpBCtcDQKRwHUDNzKxBAACoQpqZ+T/sUdg/j8L1Ps3MrD8zMzNAAACAPwAAMEAAACpEEjYKNFyPOkHXo/A/j8L1PwAAgEEAAMJCexTOP8P1yD97FK4+MzOTPzMzc0CkcJ0/w/UIQAAA1kMSNgo0FK5XQRSu5z9xPRpAAACkQQAAyELNzCxAUrg+QLgehT57FO4/MzOjQLgehT97FF5AAABmRBI2CjTsUVRBw/WIQNejEEAAAKBBAADwQh+Fyz/XozA/9ijcPs3MrD8zMyNBPQoXPxSuxz8AwFBEEjYKNMP1YEGamQlAPQonQM3MjEEAAPJCZmYmQNejIEBSuJ4+AACgP5qZoUAUroc/uB5lQADgoUQSNgo0mplJQR+Fqz8zM/M/AACUQQAAsEKambk/exSuP+F6lD7NzKw/zcwcQLgehT+uRzFAAIAMRBI2CjTsUUxBw/UYQIXrEUAAAJxBAACsQoXrsT9cjwI/j8L1PgrXIz9lZh5BhesRP9ej0D8AAOtDEjYKNMP1YEHXo9A/hesRQAAAgEEAAPxCAABAQEjhSkCPwnU+ZmYGQM3MtEAfhYs/pHBtQAAAQ0QSNgo0MzM3QZqZGUBI4RpAAACgQQAAwEKamTlAXI8yQArXoz5xPeo/AABQQM3MTD/D9VhAAEAcRBI2CjSF61lBZmaeQGZmFkAAAKBBAAC4QgAAAEDNzEw/16PwPlyPgj/NzIxAw/VoPzMzA0AAgAlEEjYKNClcW0F7FO4/PQoXQM3MhEEAAMpCPQonQOxROEBxPYo+7FHYPzMzc0B7FI4/AACAQABggUQSNgo04XpQQWZmZj9I4do/AACAQQAArEKamfk/hesBQI/CdT5I4bo/MzOTQOxRmD9SuB5AAADEQxI2CjT2KEhBpHDdP6Rw/T8AAKRBAACqQs3MDECPwvU/CtejPqRwvT/2KDxAuB6FP+F6ZEAAAChEEjYKNIXrPUGF64lAw/UYQAAAqEEAAKRCPQo3QIXrQUA9Clc+cT06QDMzM0AAAEA/w/VoQAAAvkMSNgo0KVxbQc3MtEDNzBxAAACkQQAAvkI9Ctc/9igcP7geBT8Uroc/Zmb2QArXIz9SuN4/AAA5RBI2CjSuR11Bw/XIPxSuJ0AAAKBBAADmQs3MPECamVlAzczMPvYo3D8zM9NA16OQP+F6JEAAQI1EEjYKNI/CVUEK1yNAZmYWQAAAoEEAALJCMzOzPwAAAD+kcL0+CtcjPzMzs0AzMzM/exQeQAAAQ0QSNgo0ZmZWQXE9ekBSuB5AAAC4QQAAzEJmZuY/AABAP/Yo3D7herQ/mpnpQDMzMz8Ursc/AIA7RBI2CjRmZlZBMzOTQD0KN0AAAMhBAADgQqRw/T+PwnU/cT2KPnsUjj8AAAhBH4UrP4/C9T8AgB1EEjYKNNejPEHsUQhAhesxQAAA5EEAALhC7FEIQClcD0DhehQ/rkfhPwAAQEDsUXg/9igcQAAA6UMSNgo0AABEQexReEDNzAxAAACUQQAA4ELXo7A/FK5HP+F6lD6F65E/KVwDQWZmJj8AAABAAMBVRBI2CjSuR0FBuB4FQJqZ2T8AAIxBAADCQlK4DkBI4QpAuB6FPjMzsz8zM1NAXI+iP6RwPUAAgDFEEjYKNDMzS0EUrndAmpkZQAAAuEEAAMpCuB41QDMzI0D2KNw+mpn5P+F6JEDsUZg/7FFIQACA50MSNgo0XI9SQT0KF0BI4SpAzcyUQQAAykIzMzNAKVxPQJqZmT4K1zNAj8K1QArXgz9I4UpAACCURBI2CjR7FFpBFK7nP83MLECamYlBAADgQmZmNkBxPTpAmpmZPkjhuj+amelACtejP+xROEAAwKNEEjYKNAAAREGkcN0/FK4HQAAAmEEAAKBCMzPTP4XrAUCkcL0+16PQP5qZWUAAAIA/SOFKQAAA/0MSNgo0w/U4QTMzA0BSuE5AAADkQQAA7kIfhUtAXI+iQNej8D4pXO8/AADAQHsUbj/2KGxAAIDoQxI2CjT2KFxBCtfDP83MLEAAAJxBAAAEQ83MPEApXC9AAAAAP83MrD/NzKxAAACgPwAAQEAAYJpEEjYKNNejQEGamYlA7FEYQAAAsEEAAKBCZmYGQAAA4D89Ctc+zcysP2ZmJkBxPUo/4XokQAAAEUQSNgo0H4VjQZqZ2T8zMxNAZmaCQQAA7ELNzExAAABAQLgehT6F6wFA9ijMQNejcD8K11NAAIByRBI2CjS4Hk1BFK5XQDMzE0AAAJxBAACwQqRwvT/D9Sg/zczMPuxReD/2KCRB7FE4PwAA4D8AQCtEEjYKNK5HXUEzM9M/ZmYmQJqZiUEAALxCzcwcQClcP0CuR2E+XI8SQDMzs0BSuJ4/FK5XQAAgnkQSNgo0H4VDQbgepT/sUfg/AACYQQAAuEI9ChdAXI8CQBSuxz64HgVAzcwsQPYoXD+uR0FAAACcQxI2CjSF60VB16PQPzMzE0AAAMRBAACwQnsUDkDNzBxAzczMPjMz8z8UrgdACtdjP4XrMUAAAKtDEjYKNJqZYUFxPQpAMzMTQAAAkEEAANJCzcw8QOF6VECuR2E+7FEYQAAAuEAAAKA/SOFKQADAvEQSNgo0AABcQaRw3T9xPRpAAACAQQAAskJmZiZA16MwQOF6lD4Uruc/MzOzQDMzkz+amTlAAAClRBI2CjTXo0RBexTOP6RwDUAzM6NBAADOQs3MjD9cj4I/pHC9Pkjhuj8zM0NAnu9nP8P16D8AgFlEEjYKNFK4UkGPwiVAFK4XQAAAoEEAAPBCMzPTP3sULj8Urgc/SOG6P83MFEGamRk/KVzPPwAAUkQSNgo0FK5TQTMzU0CF6xFAAACUQQAAxEJmZuY/4XpUP/YoHD8pXO8/7FEoQSlcDz+uR8E/AMAoRBI2CjTXo0RBuB41QHsUDkAAAJBBAACwQs3MHEAAABBAAACAPlK4/j+amQlAMzOTPzMzU0AAAJFDEjYKNAAAWEEUrkdAFK4nQAAAwEEAAPZCMzOzP8P1yD+uR2E+AACgP5qZCUE9Chc/ZmamPwAA+kMSNgo0H4VLQRSu5z/NzAxAZmaWQQAArELNzAxAheshQLgehT5cj+I/mpl5QOF6lD/D9UhAAIAyRBI2CjSuR0FBcT2qPzMzE0DNzLxBAACMQs3MDEAfhcs/PQrXPtejsD9SuN4/w/WIP6RwTUAAQBxEEjYKNDMzY0GuR+E/zcwcQDMzc0EAAOBCrkdRQMP1WEB7FK4+9ij8PwAA2EBmZoY/ZmY2QABAtUQSNgo0UrhKQUjhej8pXA9AAACQQQAAxkLNzAxA7FH4P5qZmT5I4bo/FK4nQKRwnT9xPUpAAADhQxI2CjRI4UZBCtfDP1yPEkAAAKxBAACsQilcL0CamUlAFK7HPlyP4j/2KHxA16MwP4/CNUAAALBDEjYKNKRwPUEK12M/uB4lQAAAkEEAALxCzcwMQKRwDUCuR2E+ZmYWQDMzQ0BxPUo/uB5FQAAAAkQSNgo0CtdbQY/C1T8AABBAMzODQQAA7EJmZiZAmpk5QD0KVz4pXM8/MzO7QB+Faz/NzExAAICERBI2CjSamU1BzczMP65HIUBmZo5BAAC+QlK4HkAUrhdAuB6FPkjhuj8fhXtAH4WLP+xRaEAAwH1EEjYKND0KX0GkcN0/rkcRQDMzi0EAANhC7FE4QFyPYkAK16M+uB4FQGZmDkEpXI8/ZmZGQACAnUQSNgo0rkdZQbgeJUD2KCxAAADEQQAA0kJmZsY/PQpXPxSuxz64HsU/XI8KQaRwPT9mZuY/AIA7RBI2CjSamUlBpHAdQM3MDEAAAJRBAAC8Qilczz/D9Sg/rkchP9ejcD8zM+NASOE6P3E9yj8AwC1EEjYKNK5HQUHXo5A/16MgQAAAwEEAAJxCAAAAQHE9yj/NzMw+MzOzP83MDEAUrqc/exQuQACAHUQSNgo0exRiQTMzg0ApXC9AAADEQQAAwEIzMwNAXI9CPylcDz/NzKw/MzMTQfYoHD/NzMw/AAAMRBI2CjQpXENB7FGYPwAA4D9mZoZBAAAXQ83M7D8K16M/KVwPPgAAIEBmZjZACtejP+F6REAAgDNEEjYKNFyPYkHXoyBAUrgeQAAAoEEAALZCPQrXPzMzMz+uR+E+UriePzMzG0FSuB4/SOHaPwAAJUQSNgo0mplNQa5HUUC4HiVAAACwQQAA1EIzM9M/mpkZP5qZGT+PwnU/XI+yQFK4Xj89CgdAAIAORBI2CjSF60VB16NwP3sUrj+amSlBAACwQqRw/T+F6xE/KVyPPj0K1z6amfk/ZmaGP8P16D8AAAJEEjYKNHsUTkEpXD9AmpkZQAAAoEEAANBCZmamP/YonD+PwnU+4XpUP83MrECkcD0/j8K1PwCABEQSNgo0H4VbQT0Ktz8AACBAmpmFQQAA2EKamVlASOFqQFyPQj5cjwJAmpnZQArXYz8UrjdAAKCgRBI2CjQAAEBBrkfBP0jhGkAAALBBAACsQpqZuT8AAKA/AAAAP9ej0D9mZmZAZmaGP5qZKUAAAOFDEjYKNB+FS0EAAOA/hesRQAAAtEEAAKhC16OwP65H4T+PwvU+16PQPzMzU0CuR2E/SOEaQAAA9EMSNgo0FK5bQR+Fi0DXoxBAAAC0QQAAsEIK16M/16PwPrgeBT8zM5M/CtfTQBSuRz8AAOA/AAACRBI2CjQ9CltB16NQQFyPIkAAAKBBAADWQnE96j8pXA8/AAAAP83MTD/2KLxAj8J1P8P16D8AACpEEjYKNK5HQUFxPeo/4XoUQAAAlEEAAKJCzczMPwAAwD+4HgU/hevRP5qZGUBxPYo/rkcRQAAA8EPyBgIIHsIMABoICAVSBAgBEHyqBn4KfAIAAgEAAQIBAQIBAAIBAgEAAgEAAQEBAQAAAAIBAQICAQEAAgEBAQAAAgEBAQEBAAEAAAECAQABAgAAAQEAAgABAgABAgABAQECAAICAgECAQEAAAEBAAEAAgABAQAAAQICAQIBAQABAQEAAAACAgECAQICAQIAAQECAgHCDAA=

Decode like so (on macOS) after copying to clipboard:

pbpaste | base64 -d -i - > KNN.mlmodel

System environment (please complete the following information):

Mstronach commented 3 years ago

An internal bug has been created to track this issue. Updates will be posted here when available.

gkoutsos9 commented 3 years ago

Also having a similar issue. Have there been any updates or workarounds?

bluepixeltech commented 2 years ago

Have you solved this problem? I have the same problem

robwhitewick commented 1 year ago

has this been fixed/workaround found? Running into this issue with 7.0b1 and 6.3.0

FLMP13 commented 4 months ago

Did you find a solution to this problem?