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对象,就可以给弄好了。

 

posted @ 2023-07-31 20:30  KIKIcoo  阅读(55)  评论(0)    收藏  举报