从磁盘加载Tensorflow模型是即时的,而从gcs加载非常缓慢

2024-05-15 02:55:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用Tensorflow服务加载多个模型。如果我挂载一个包含模型的目录,加载所有内容都会在瞬间完成,而从gs://路径加载每个模型大约需要10秒

在研究这个问题时,我发现这可能是一个Tensorflow问题,而不是Tensorflow服务问题,因为在Tensorflow中加载它们也是一个巨大的区别:

[ins] In [22]: %timeit tf.saved_model.load('test/1')
3.88 s ± 719 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

[ins] In [23]: %timeit tf.saved_model.load('gs://path/to/test/1')
30.6 s ± 2.66 s per loop (mean ± std. dev. of 7 runs, 1 loop each)

然后可能是下载模型(非常小)很慢,但我也测试了这一点:

def test_load():
    bucket_name = 'path'
    folder='test'
    delimiter='/'
    file = 'to/test/1'

    bucket=storage.Client().get_bucket(bucket_name)
    blobs=bucket.list_blobs(prefix=file, delimiter=delimiter) # Excluding folder inside bucket
    for blob in blobs:
        print(blob.name)
        destination_uri = '{}/{}'.format(folder, blob.name)
        blob.download_to_filename(destination_uri)

[ins] In [31]: %timeit test_load()
541 ms ± 54.9 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

知道这里发生了什么吗


Tags: namein模型testloopbuckettensorflowload

热门问题