NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3751 most downloaded on PyPI
Community Tools for Core ML
Last release 2 months ago
03 Aug 2026
Ships fairly regularly
a new release about every 2 months
Most releases are documented
notes for 22 of 32 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
56 releases · first in 2017
Update version number for dev release
Update version number for dev release
Python 3.14 Support
Prevent PIL from being a hard dependency
Bug fix
Fix bug in unit test
torchaudio version needs to match torch version
Compare to 8.3.0 (including features from 9.0b1)
Compare to 8.3.0 (including features from 9.0b1)
iOS26/macOS26/watchOS26/tvOS26 deployment targets.im2col PyTorch operation.Special thanks to our external contributors for this release: @orena1 , @M-Quadra, @noobsiecoder, @metascroy, @hasn77, @Pranaykarvi
One column per quarter.
Support for model input/output with int8 dtype
iOS26/macOS26/watchOS26/tvOS26 deployment targetsim2col PyTorch operation.Special thanks to our external contributors for this release: @pchen7e2, @GameRoMan, @tritolol, @james-p-xu, @M-Quadra, @reneleonhardt, @kasper0406
Coremltools 9.0b1 Pre-release
Pre-release
Compare
Features Debugging And Performance Utilities to root cause numerical issues and performance bottlenecks.
Features Debugging And Performance Utilities to root cause numerical issues and performance bottlenecks.
Various other bug fixes, enhancements, clean ups and optimizations
Special thanks to 3P Developers: @RGooBS24 , @M-Quadra , @smpanaro , @Zerui18 , @yushangdi , @lkb85 , @Pranaykarvi , @billmguo , @metascroy , @benoit-vinsonneau , @ccyoyou , @reneleonhardt !!
Increase conversion support coverage for models produced by torch.export
Special thanks to our open source community contributors for this release: @RGooBS24 @fukatani @twoertwein @kasper0406
Added support for additional PyTorch operations
torch.clamp_max, torch.rand_like, torch.all, torch.linalg_inv, torch.nan_to_num, torch.cumprod, torch.searchsorted ops are now supported.torch.export
torch.jit.traceconverter.ImageType input.Compare to 7.2 (including features from 8.0b1 and 8.0b2)
Compare to 7.2 (including features from 8.0b1 and 8.0b2)
protobuf python package which improves serialization latency.torch 2.4.0, numpy 2.0, scikit-learn 1.5.torch.export
torch.jit.trace converterct.optimize.torch could be exported by torch.export and then convert.cluster_dim > 1 and palettization with per channel scale by setting enable_per_channel_scale=True.coremltools.optimize.coreml and coremltools.optimize.torchtorchao (including the ops produced by torchao such as _weight_int4pack_mm).quantized_decomposed namespace, such as embedding_4bit, etc.constexpr_blockwise_shift_scale, constexpr_lut_to_dense, constexpr_sparse_to_dense, etcscaled_dot_product_attentionclip opoptimizationHints.coremltools.utils
coremltools.utils.MultiFunctionDescriptor and coremltools.utils.save_multifunction, for creating an mlprogram with multiple functions in it, that can share weights.coremltools.models.utils.bisect_model can break a large Core ML model into two smaller models with similar sizes.coremltools.models.utils.materialize_dynamic_shape_mlmodel can convert a flexible input shape model into a static input shape model.Deprecated cluter_dtype option in favor of lut_dtype in ModuleDKMPalettizerConfig .
protobuf python package: Improves serialization latency.numpy 2.0.scikit-learn 1.5.coremltools.models.utils.bisect_model can break a large Core ML model into two smaller models with similar sizes.coremltools.models.utils.materialize_dynamic_shape_mlmodel can convert a flexible input shape model into a static input shape model.coremltools.optimize.coreml
cluster_dim > 1 in coremltools.optimize.coreml.OpPalettizerConfig, you can do the vector palettization, where each entry in the lookup table is a vector of length cluster_dim.enable_per_channel_scale=True in coremltools.optimize.coreml.OpPalettizerConfig, weights are normalized along the output channel using per channel scales before being palettized.coremltools.optimize.torch.coremltools.optimize.torch
coremltools.optimize.torch .SKMPalettizer .PostTrainingPalettizer and DKMPalettizer .cluter_dtype option in favor of lut_dtype in ModuleDKMPalettizerConfig .ConvTranspose modules with PostTrainingQuantizer and LinearQuantizer .GPTQ.Conv2D layer with per-block quantization in GPTQ .QAT APIs.torch.export conversion support
clip .torch.export modelimport torch
import coremltools as ct
class Model(torch.nn.Module):
def __init__(self):
super(Model, self).__init__()
self.register_buffer("state_1", torch.tensor([0.0, 0.0, 0.0]))
def forward(self, x):
# In place update of the model state
self.state_1.mul_(x)
return self.state_1 + 1.0
source_model = Model()
source_model.eval()
example_inputs = (torch.tensor([1.0, 2.0, 3.0]),)
exported_model = torch.export.export(source_model, example_inputs)
coreml_model = ct.convert(exported_model, minimum_deployment_target=ct.target.iOS18)
torch.export models with dynamic input shapesimport torch
import coremltools as ct
class Model(torch.nn.Module):
def __init__(self):
super(Model, self).__init__()
self.linear = torch.nn.Linear(3, 5)
def forward(self, x):
y = self.linear(x)
return y
source_model = Model()
source_model.eval()
example_inputs = (torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]),)
dynamic_shapes = {"x": {0: torch.export.Dim(name="batch_dim")}}
exported_model = torch.export.export(source_model, example_inputs, dynamic_shapes=dynamic_shapes)
coreml_model = ct.convert(exported_model)
torch.export with 4-bit weight compressionimport torch
from torch._export import capture_pre_autograd_graph
from torch.ao.quantization.quantize_pt2e import convert_pt2e, prepare_pt2e
from torch.ao.quantization.quantizer.xnnpack_quantizer import (
XNNPACKQuantizer,
get_symmetric_quantization_config,
)
import coremltools as ct
class Model(torch.nn.Module):
def __init__(self):
super(Model, self).__init__()
self.linear = torch.nn.Linear(3, 5)
def forward(self, x):
y = self.linear(x)
return y
source_model = Model()
source_model.eval()
example_inputs = (torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]),)
pre_autograd_graph = capture_pre_autograd_graph(source_model, example_inputs)
quantization_config = get_symmetric_quantization_config(weight_qmin=-7, weight_qmax=8)
quantizer = XNNPACKQuantizer().set_global(quantization_config)
prepared_graph = prepare_pt2e(pre_autograd_graph, quantizer)
converted_graph = convert_pt2e(prepared_graph)
exported_model = torch.export.export(converted_graph, example_inputs)
coreml_model = ct.convert(exported_model, minimum_deployment_target=ct.target.iOS17)
coremltools 8.0b2 Pre-release
Pre-release
Compare
For all the new features, find the updated documentation in the docs-guides
For all the new features, find the updated documentation in the docs-guides
coremltools.utils.MultiFunctionDescriptor() and coremltools.utils.save_multifunction , for creating an mlprogram with multiple functions in it, that can share weights. Updated the model loading API to load specific functions for prediction.coremltools.optimize
mlprogram) pertaining to compression:
coremltools.optimize.coreml
ct.optimize.coreml.experimental.linear_quantize_activations
coremltools.optimize.torch
PostTrainingPalettizer , PostTrainingQuantizerSKMPalettizer for sensitive k-means palettization algorithm, layerwise_compression for GPTQ/sparseGPT quantization/pruning algorithm)coremltools.convert implementation, so that for converting torch models compressed with ct.optimize.torch , there is no longer a need to provide additional pass pipeline arguments.constexpr_blockwise_shift_scale, constexpr_lut_to_dense, constexpr_sparse_to_dense, etcscaled_dot_product_attentiontorch.export conversion supportimport torch
import torchvision
import coremltools as ct
torch_model = torchvision.models.vit_b_16(weights="IMAGENET1K_V1")
x = torch.rand((1, 3, 224, 224))
example_inputs = (x,)
exported_program = torch.export.export(torch_model, example_inputs)
coreml_model = ct.convert(exported_program)
ct.optimize.torchct.optimize.torch will result in a torch model that is not correctly convertedct.optimize.coreml.``OpPalettizerConfig) does not yet have all the arguments that are supported in the cto.torch.palettization APIs (e.g. lut_dtype (to get int8 dtyped LUT), cluster_dim (to do vector palettization), enable_per_channel_scale (to apply per-channel-scale) etc).ct.optimize.torch.layerwise_compression.LayerwiseCompressor will not produce the correct quantization scales, due to a known bug. This may lead to poor accuracy for the quantized modelSpecial thanks to our external contributors for this release: @teelrabbit @igeni @Cyanosite
coremltools 8.0b1 Pre-release
Pre-release
Compare
Supports ExecuTorch 0.2 (see ExecuTorch doc for examples)
torch.narrowtorch.adaptive_avg_pool1d and torch.adaptive_max_pool1dtorch.numpy_t (i.e. the numpy-style transpose operator .T)torch.clamp_min for integer data typetorch.add for complex data typetf.math.top_k when k is variableThanks to our ExecuTorch partners and our open-source community: @KrassCodes @M-Quadra @teelrabbit @minimalic @alealv @ChinChangYang @pcuenca
Includes experimental support for torch.export API but limited to EDGE dialect.
New Features:
Includes experimental support for torch.export API but limited to EDGE dialect.
Example usage:
import torch
from torch.export import export
from executorch.exir import to_edge
import coremltools as ct
example_args = (torch.randn(*size), )
aten_dialect = export(AnyNNModule(), example_args)
edge_dialect = to_edge(aten_dialect).exported_program()
edge_dialect._dialect = "EDGE"
mlmodel = ct.convert(edge_dialect)
Enhancements:
ct.utils.make_pipeline - now allows specifying compute_unitsBug Fixes:
Various other bug fixes, enhancements, clean ups and optimizations.
coremltools.compression_utils is deprecated.
coremltools.optimize for model quantization and compression
coremltools.optimize.coreml for compressing coreml models, in a data free manner. coremltools.compresstion_utils.* APIs have been moved herecoremltools.optimize.torch for compressing torch model with training data and fine-tuning. The fine tuned torch model can then be converted using coremltools.convertmlprogram for iOS15/macOS12. Previously calling coremltools.convert() without providing the convert_to or the minimum_deployment_target arguments, used the lowest deployment target (iOS11/macOS10.13) and the neuralnetwork backend. Now the conversion process will default to iOS15/macOS12 and the mlprogram backend. You can change this behavior by providing a minimum_deployment_target or convert_to value.repeat_interleave, unflatten, col2im, view_as_real, rand, logical_not, fliplr, quantized_matmul, randn, randn_like, scaled_dot_product_attention, stft, tilepass_pipeline parameter has been added to coremltools.convert to allow controls over which optimizations are performed..modelc files). Get compiled model files from an MLModel instance. Python API to explicitly compile a model.coremltools.optimize.coreml.get_weights_metadata. This information can be used to customize optimization across ops when using coremltools.optimize.coreml APIs.coremltools.compression_utils is deprecated.mlprogram backend is used.mlprogram:
RangeDim is used and no upper-bound is set (with a positive number), an exception will be raised.inputs parameter but there are undetermined dim in input shape (for example, TF with "None" in input placeholder), it will be sanitized to a finite number (default_size + 1) and raise a warning.Special thanks to our external contributors for this release: @fukatani , @pcuenca , @KWiecko , @comeweber , @sercand , @mlaves, @cclauss, @smpanaro , @nikalra, @jszaday
The default neural network backend is now mlprogram for iOS15/macOS12. Previously calling coremltools.convert() without providing the convert_to or th
mlprogram for iOS15/macOS12. Previously calling coremltools.convert() without providing the convert_to or the minimum_deployment_target arguments, used the lowest deployment target (iOS11/macOS10.13) and the neuralnetwork backend. Now the conversion process will default to iOS15/macOS12 and the mlprogram backend. You can change this behavior by providing a minimum_deployment_target or convert_to value.mlprogram backend is used.mlprogram:
RangeDim is used and no upper-bound is set (with a positive number), an exception will be raised.inputs parameter but there are undetermined dim in input shape (for example, TF with "None" in input placeholder), it will be sanitized to a finite number (default_size + 1) and raise a warning.coremltools.optimize.coreml.get_weights_metadata. This information can be used to customize optimization across ops when using coremltools.optimize.coreml APIs.repeat_interleave and unflatten.batch_norm, conv, conv_transpose, expand_dims, gru, instance_norm, inverse, l2_norm, layer_norm, linear, local_response_norm, log, lstm, matmul, reshape_like, resample, resize, reverse, reverse_sequence, rnn, rsqrt, slice_by_index, slice_by_size, sliding_windows, squeeze, transpose.Special thanks to our external contributors for this release: @fukatani, @pcuenca, @KWiecko, @comeweber and @sercand
coremltools.models.ml_program.compression_utils is deprecated.
coremltools.optimize for model quantization and compression
coremltools.optimize.coreml for compressing coreml models, in a data free manner. coremltools.compresstion_utils.* APIs have been moved herecoremltools.optimize.torch for compressing torch model with training data and fine-tuning. The fine tuned torch model can then be converted using coremltools.convertpass_pipeline parameter has been added to coremltools.convert to allow controls over which optimizations are performed.randn, randn_like, scaled_dot_product_attention, stft, tilecoremltools.models.ml_program.compression_utils is deprecated.Core ML tools 7.0 guide: https://coremltools.readme.io/v7.0/
Special thanks to our external contributors for this release: @fukatani, @pcuenca, @mlaves, @cclauss, @smpanaro, @nikalra, @jszaday
Nothing published for this version
Support new PyTorch version: torch==1.13.1 and torchvision==0.14.1.
torch==1.13.1 and torchvision==0.14.1.torch.fft, torchvision.ops.nms, torch.atan2, torch.bitwise_and, torch.numel,tf.signal, tf.tensor_scatter_nd_add.clamp op.topk (k not determined during compile time).padding='valid' in PyTorch convolution.Special thanks to our external contributors for this release: @fukatani, @ChinChangYang, @danvargg, @bhushan23 and @cjblocker.
New PyTorch ops supported: baddbmm, glu, hstack, remainder, weight_norm, hann_window, randint, cross, trace, and reshape_as.
2.10.baddbmm, glu, hstack, remainder, weight_norm, hann_window, randint, cross, trace, and reshape_as.repeat and expand op.where op with only one input.'bhcq,bhck→bhqk’.Special thanks to our external contributors for this release: @fukatani, @piraka9011, @giorgiop, @hollance, @SangamSwadiK, @RobertRiachi, @waylybaye, @GaganNarula, and @sunnypurewal.
MLProgram compression: affine quantization, palettize, sparsify. See coremltools.compression_utils
coremltools.compression_utils1.1.2).1.12.1).2.8.coremltools.ImageType used with inputs.CPU_AND_NE to select the model runtime to the Neural engine and CPU.full_like, resample, reshape_like, pixel_unshuffle, topkcrop_resize, gather, gather_nd, topk, upsample_bilinear.useCPUOnly parameter from coremltools.convert and coremltools.models.MLModel. Use coremltools.ComputeUnit instead.Support for new MIL ops added in iOS16/macOS13: pixel_unshuffle, resample, topk
pixel_unshuffle, resample, topkCPU_AND_NEAdaptiveAvgPool2d, cosine_similarity, eq, linalg.norm, linalg.matrix_norm, linalg.vector_norm, ne, PixelUnshuffleidentity_n TensorFlow op[API Breaking Change] Remove useCPUOnly parameter from coremltools.convert and coremltools.models.MLModel. Use coremltools.ComputeUnit instead.
coremltools.compression_utils.coremltools.ImageType used with inputs.useCPUOnly parameter from coremltools.convert and coremltools.models.MLModel. Use coremltools.ComputeUnit instead.Known issues
predict API in coremltools to crash when the either the input or output is of type grayscale float16MLComputeUnitsCPUAndNeuralEngine is not available in coremltools yetNothing published for this version
Nothing published for this version
Keras.io and ONNX converters will be deprecated in coremltools 6. Users are recommended to transition to the TensorFlow/PyTorch conversion via the uni…
convert_to argument with the unified converter API to indicate the model type of the Core ML model.
coremltools.convert(..., convert_to=“mlprogram”) converts to a Core ML model of type ML program.coremltools.convert(..., convert_to=“neuralnetwork”) converts to a Core ML model of type neural network. “Neural network” is the older Core ML format and continues to be supported. Using just coremltools.convert(...) will default to produce a neural network Core ML model.ct.convert(..., convert_to=“mlprogram”, compute_precision=ct.precision.FLOAT32) or ct.convert(..., convert_to=“mlprogram”, compute_precision=ct.precision.FLOAT16)save method. Simply use model.save("<model_name>.mlpackage") instead of the usual model.save(<"model_name>.mlmodel")
compute_units parameter to MLModel and coremltools.convert. This matches the MLComputeUnits in Swift and Objective-C. Use this parameter to specify where your models can run:
ALL - use all compute units available, including the neural engine.CPU_ONLY - limit the model to only use the CPU.CPU_AND_GPU - use both the CPU and GPU, but not the neural engine.ct.convert(....., skip_model_load=True)convert_neural_network_weights_to_fp16(), convert_neural_network_spec_weights_to_fp16() , that had been deprecated in coremltools 4, have been removed.useCPUOnly parameter for MLModel and MLModel.predicthas been deprecated. Instead, use the compute_units parameter for MLModel and coremltools.convert.Added support for pytorch conversion for tensor assignment statements: torch_tensor_assign op and index_put_ op . Fixed bugs in translation of expand
torch_tensor_assign op and index_put_ op . Fixed bugs in translation of expand ops and sort ops.Fixes Python 3.5 and 3.6 errors when importing some specific submodules.
With the above change we are deprecating the useCPUOnly parameter for MLModel and coremltools.convert.
compute_units parameter to MLModel and coremltools.convert. Use this to specify where your models can run:
ALL - use all compute units available, including the neural engine.CPU_ONLY - limit the model to only use the CPU.CPU_AND_GPU - use both the CPU and GPU, but not the neural engine.useCPUOnly parameter for MLModel and coremltools.convert.compute_precision parameter of coremltools.convert.Added flag to skip loading a model during conversion. Useful when converting for new macOS on older macOS.
coremltools.utils.rename_feature utility for ML Program specKeras.io and ONNX converters will be deprecated in coremltools 6. Users are recommended to transition to the TensorFlow/PyTorch conversion via the uni…
To install this version run: pip install coremltools==5.0b1
convert_to argument with the unified converter API to indicate the model type of the Core ML model.
coremltools.convert(..., convert_to=“mlprogram”) converts to a Core ML model of type ML program.coremltools.convert(..., convert_to=“neuralnetwork”) converts to a Core ML model of type neural network. “Neural network” is the older Core ML format and continues to be supported. Using just coremltools.convert(...) will default to produce a neural network Core ML model.ct.convert(..., convert_to=“mlprogram”, compute_precision=ct.precision.FLOAT32) or ct.convert(..., convert_to=“mlprogram”, compute_precision=ct.precision.FLOAT16)save method. Simply use model.save("<model_name>.mlpackage") instead of the usual model.save(<"model_name>.mlmodel")
convert_neural_network_weights_to_fp16(), convert_neural_network_spec_weights_to_fp16() , that had been deprecated in coremltools 4, have been removed.precision.FLOAT32, although it will be updated to precision.FLOAT16 in a later beta release, prior to the official coremltools 5.0 release.useCPUOnly argument during conversion. That is, ct.convert(source_model, convert_to='mlprogram', useCPUOnly=True). And for such models, in your swift code you can use the MLComputeUnits.cpuOnly option at the time of loading the model, to restrict the compute unit to CPU.Support for python 2 deprecated. This release contains wheels for python 3.5, 3.6, 3.7, 3.8
New documentation available at http://coremltools.readme.io.
coremltools 4.0ct.convert()MIL its easy to build neural network models directly or implement composite operations.ct.convert() with ct.ImageType(), ct.ClassifierConfig(), etc., see details: https://coremltools.readme.io/docs/neural-network-conversion.coremltools 4coremltools 4Fix in rename_feature API, when used with a neural network model with image inputs
Several bug fixes, including:
rename_feature API, when used with a neural network model with image inputs.pth extension, in addition to .pt extension , for torch conversioninverse layer, on a few devices, by increasing the lower bound of the outputAdded conversion functions for PyTorch ops such as neg, sum, repeat, where, adaptive_max_pool2d, floordiv etc
Update Doc strings for several MIL ops
Support for TF1 models with fake quant ops when used with convolution ops
Several new MIL optimization passes such as no-op elimination, pad and conv fusion etc.
LSTM activation function moved from TupleInput to individual inputs
Deprecated the following methods
ct.convert() for converting PyTorch and TensorFlow (including tf.keras) models.ct.convert() with ct.ImageType(), ct.ClassifierConfig(), etc., see details: https://coremltools.readme.io/docs/neural-network-conversion.ct.converters.onnx.convert().Deprecated the following methods
NeuralNetworkShaper class.get_allowed_shape_ranges().can_allow_multiple_input_shapes().visualize_spec() method of the MLModel class.quantize_spec_weights(), instead use the quantize_weights() method.get_custom_layer_names(), replace_custom_layer_name(), has_custom_layer(), moved them to internal methods.Added deprecation warnings for, will be deprecated in next major release.
convert_neural_network_weights_to_fp16(), convert_neural_network_spec_weights_to_fp16(). Instead use the quantize_weights() method. See https://coremltools.readme.io/docs/quantization for details.coremltools.utils.rename_feature does not work correctly in renaming the output feature of a model of type neural network classifierleaky_relu layer is not added yet to the PyTorch converter, although it's supported in MIL and the Tensorflow converters.Deprecated the following methods
ct.convert() for converting PyTorch and TensorFlow (including tf.keras) models.ct.convert() with ct.ImageType(), ct.ClassifierConfig(), etc., see details: https://coremltools.readme.io/docs/neural-network-conversion.ct.converters.onnx.convert().Deprecated the following methods
NeuralNetworkShaper class.get_allowed_shape_ranges().can_allow_multiple_input_shapes().visualize_spec() method of the MLModel class.quantize_spec_weights(), instead use the quantize_weights() method.get_custom_layer_names(), replace_custom_layer_name(), has_custom_layer(), moved them to internal methods.Added deprecation warnings for, will be deprecated in next major release.
convert_neural_network_weights_to_fp16(), convert_neural_network_spec_weights_to_fp16(). Instead use the quantize_weights() method. See https://coremltools.readme.io/docs/quantization for details.coremltools.utils.rename_feature does not work correctly in renaming the output feature of a model of type neural network classifierleaky_relu layer is not added yet to the PyTorch converter, although its supported in MIL and the Tensorflow converters.Added deprecation warnings for class NeuralNetworkShaper and methods visualize_spec, quantize_spec_weights
tf.einsum opembeddingND layer, conversion of tf.stack opNeuralNetworkShaper and methods visualize_spec, quantize_spec_weightsAdd support for converting Softplus layer in coremltools.
This release includes new op conversion supports, bug fixes, and improved graph optimization passes.
This release includes new op conversion supports, bug fixes, and improved graph optimization passes.
Install/upgrade to the latest coremltools with pip install --upgrade coremltools.
More details can be found in neural-network-guide.md.
Add support for TensorFlow 2.x file format (.h5, SavedModel, and concrete functions).
AddV2, FusedBatchNormV3.tf.keras model conversion supported only with TensorFlow 2tf.keras graphs that contain recurrent layers.We are very excited about the release of coremltools 3 and for Core ML release notes to become a fixture, increasing the issues resolved and features
We are very excited about the release of coremltools 3 and for Core ML release notes to become a fixture, increasing the issues resolved and features added. In this document, we give you an overview of the features and issues that were resolved in the most recent release. The issues can also be found on the project boards of each respective repository (for example, coremltools). The labels will also indicate the type of issue.
In addition to the features and improvements introduced in this release, there have been some changes within the repository. There are now issue templates to help specify the type of issue whether its a bug, feature request or question. and help us triage quickly. There is also a new document, contributing.md which contains guidelines for community engagement.
We are happy to announce the official release of coremltools 3 which aligns with Core ML 3. It includes a new version of the .mlmodel specification (version 4) which brings with it support for:
This version of coremltools also includes a new converter path for TensorFlow models. The tfcoreml converter has been updated to include this new path to convert to specification 4 which can handle control flow and cyclic tensor flow graphs.
Control flow example can be found here.
Core ML 3 supports an on-device update of models. Version 4 of the .mlmodel specification can encapsulate all the necessary parameters for a model update. Nearest neighbor, neural networks and pipeline models can all be made updatable.
Updatable neural networks support the training of convolution and fully connected layer weights (with back-propagation through many other layers types). Categorical cross-entropy and mean squared error losses are available along with stochastic gradient descent and Adam optimizers.
See examples of how to convert and create updatable models.
See the MLUpdateTask API reference for how to update a model from within an app.
NeuralNetworkBuilder
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Support for quantizing Neural Network models (1-8 bits)
Nothing published for this version
Adds Python 3.5 and 3.6 support
Nothing published for this version
Added a “useCPUOnly” flag that lets you run predictions using CoreML through Python bindings using only the CPU
Note: coremltools-0.6.2 has a known issue with the useCPUOnly flag that failed on certain neural network models. This has been fixed with 0.6.3
Added support for layers in the NeuralNetworkBuilder that were present in the neural network protobuf but missing from the builder:
Added support for some of the missing parameters in NeuralNetworkBuilder:
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →