--- language: en tags: - feature-extraction - onnx - use - text-embedding - tensorflow-hub license: apache-2.0 inference: false widget: - text: Thank goodness ONNX is available, it is lots faster! --- ### Universal Sentence Encoder Large v5 ONNX version of [https://tfhub.dev/google/universal-sentence-encoder-large/5](https://tfhub.dev/google/universal-sentence-encoder-large/5) The original TFHub version of the model is referenced in other models here E.g. [https://huggingface.co/vprelovac/universal-sentence-encoder-large-5](https://huggingface.co/vprelovac/universal-sentence-encoder-large-5) ### Overview See overview and license details at [https://tfhub.dev/google/universal-sentence-encoder-large/5](https://tfhub.dev/google/universal-sentence-encoder-large/5) This model is a full precision version of the TFHub original, in ONNX format. It uses the [ONNXRuntime Extensions](https://github.com/microsoft/onnxruntime-extensions) to embed the tokenizer within the ONNX model, so no seperate tokenizer is needed, and text is fed directly into the ONNX model. Post-processing (E.g. pooling, normalization) is also implemented within the ONNX model, so no separate processing is necessary. ### How to use ```python import onnxruntime as ort from onnxruntime_extensions import get_library_path from os import cpu_count sentences = ["hello world"] def load_onnx_model(model_filepath): _options = ort.SessionOptions() _options.inter_op_num_threads, _options.intra_op_num_threads = cpu_count(), cpu_count() _options.register_custom_ops_library(get_library_path()) _providers = ["CPUExecutionProvider"] # could use ort.get_available_providers() return ort.InferenceSession(path_or_bytes=model_filepath, sess_options=_options, providers=_providers) model = load_onnx_model("filepath_for_model_dot_onnx") model_outputs = model.run(output_names=["outputs"], input_feed={"inputs": sentences})[0] print(model_outputs) ```