简单示例
这里是一个简单的示例,用于估算每批次样本所需的内存:
以下是一个简单的示例,展示了如何使用Python的 sys.getsizeof() 函数估算一个列表中元素的平均内存占用:
这行代码的作用是计算列表 sample_dataset 中所有元素的内存大小总和。
具体解释如下:
for sample in sample_dataset: 这部分是一个生成器表达式(generator expression),它会遍历 sample_dataset 中的每一个元素,并把元素依次赋值给 sample。
sys.getsizeof(sample): 对于每个 sample,这个函数会返回 sample 对象占用的内存大小(以字节为单位)。
sum(…): 这个函数会把生成器表达式中每次迭代返回的值(即每个 sample 的内存大小)相加起来,得到所有样本占用的总内存大小。
因此,整体来说,sum(sys.getsizeof(sample) for sample in sample_dataset) 的目的是计算 sample_dataset 中所有样本占用的总内存大小(单位是字节)。
要获取系统当前已经使用的GPU内存量,可以使用PyTorch提供的torch.cuda.memory_allocated()函数。这个函数返回当前分配的GPU内存量(以字节为单位),可以帮助你监测系统中正在使用的GPU内存。
例如,可以这样使用: