Я преобразовал модель Keras в MLModel с помощью coremltools 4.0 с ограниченным успехом. Это работает, но только в том случае, если я использую MLMultiArray для вывода и скрываю изображение. Преобразование в изображение занимает больше времени, чем вывод; делает его непригодным для использования Он работал для TensorFlow 1 и coremltools 3.4, но теперь для TensorFlow 2 и coremltools 4.0b1 - нет. Добавление нового слоя для преобразования вывода из [0,1] - ›[0, 255] не помогает. Мы также поняли, что некоторые дополнительные слои добавляются автоматически с помощью cormel, что может быть проблемой. Здесь у вас есть изображение
Я попытался транспонировать ввод с помощью np.transpose, но это не решило проблему, а создало новый. Если ввод соответствует формату (3, 256, 256), я получаю следующую ошибку:
RuntimeError: {NSLocalizedDescription = Входная функция изображения input_1 не соответствует описанию модели; NSUnderlyingError = Error Domain = com.apple.CoreML Code = 0 Высота изображения (256) не входит в допустимый диапазон (200..400) UserInfo = {NSLocalizedDescription = Высота изображения (256) не входит в допустимый диапазон (200..400) }; }
Но если размер равен (256, 256, 3), я получаю следующую ошибку:
NSLocalizedDescription = Не удалось преобразовать вывод output_1 в изображение; NSUnderlyingError = Error Domain = com.apple.CoreML Code = 0 Недопустимая форма массива (\ n 256, \ n 256, \ n 1 \ n) для преобразования в серое изображение UserInfo = {NSLocalizedDescription = Недопустимая форма массива (\ n 256, \ n 256, \ n 1 \ n) для преобразования в серое изображение};
Есть ли у вас какие-либо идеи?