如何解决从GCS在Tensorflow TPU中加载tfdev.hub模型
我正在使用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进行了某种锁定,因此只有一个会话可以编辑或修改缓存文件,但在完成其操作中心后,KerasLayer不会删除导致不活动的锁。
解决方法
这可能是由于通过运行colab的计算机将文件从GCS复制到GCS的延迟所致。
有一种方法可以为TFHUB_CACHE_DIR使用默认的/ tmp位置,这可能会更快。尝试不显式设置TFHUB_CACHED_DIR,而是将LoadOptions传递给带有实验性io_device ='/ job:localhost'的hub.KerasLayer,例如
load_options = tf.saved_model.LoadOptions(experimental_io_device ='/ job:localhost') layer = hub.KerasLayer(...,load_options = load_options)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。