【Pytorch】Tensorとtensorの違い

8218 ワード

Tensorとtensorの違い
  • 参考ブログ
  • PyTorchでは、Tensorとtensorは、新しいテンソルを生成するために使用できます.
    >>> a=torch.Tensor([1,2])
    >>> a
    tensor([1., 2.])
    >>> a=torch.tensor([1,2])
    >>> a
    tensor([1, 2])
    

    まず明確にする必要がありますTensor()はpythonクラス、より明確にはデフォルトテンソルタイプtorchである.FloatTensor()の別名、torch.Tensor([1,2])はTensorクラスのコンストラクション関数__を呼び出します.init__,単一精度浮動小数点タイプのテンソルを生成します.
    >>> a=torch.Tensor([1,2])
    >>> a.type()
    'torch.FloatTensor'
    

    それでtensor()はpython関数のみです.https://pytorch.org/docs/stable/torch.html#torch.tensor、関数のプロトタイプは次のとおりです.
    torch.tensor(data, dtype=None, device=None, requires_grad=False)
    

    ここでdataは、list、tuple、NumPy ndarray、scalar、その他のタイプであってもよい.torch.tensorは、直接参照ではなくdataのデータ部分からコピーし、元のデータ型に基づいて対応するtorchを生成する.LongTensor、torch.FloatTensorとtorch.DoubleTensor.
    >>> a=torch.tensor([1,2])
    >>> a.type()
    'torch.LongTensor'
    
    >>> a=torch.tensor([1.,2.])
    >>> a.type()
    'torch.FloatTensor'
    
    >>> a=np.zeros(2,dtype=np.float64)
    >>> a=torch.tensor(a)
    >>> a.type()
    'torch.DoubleTensor'
    

    ここでもう一度Empty()は、https://pytorch.org/docs/stable/torch.html?highlight=empty#torch.emptytorchのため、指定タイプ、指定デバイス、その他のパラメータのテンソルを生成することができる.Tensor()はtorchとしてのみデータ型を指定できる.だからTensor()はtorchと見なすことができる.Empty()の特殊な状況.
    >>> a=torch.tensor(1)
    >>> a
    tensor(1)
    >>> a.type()
    'torch.LongTensor'
    >>> a=torch.Tensor(1)
    >>> a
    tensor([0.])
    >>> a.type()
    'torch.FloatTensor'
    

    ブログ参照
    【PyTorch】Tensorとtensorの違い