如何离线加载 hub.KerasLayer?
How can I load the hub.KerasLayer offline?
我已经通过 tensorflow hub 构建了一个模型并保存了它。
但是当我加载它时,我必须添加custom_objects={'KerasLayer':hub.KerasLayer}
。
它将连接网络。
model = tf.keras.models.load_model('my_model.h5',custom_objects={'KerasLayer':hub.KerasLayer})
如何下载 hub.KerasLayer
并离线加载?
其中一些取决于您是否有正确保存的模型。在那种情况下你可以
import tensorflow as tf
import tensorflow_hub as hub
k_layer = hub.KerasLayer("some/file/path")
有关详细信息,请参阅 https://www.tensorflow.org/hub/tf2_saved_model。
您也可以使用 TFHUB_CACHE_DIR 自动执行此操作
import tensorflow_hub as hub
import os
os.environ["TFHUB_CACHE_DIR"] = "/tmp/model"
hub.KerasLayer("https://tfhub.dev/google/nnlm-id-dim50-with-normalization/2")
模型资产将下载到 /tmp/model/
以后对 hub.KerasLayer("https://tfhub.dev/google/nnlm-id-dim50-with-normalization/2")
的调用将使用本地副本
如果您有从 TFHub 页面下载的模型,
例如,
import tensorflow as tf
import tensorflow_hub as hub
model_path = "path/to/tfhubmodel/"
hub_layer = hub.KerasLayer(hub.load(model_path))
我已经通过 tensorflow hub 构建了一个模型并保存了它。
但是当我加载它时,我必须添加custom_objects={'KerasLayer':hub.KerasLayer}
。
它将连接网络。
model = tf.keras.models.load_model('my_model.h5',custom_objects={'KerasLayer':hub.KerasLayer})
如何下载 hub.KerasLayer
并离线加载?
其中一些取决于您是否有正确保存的模型。在那种情况下你可以
import tensorflow as tf
import tensorflow_hub as hub
k_layer = hub.KerasLayer("some/file/path")
有关详细信息,请参阅 https://www.tensorflow.org/hub/tf2_saved_model。
您也可以使用 TFHUB_CACHE_DIR 自动执行此操作
import tensorflow_hub as hub
import os
os.environ["TFHUB_CACHE_DIR"] = "/tmp/model"
hub.KerasLayer("https://tfhub.dev/google/nnlm-id-dim50-with-normalization/2")
模型资产将下载到 /tmp/model/
以后对 hub.KerasLayer("https://tfhub.dev/google/nnlm-id-dim50-with-normalization/2")
的调用将使用本地副本
如果您有从 TFHub 页面下载的模型,
例如,
import tensorflow as tf
import tensorflow_hub as hub
model_path = "path/to/tfhubmodel/"
hub_layer = hub.KerasLayer(hub.load(model_path))