あるプロジェクトでWatson Machine Learning(以下、Watson ML)に、TensorFlowとKerasで作ったモデルをデプロイしているのですが、これが使えなくなってしまいました・・・。
いままでは、下記のようなバージョンのTensorFlowとKerasで作ったモデルをデプロイしていました。
TensorFlow 1.14.0と、Keras 2.2.4ですね。
それが、ある日突然(というわけでもないのでしょうが・・・)使えないようになり、再度デプロイしようとすると、こんなエラーになってしまいます。
TensorFlow 1.14じゃダメだというわけです。このメッセージにあるURLにアクセスしてみると、こんなことが書いてあります。
due to a recent security vulnerability for multiple TensorFlow versions, Watson Machine Learning (WML) will deprecate unsecure TensorFlow versions, including 1.13 and 1.14.
TensorFlow 1.14はセキュリティの脆弱性が有り、Watson MLでのサポートは廃止だということです。で、どうすれば良いかというと・・・
You have the following upgrade options:
TensorFlow 1.15
Keras 2.2.5 with TensorFlow 1.15 backend
TensorFlow 1.15でモデルを作るか、TensorFlow 1.1.5をバックエンドにしたKeras 2.2.5でモデルを作って、それをデプロイするしかなさそうです。
また、調べてみると、IBM Cloudから、このような資料がありました。
Keras
Keras 2.2.5 with TensorFlow 1.15 in an Anaconda 2019.03 environment
Deployment: online and batch only.
Core ML
Only JSON content is supported as the payload for scoring.
tf.estimator is not supported.
User-defined layers with trainable weights are not supported. However, stateless custom operations defined using layers.core.Lambda layers are supported with online deployment.
Online deployment uses Python 3.6.
やはりKeras 2.2.5とTensorFlow 1.15は必須のようです。
他にもいろいろ書いてあるのですが、実際にモデルを作り直して、デプロイを試しつつ、動作を確認していこうと思います。