keras -> mlmodel: объект coreml не имеет атрибута 'convert' - PullRequest
0 голосов
/ 13 января 2019

Я пытаюсь преобразовать свою модель keras в mlmodel, используя coreml. Тем не менее, он говорит, что модуль coremltools не имеет атрибута 'convert'.

AttributeError: 'module' object has no attribute 'convert'

Мои модули coremltools, keras, tenorflow (tenorflow-gpu) являются современными. Я также использую Python 2.7.10.

Я использовал Windows и Mac, в которых ни работал. Однако caffe.convert работает по модели caffe.

Код:

coreml_model = coremltools.converters.keras.convert(MODEL_PATH)

Согласно документации, я ожидал, что метод convertters.keras.convert будет доступен в coremltools. Документация: https://apple.github.io/coremltools/generated/coremltools.converters.keras.convert.html

Пожалуйста, помогите, заранее спасибо!

Edit:

import coremltools
# from keras.models import load_model
import keras
import sys
from keras.applications import MobileNet
from keras.utils.generic_utils import CustomObjectScope

with CustomObjectScope({'relu6': keras.applications.MobileNet.relu6, 'DepthwiseConv2D': keras.applications.mobilenet.DepthwiseConv2D}):
    model = load_model('weights.hdf5')

MODEL_PATH = "data/model_wide_cifar-10_fruits_model.h5"

def main():
    """ Takes in keras model and convert to .mlmodel"""
    print(sys.version)

    # Load in keras model.
    # model = load_model(MODEL_PATH)

    # load labels
    labels=[]
    label_handler = open("fruit-labels.txt", 'r')
    for label in label_handler:
        labels.append(label.rstrip())
    label_handler.close()
    print("[INFO] Labels: {0}".format(labels))

    # Convert to .mlmodel
    coreml_model = coremltools.converters.keras.convert(
        model=MODEL_PATH,
        input_names="image",
        output_names="image",
        class_labels=labels)

    labels = 'fruit-labels.txt'

    # Save .mlmodel
    coreml_model.utils.save_spec('fruitclassifier.mlmodel')
...