2) TensorFlow Servingを使おう!
TensorFlowを使っている場合は、選択肢4を実現するプロダクトとしてTensorFlow Servingというものが利用できます。
TensorFlow Servingは、TensorFlowの学習済みモデルを配置するとそれを動かすサーバとして動作してくれる製品です。ちょうどWebアプリにおけるTomcatのようなものといえばイメージしやすいかもしれません。
以下はTensorFlow Servingを用いてWebアプリから学習済みモデルを利用する場合の概念図です。

まずPython環境で学習を行い、それをTensorFlowのSavedModelという形式で書き出します。
そしてSavedModelを書き出したディレクトリを読み込むように指定してTensorFlow Servingのサーバを起動します。
SavedModelに変更があれば自動的に追従するので、先に起動しておいてあとは起動しっぱなしでも最新の学習済みモデルが動作します。
アプリケーションからTensorFlow Servingの呼び出しにはgRPCを用います。gRPCはその名の通りGoogleが開発したRPCの仕組みで、PythonやJavaをはじめ9つの言語に対応しています。
このように、ディープラーニングを組む部分、学習済みモデルを動かす部分、そしてそれを呼び出す部分をきれいに分離することができ、言語環境の違いやサービスのライフサイクルの違いを吸収することができます。
※TensorFlow, the TensorFlow logo and any related marks are trademarks of Google Inc.
その他、本コンテンツ内で利用させて頂いた各プロダクト名やサービス名などは、各社もしくは各団体の商標または登録商標です。