Posted at

tf-coremlでcoreMLモデルが作れない ValueError: Graph has cycles.

More than 1 year has passed since last update.


tf-coremlでモデルの変換

LSTM等のRNNを含むネットワークをpbファイルからcoreMLに変換しようとすると

ValueError: Graph has cycles.

と言われます。

これはRNNのような形のネットワークをcoreMLが対応していないかららしいです。しかし、純粋なネットワークで構成するRNNではなく、coreMLが用意しているRNN用のレイヤーを利用すれば同様の形のネットワークが構築できるようなのですが、要するにそれってcoreMLでモデルをゴリゴリ記述して、Tensorflowで学習した重みを全てcoreML上で適用してねって事みたいです。

参考: https://github.com/tf-coreml/tf-coreml/issues/124

これは辛い…

CaffeやKerasから変換のできるcoremltoolsではこのようなエラーは出なかったので多分そっちではある程度互換性があってそれぞれのレイヤーを利用している感じなのかな。