mlmodel — wat is het, bestandsstructuur en conversie naar mlpackage

Auteur: IT Sectr Gepubliceerd: 2026-07-17 Leestijd: 10 min

mlmodel — is het bestandsformaat van het machine learning-model voor het Core ML-framework van Apple, gebruikt voor het opslaan van getrainde modellen vóór de komst van het .mlpackage-formaat. Het .mlmodel-bestand was een binair pakket in protobuf-formaat, met daarin de modelbeschrijving, gewichten van het neurale netwerk, metadata en informatie over in-/uitgangen. Volgens Apple Core ML Release Notes (2025) is vanaf Xcode 13 en Core ML 4 het oude .mlmodel-formaat afgekeurd ten gunste van .mlpackage.

Belangrijkste punten

  • mlmodel — verouderd Core ML-bestandsformaat voor ML-modellen in binair protobuf-formaat.
  • Bevatte modelgewichten, metadata, in-/uitgangsbeschrijving en pre-/postprocessing configuratie.
  • .mlmodel werd automatisch door Xcode geconverteerd naar .mlpackage bij het compileren.
  • Vanaf Xcode 13 (2021) adviseert Apple het .mlpackage-formaat als moderner.
  • Conversie via Xcode Model Compiler of coremltools in Python.

Wat is mlmodel?

mlmodel — is een binair bestandsformaat geïntroduceerd door Apple in 2017 samen met het Core ML-framework op WWDC 2017. Het formaat is gebaseerd op protobuf (Protocol Buffers) van Google.

Geschiedenis van het formaat

.mlmodel was het enige Core ML-formaat van 2017 tot 2021. Miljoenen modellen uit TensorFlow, Keras, PyTorch, Caffe, scikit-learn en andere bibliotheken zijn via coremltools geconverteerd.

Belangrijkste kenmerken

Het mlmodel-bestand slaat het model op in compacte binaire vorm. Grootte varieert van tientallen kB tot gigabytes. Ondersteunt alle Core ML-modeltypen.

Kenmerkmlmodel
FormaatBinair (protobuf)
LeesbaarheidOnleesbaar
VersiebeheerNee
MetadataIn protobuf-schema
Git-vriendelijkNee

mlmodel bestandsstructuur

Interne structuur van .mlmodel wordt bepaald door het protobuf-schema in CoreML.framework. Secties: modelDescription, modelParameters, preprocessing, postprocessing.

modelDescription sectie

modelDescription (MLModelDescription) bevat modelnaam, auteur, versie, beschrijving, licentie en beschrijving van alle in-/uitgangsparameters.

modelParameters sectie

modelParameters bevat de gewichten en parameters van het getrainde model. Voor neurale netwerken is dit een array van NeuralNetworkLayer.

preprocessing sectie

preprocessing beschrijft de voorverwerkingsstappen: Scaler, ImagePreprocessing, OneHotEncoder, FeatureVectorizer.

mlmodel vs mlpackage: vergelijkende analyse

mlpackage — is het nieuwe generatieformaat voor Core ML-modellen, geïntroduceerd op WWDC 2021. .mlpackage is een directory (pakket) met bestandsstructuur.

Parametermlmodelmlpackage
TypeEnkel binair bestandDirectory (pakket)
MetadataBinair protobufJSON
Git diffNutteloosWerkt
VersiebeheerHandmatigAutomatisch
Custom layersNeeOndersteunt
StatusVerouderdActueel

mlpackage bestandsstructuur

.mlpackage bevat: ModelCI/, Data/, Metadata.json, Model.json, Manifests/.

Hoe mlmodel naar mlpackage converteren

Conversie op twee manieren: automatisch in Xcode of handmatig via coremltools in Python.

python
import coremltools as ct

model = ct.models.MLModel(
    "OldModel.mlmodel"
)
model.author = "IT Sectr"
model.short_description = "Converted from mlmodel"
model.version = "2.0"
model.save("NewModel.mlpackage")

Automatische conversie in Xcode

Bij toevoeging van .mlmodel aan Xcode-project start het systeem automatisch Model Compiler tijdens het bouwen.

Controle na conversie

coremltools biedt ct.utils.compare_models() voor het vergelijken van voorspellingen. Toegestaan verschil voor Float32 is maximaal 1e-5.

Terugwaartse compatibiliteit en ondersteuning

Terugwaartse compatibiliteit van .mlmodel is verzekerd op alle huidige iOS- en macOS-versies.

Ondersteuning in iOS 18+ en macOS 15+

Vanaf iOS 18 ondersteunt Core ML geen direct laden van .mlmodel meer.

Einde ondersteuning

Volledige ondersteuning voor .mlmodel wordt verwacht te eindigen in iOS 20-21 (2026-2027).

Wanneer mlmodel nog relevant is

.mlmodel komt nog voor in bestaande projecten en sommige scenario's.

Oude projecten

Projecten gestart vóór 2021 kunnen tientallen .mlmodel-modellen bevatten.

CI/CD-pijplijnen met coremltools

CI/CD-pijplijnen die coremltools 4.x gebruiken exporteren standaard naar .mlmodel.

Bibliotheken en Pods

Bibliotheken gepubliceerd vóór 2021 kunnen .mlmodel-modellen bevatten.

Veelvoorkomende problemen met mlmodel

Werken met verouderd .mlmodel brengt enkele typische problemen met zich mee.

Xcode deprecatiewaarschuwing

Bij toevoegen van .mlmodel in Xcode 13+ verschijnt waarschuwing: 'mlmodel' format is deprecated. Use 'mlpackage' instead.

Foutmelding Model file is not valid

.mlmodel gemaakt met oude coremltools kan niet openen op iOS 16+.

Problemen met custom layers

.mlmodel met custom layers kunnen niet direct worden geconverteerd.

Veelgestelde vragen

Wat is mlmodel?

mlmodel — verouderd binair bestandsformaat voor Core ML-modellen.

Wat is het verschil tussen mlmodel en mlpackage?

mlmodel — enkel binair bestand. mlpackage — directory met JSON-metadata.

Hoe open ik een .mlmodel-bestand?

Via Xcode, coremltools of Netron.

Moet ik mlmodel naar mlpackage converteren?

Aanbevolen. Nieuwe Core ML-functies zijn niet beschikbaar voor .mlmodel.

Wordt mlmodel ondersteund op iOS 18?

iOS 18+ ondersteunt .mlmodel alleen in terugwaartse compatibiliteitsmodus.

Samenvatting

  • mlmodel — verouderd binair formaat (protobuf).
  • Drie secties: modelDescription, modelParameters, preprocessing.
  • .mlpackage — nieuw formaat met leesbare JSON-metadata.
  • Conversie: Xcode of coremltools.
  • iOS 18+ ondersteunt .mlmodel alleen via Xcode-conversie.
  • Problemen: deprecatiewaarschuwing, protobuf-fouten, custom layers.
  • Apple adviseert migratie naar .mlpackage.

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook