coremltools конвертирует вывод в float - PullRequest
0 голосов
/ 11 января 2020

Эй, у меня есть модель с форматом .pth, я решил преобразовать эту модель в apple .mlmodel с помощью .pth -> .onnx -> .mlmodel

Я использовал coremltools для преобразования ввода в изображение, но мне нужно преобразовать вывод в Double. Теперь у меня есть что-то вроде MultiArray (Float32) MultiArray формы (1, 1, 1, 1, 1). Первое и второе измерения соответствуют последовательности и размеру партии соответственно

Я пытаюсь сделать что-то вроде этого

import coremltools
from coremltools.proto import FeatureTypes_pb2 as ft


spec = coremltools.utils.load_spec("ios.mlmodel")
output = spec.description.output[0]
output.type = ft.DoubleFeatureType
model.save('testowymodel2.mlmodel')

1 Ответ

0 голосов
/ 12 января 2020

Определите эту функцию:

import coremltools.proto.FeatureTypes_pb2 as ft

def update_multiarray_to_double(feature):
    if feature.type.HasField("multiArrayType"):
        feature.type.multiArrayType.dataType = ft.ArrayFeatureType.DOUBLE

Затем назовите ее так:

for feature in spec.description.output:
    update_multiarray_to_double(feature)

coremltools.utils.save_spec(spec, "woot.mlmodel")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...