【问题标题】:loading tfdev.hub models in Tensorflow TPU from GCS从 GCS 加载 Tensorflow TPU 中的 tfdev.hub 模型
【发布时间】:2020-10-22 16:27:24
【问题描述】:

我正在使用 colab TPU 实例从 GCS 加载 tfhub.dev 模型

os.environ["TFHUB_CACHE_DIR"] = "gs://BUCKETNAME/model-cache-dir/"

with strategy.scope():
     layer = hub.KerasLayer("https://tfhub.dev/google/inaturalist/inception_v3/feature_vector/4",trainable=True)

但这需要很多时间,将近 15 分钟,最后我也会收到警告

WARNING:absl:Deleting lock file gs://BUCKETNAME/model-cache-dir/a6cc63f37ce9d4a026a90b8d56f20a387de46a3f.lock due to inactivity.

知道为什么

我的猜测tensorflow 有某种锁定,因此只有一个会话可以编辑或修改缓存文件,但在完成其操作 hub.KerasLayer 后不会删除导致不活动的锁。

【问题讨论】:

    标签: python tensorflow google-cloud-storage tpu tensorflow-hub


    【解决方案1】:

    这可能是由于通过运行 colab 的机器将文件从 GCS 复制到 GCS 的延迟。

    有一种方法可以更快地使用 TFHUB_CACHE_DIR 的默认 /tmp 位置。尝试不显式设置 TFHUB_CACHED_DIR,而是将 LoadOptions 传递给 hub.KerasLayer 并使用experimental_io_device='/job:localhost',例如

    load_options = tf.saved_model.LoadOptions(experimental_io_device='/job:localhost') 层 = hub.KerasLayer(..., load_options=load_options)

    【讨论】:

    • 谢谢,这绝对是更快更好的方法。
    猜你喜欢
    • 2021-02-07
    • 2020-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2021-03-08
    • 1970-01-01
    • 2017-03-29
    相关资源
    最近更新 更多