tensorflow hub 如何load本地的模型,公网访问模型

这篇博客介绍了如何使用TensorFlow Hub加载和使用预训练的BERT模型,包括从远程URL和本地文件系统加载。提供了加载small_bert/bert_en_uncased_L-2_H-128_A-2/1的示例,并展示了使用hub.KerasLayer的代码。
部署运行你感兴趣的模型镜像

tensorflow 2.x     

以 small_bert/bert_en_uncased_L-2_H-128_A-2/1 为例,

https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-2_H-128_A-2/1

一是 可以转换为 指向模块压缩文件TGZ的URL。重点是,https://storage.googleapis.com可在公网访问。

https://storage.googleapis.com/tfhub-modules/tensorflow/small_bert/bert_en_uncased_L-2_H-128_A-2/1.tar.gz

二是 可以下载解压到本地文件系统(云端文件系统),直接加载

C:\bert\small_bert_bert_en_uncased_L-2_H-128_A-2_1

以下是工作代码

print("=========Load Remote hub model:hub.KerasLayer =============")
#tfhub_bert="https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-2_H-128_A-2/1"
#tfhub_bert="https://storage.googleapis.com/tfhub-modules/tensorflow/small_bert/bert_en_uncased_L-2_H-128_A-2/1.tar.gz"
#bert_layer    = hub.KerasLayer(tfhub_bert,trainable=False)
print("=========Load Remote hub model:hub.KerasLayer, success!=============")

print("=========Load local hub model:hub.KerasLayer =============")
model_dir="C:\\bert\\small_bert_bert_en_uncased_L-2_H-128_A-2_1\\"
bert_layer = hub.KerasLayer(model_dir,trainable=False)
print("=========Load local hub model:hub.KerasLayer, success!=============")

 

官方文档:

hub 加载函数

hub.load( handle, tags=None, options=None)

hub.resolve(handle)

hub.KerasLayer(

    handle, trainable=False, arguments=None, _sentinel=None, tags=None,

    signature=None, signature_outputs_as_dict=None, output_key=None,

    output_shape=None, load_options=None, **kwargs

)

hub 加载函数 支持的handle类型

1)托管的URL。 Smart URL resolvers such as tfhub.dev,  e.g.: https://tfhub.dev/google/nnlm-en-dim128/1.

2) 本地或云端文件系统目录。A directory on a file system supported by Tensorflow containing module files.

This may include a local directory (e.g. /usr/local/mymodule) or a Google Cloud Storage bucket (gs://mymodule).

3) URL指向TGZ模块压缩文件。A URL pointing to a TGZ archive of a module,  e.g. https://example.com/mymodule.tar.gz.

参考:https://www.tensorflow.org/hub/api_docs/python/hub

 

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

### 使用 TensorFlow Hub 下载模型的完整指南 TensorFlow Hub 提供了一个便捷的方式来下载和使用预训练模型,从而减少了开发者的工作量并加速了项目的开发进程。以下是完整的下载和使用教程。 #### 1. 安装必要库 在开始之前,确保已安装 `tensorflow` 和 `tensorflow-hub` 库。如果尚未安装,可以使用以下命令完成安装[^5]: ```bash pip install tensorflow tensorflow-hub ``` #### 2. 导入库 导入所需的库以准备加载模型: ```python import tensorflow as tf import tensorflow_hub as hub ``` #### 3. 加载模型 通过指定模型 URL 来加载模型。例如,要加载一个用于文本嵌入的 NNLM 模型,可以这样做[^3]: ```python model_url = "https://tfhub.dev/google/nnlm-en-dim128-with-normalization/2" embed = hub.KerasLayer(model_url, input_shape=[], dtype=tf.string) ``` 这里的关键部分是 `hub.KerasLayer()` 函数,它允许我们将 TensorFlow Hub 中的模块作为 Keras 层集成到我们的模型中[^4]。 #### 4. 测试模型 为了验证模型是否正确加载以及能否正常工作,可以通过传递一些测试数据给模型来进行预测。例如对于上面提到的文本嵌入模型,我们可以这样操作: ```python test_sentences = ["hello world", "this is a test"] embedded_test = embed(test_sentences) print(embedded_test.shape) # 输出应为 (2, 128),表示两个句子被映射到了 128 维向量空间 ``` 这段代码会输出每句话经过该模型转换后的特征向量维度大小,帮助确认模型行为符合预期。 #### 5. 缓存机制与离线使用 当第一次从 TensorFlow Hub 调用某款模型时,系统实际上是在背后完成了对该模型文件的实际下载动作,并将其存储在一个默认位置以便未来无需再次联网获取同样的内容。具体来说,默认情况下这些资源会被放置于用户家目录下的隐藏文件夹 `.cache/tensorflow_hub/` 当中[^3]。因此,在后续运行相同的脚本时只要网络连接良好就完全可以做到无缝切换至本地读取模式而不需要担心额外耗时等待远程服务器响应的问题发生。 另外值得注意的是,如果你计划长期频繁调用某些固定不变的大规模深度学习结构体(比如 BERT),那么提前手动将它们克隆下来放到合适的地方再调整配置指向新地址不失为一种优化策略。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值