python 中torch.Tensor与torch.tensor使用注意事项
在使用python的pickle.dump保存对象时,该对象并不大,却让C盘爆满,磁盘开始执行大量的写操作,内存也一度爆满。
原本以为是pickle的问题,可能对list对象的数量有所要求,结果并不是。
原因是list对象存储int64的ndarray数据时,使用了torch.Tensor。本以为是创建了包含一位数据的tensor,结果创建了包含该整数大小的tensor,自然会将存储占满。
对于torch.tensor来讲,
torch.tensor(data, dtype=None, device=None, requires_grad=False, pin_memory=False)
data数据类型可以是列表list、元组tuple、numpy数组ndarray、纯量scalar(又叫标量)和其他的一些数据类型。
因此tensor是可以输入数据来构造tensor的,tensor会复制一份原数据,参与新的数据构造。
而torch.Tensor 则是略有不同,输入int数据直接当做形状了。如下所示。

然而你要是输入list对象,就可以给弄好了。

浙公网安备 33010602011771号