mindspore.dataset.DatasetCache

class mindspore.dataset.DatasetCache(session_id, size=0, spilling=False, hostname=None, port=None, num_connections=None, prefetch_size=None)[源代码]

创建数据缓存客户端实例。

关于单节点数据缓存的使用,请参阅 单节点数据缓存教程

参数:
  • session_id (int) - 当前数据缓存客户端的会话ID,用户在命令行开启缓存服务端后可通过 cache_admin -g 获取。

  • size (int, 可选) - 设置数据缓存服务可用的内存大小。默认值: 0 ,表示内存使用没有限制。

  • spilling (bool, 可选) - 如果共享内存不足,是否将溢出部分缓存到磁盘。默认值: False

  • hostname (str, 可选) - 数据缓存服务客户端的主机IP。默认值: None ,表示使用默认主机IP 127.0.0.1。

  • port (int, 可选) - 指定连接到数据缓存服务端的端口号。默认值: None ,表示端口为50052。

  • num_connections (int, 可选) - TCP/IP连接数量。默认值: None ,表示连接数量为12。

  • prefetch_size (int, 可选) - 指定缓存队列大小,使用缓存功能时,将直接从缓存队列中获取数据。默认值: None ,表示缓存队列大小为20。

样例:

>>> import subprocess
>>> import mindspore.dataset as ds
>>>
>>> # Create a cache instance with command line `cache_admin --start` and create a session with `cache_admin -g`
>>> # After creating cache with a valid session, get session id with command `cache_admin --list_sessions`
>>> command = "cache_admin --list_sessions | tail -1 | awk -F ' ' '{{print $1;}}'"
>>> session_id = subprocess.getoutput(command).split('\n')[-1]
>>> some_cache = ds.DatasetCache(session_id=int(session_id), size=0)
>>>
>>> dataset_dir = "/path/to/image_folder_dataset_directory"
>>> dataset = ds.ImageFolderDataset(dataset_dir, cache=some_cache)
get_stat()[源代码]

获取缓存实例的统计信息。在数据管道结束后,可获取三类统计信息,包括平均缓存命中数(avg_cache_sz),内存中的缓存数(num_mem_cached)和磁盘中的缓存数(num_disk_cached)。

样例:

>>> import os
>>> import subprocess
>>> import mindspore.dataset as ds
>>>
>>> # In example above, we created cache with a valid session id
>>> command = "cache_admin --list_sessions | tail -1 | awk -F ' ' '{{print $1;}}'"
>>> id = subprocess.getoutput(command).split('\n')[-1]
>>> some_cache = ds.DatasetCache(session_id=int(id), size=0)
>>>
>>> # run the dataset pipeline to trigger cache
>>> dataset = ds.ImageFolderDataset("/path/to/image_folder_dataset_directory", cache=some_cache)
>>> data = list(dataset)
>>>
>>> # get status of cache
>>> stat = some_cache.get_stat()
>>> # Average cache size
>>> cache_sz = stat.avg_cache_sz
>>> # Number of rows cached in memory
>>> num_mem_cached = stat.num_mem_cached
>>> # Number of rows spilled to disk
>>> num_disk_cached = stat.num_disk_cached