coremltools Входной узел конвейера не связан с остальной частью модели

Я построил модель Encoder/Decoder (в PyTorch), сохраненную как две отдельные mlmodel объекты. Я хочу собрать их вместе в coremltools.models.pipelineв целях эффективности. С двумя входными моделями, сохраненными на диск, это то, что я использую для построения конвейера:

from coremltools.models.pipeline import *
from coremltools.models import datatypes

input_features = [('distorted_input', datatypes.Array(28*28))]
output_features = ['z_distribution', 'rectified_input']

pipeline = Pipeline(input_features, output_features)
pipeline.add_model(enc_mlmodel)
pipeline.add_model(dec_mlmodel)

pipeline_model = coremltools.models.MLModel(pipeline.spec)
pipeline_model.save('inputFixerPipeline.mlmodel')

Создание конвейера проходит нормально, но сохраненная модель не может подключить вход - т.е., глядя на модель в Netron, я вижу, что distorted_input узел просто висит сам по себе. Остальная часть конвейера кажется правильной.

Какие-нибудь мысли?

1 ответ

Отвечая на мой собственный вопрос: у меня был аргумент для image_input_names на 2-й модели в моем трубопроводе. Фактически, это не снимок, а просто тензор, так что, я полагаю, это каким-то образом сбило с толку строителя конвейера. Удаление image_input_names Вступление исправить модель трубопровода сразу.

Надеюсь, это поможет кому-то избежать времени в будущем.

Другие вопросы по тегам