1. torch.FloatTensor 与 torch.Tensor —(类, 深拷贝)
https://pytorch.org/docs/stable/tensors.html#torch.Tensor
其实这两个是一个东西,
其实这两个是一个东西,都是用来创建一个float32 的Tensor 对象。输入可以是list,tuple,numpy等。注意他们是深copying
2. torch.Tensor —(类,深copying), torch.tensor —(函数,深copying)->Tensor
https://pytorch.org/docs/stable/generated/torch.tensor.html#torch.tensor
前面已经介绍过了,torch.Tensor是一个类用于创建float32 的Tensor 对象。而torch.tensor是一个函数,函数返回的是torch.Tensor这个类型对象,数据类型可通过dtype参数指定,包括device。注意torch.tensor也是深copy。
3. torch.as_tensor —(函数,浅copying)->Tensor, torch.from_numpy —(函数,浅copying)->Tensor
torch.as_tensor:
https://pytorch.org/docs/stable/generated/torch.as_tensor.html
torch.from_numpy:
https://pytorch.org/docs/stable/generated/torch.from_numpy.html#torch.from_numpy
与前面不同的是,torch.as_tensor 和 torch.from_numpy都是浅copying,他们也是返回一个torch.Tensor对象。torch.from_numpy 只是torch.as_tensor(numpy,dtype=None,device=None)的一个特例。也就是说torch.from_numpy数据类型只能和原data的数据类型保持一致,因为没有dtype参数给他修改,而且返回的一定是cpu Tensor,因为GPU上没有numpy。
4. 总结
torch.FloatTensor: 类, 深copy。可更改类型,device
torch.Tensor: 同torch.FloatTensor
torch.tensor: 函数,深copy。可更改类型,device
torch.as_tensor: 函数,浅copy。不可更改类型,device
torch.from_numpy: 函数,浅copy。不可更改类型,device
共同点:最终都创建一个torch.Tensor对象