Skip to main content

Convert Torch7 models into Apple CoreML format.

Project description

This tool helps convert Torch7 models into Apple CoreML format which can then be run on Apple devices.


pip install -U torch2coreml

In order to use this tool you need to have these installed: * Xcode 9 * python 2.7

If you want to run tests, you need MacOS High Sierra 10.13 installed.


  • coremltools (0.6.2+)
  • PyTorch

How to use

Using this library you can implement converter for your own model types. An example of such a converter is located at “example/fast-neural-style/”. To implement converters you should use single function “convert” from torch2coreml:

from torch2coreml import convert

This function is simple enough to be self-describing:

def convert(model,


model: Torch7 model (loaded with PyTorch) | str
A trained Torch7 model loaded in python using PyTorch or path to file with model (*.t7).
input_shape: tuple
Shape of the input tensor.
mode: str (‘classifier’, ‘regressor’ or None)
Mode of the converted coreml model:
‘classifier’, a NeuralNetworkClassifier spec will be constructed.
‘regressor’, a NeuralNetworkRegressor spec will be constructed.
preprocessing_args: dict
‘is_bgr’, ‘red_bias’, ‘green_bias’, ‘blue_bias’, ‘gray_bias’, ‘image_scale’ keys with the same meaning as
deprocessing_args: dict
Same as ‘preprocessing_args’ but for deprocessing.
class_labels: A string or list of strings.
As a string it represents the name of the file which contains the classification labels (one per line). As a list of strings it represents a list of categories that map the index of the output of a neural network to labels in a classifier.
predicted_feature_name: str
Name of the output feature for the class labels exposed in the Core ML model (applies to classifiers only). Defaults to ‘classLabel’


model: A coreml model.

Currently supported


Only Torch7 “nn” module is supported now.


List of Torch7 layers that can be converted into their CoreML equivalent:

  1. Sequential
  2. ConcatTable
  3. SpatialConvolution
  4. ELU
  5. ReLU
  6. SpatialBatchNormalization
  7. Identity
  8. CAddTable
  9. SpatialFullConvolution
  10. SpatialSoftMax
  11. SpatialMaxPooling
  12. SpatialAveragePooling
  13. View
  14. Linear
  15. Tanh
  16. MulConstant
  17. SpatialZeroPadding
  18. SpatialReflectionPadding
  19. Narrow


Copyright (c) 2017 Prisma Labs, Inc. All rights reserved.

Use of this source code is governed by the MIT License that can be found in the LICENSE.txt file.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for torch2coreml, version 0.0.6
Filename, size File type Python version Upload date Hashes
Filename, size torch2coreml-0.0.6-py2.7-none-any.whl (10.9 kB) File type Wheel Python version py2.7 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page