A Swift library for programmatically creating and exporting CoreML models using a Swift-native DSL and API.
SwiftCoreMLTools is a Swift library designed for creating and exporting CoreML models programmatically in Swift. It solves the problem of cumbersome CoreML model generation by providing a Swift-native DSL and API, allowing developers to define neural networks, specify layers and activations, and export models to CoreML format without directly manipulating protobuf structures.
Swift developers and machine learning practitioners working on iOS/macOS projects who need to generate, customize, or export CoreML models, especially those using Swift for TensorFlow or requiring on-device training capabilities.
Developers choose SwiftCoreMLTools for its Swifty, expressive syntax that simplifies CoreML model creation compared to low-level protobuf manipulation. It uniquely supports creating personalizable models for on-device training and offers both a declarative DSL and a flexible programmatic API.
A Swift library for creating and exporting CoreML Models in Swift
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses function builders for declarative model definition, making CoreML creation more intuitive and Swifty compared to manipulating raw protobuf structures directly.
Offers both a DSL and a low-level API, allowing developers to choose between concise syntax for quick prototyping or fine-grained control for complex models.
Implements Codable for exporting models to JSON and YAML formats, enabling easy editing, version control, and debugging of model structures without binary files.
Allows creation of updatable CoreML models with configurable losses and optimizers, facilitating on-device retraining scenarios, as demonstrated in sample projects like MNIST training.
Not an Apple product, with the README explicitly stating it's 'not maintained,' risking compatibility issues, lack of bug fixes, and potential breaking changes.
Currently only supports neural networks, ignoring other CoreML model categories like classifiers or regressors, which limits its use for broader machine learning tasks.
Labeled as a 'work in progress' with neural network support still evolving, so some layers or features may be missing or unstable compared to official tools.