前提・実現したいこと
やりたいこと=チャット上に入力された不特定の言語を、あらかじめ設定した特定の言語に、遅延なし制限なしで変換する。
ブラウザ上で翻訳する手段を考えています。
対象は多言語が書き込まれるチャットのようなもので、
書き込まれた文をクライアントで設定した言語に変換する想定です。
イメージとしてはGoogle翻訳のように、入力された言語の判別は自動でやってくれるのが望ましいです。
WEBAPIでの実装は速度問題とアクセスの頻度から不可です。
現在考えている手段としては、ブラウザ上でTensorflow.jsを使用して、別途Deeplearningで学習したモデルをとりこめば可能だろうと思っていますが、
配布されているモデルはどれもPython環境で作成されたもので、直接は使用できません。
JSONに変換するためにtensorflowjs converterを使用するも、エラーが発生してうまく変換できません。
import tensorflowjs as tfjs module_url = 'https://tfhub.dev/google/universal-sentence-encoder-multilingual/3' model = hub.load(module_url) tfjs.converters.save_keras_model(model, 'tfjs', quantization_dtype_map=np.uint8) 338 """ 339 temp_h5_path = tempfile.mktemp() + '.h5' --> 340 model.save(temp_h5_path) 341 topology_json, weight_groups = ( 342 h5_merged_saved_model_to_tfjs_format(temp_h5_path)) AttributeError: '_UserObject' object has no attribute 'save'
コマンドでの変換も、tensorflowjs converterの対応が追い付いていないらしく失敗しました。
!pip install tensorflowjs !tensorflowjs_converter --input_format tf_hub --signature_name serving_default 'https://tfhub.dev/google/LaBSE/1' ./my_tfjs_model Traceback (most recent call last): File "/usr/local/bin/tensorflowjs_converter", line 8, in <module> sys.exit(pip_main()) File "/usr/local/lib/python3.6/dist-packages/tensorflowjs/converters/converter.py", line 735, in pip_main main([' '.join(sys.argv[1:])]) File "/usr/local/lib/python3.6/dist-packages/tensorflowjs/converters/converter.py", line 739, in main convert(argv[0].split(' ')) File "/usr/local/lib/python3.6/dist-packages/tensorflowjs/converters/converter.py", line 692, in convert control_flow_v2=args.control_flow_v2) File "/usr/local/lib/python3.6/dist-packages/tensorflowjs/converters/tf_saved_model_conversion_v2.py", line 661, in convert_tf_hub_module control_flow_v2=control_flow_v2) File "/usr/local/lib/python3.6/dist-packages/tensorflowjs/converters/tf_saved_model_conversion_v2.py", line 494, in convert_tf_saved_model weight_shard_size_bytes=weight_shard_size_bytes) File "/usr/local/lib/python3.6/dist-packages/tensorflowjs/converters/tf_saved_model_conversion_v2.py", line 143, in optimize_graph ', '.join(unsupported)) ValueError: Unsupported Ops in the model before optimization StatefulPartitionedCall
調査したモデルは下記の2つ
https://tfhub.dev/google/LaBSE/1 https://tfhub.dev/google/universal-sentence-encoder-multilingual-large/3
解決したいこと
・tensorflowjsで利用可能なモデルの入手ができない。
・Deeplerningの知見がないのでそもそも実現可能なのかどうかがわからない。
・上記で実現不可能な場合、実現可能な方法が知りたい。
ご回答よろしくお願いします。