pytorchでtorch.tensor()とtorch.Tensor()を区別する

torch.tensor()

  • torch.tensor()は単なるPython関数です:https ://pytorch.org/docs/stable/torch.html#torch.tensor 、データのデータ型をテンソルに変換します :
    • データ:(データには、リスト、タプル、NumPy ndarray、スカラー、その他のタイプがあります。)
    • dtype:パラメーターdtypeを使用して、テンソルのデータ型を指定できます。
    • require_grad:パラメーターrequires_gradを使用して、テンソルが勾配を計算する必要があるかどうかを指定します。深いネットワークが最適化されると、勾配が計算されるテンソルのみが勾配の大きさに応じて更新できます。
torch.tensor(data, dtype=None, device=None, requires_grad=False)
  • torch.tensorは、データ内のデータ部分を(直接参照するのではなく)コピーし、元のデータ型に従って、対応する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'
  • テンソルの寸法は.shape()で表示できます。テンソルの形状サイズは、.size()メソッドを使用して計算できます。テンソルに含まれる要素の数は、.numel(  )メソッドを使用して計算できます。

torch.Tensor()

  • torch.Tensor()はPythonクラスであり、より具体的には、デフォルトのテンソル型torch.FloatTensor()のエイリアスです
  • 特定の次元のテンソルは、形状パラメーターに基づいて生成できます
a = torch.Tensor(2,3)
print(a, a.type())
# tensor([[1.3563e-19, 1.7753e+28, 1.3458e-14],
#         [2.3335e-09, 2.3301e-09, 2.3301e-09]]) torch.FloatTensor

b = torch.FloatTensor(2,3)
print(b, b.type())
# tensor([[-4.0056e+18,  4.5737e-41, -4.0056e+18],
#         [ 4.5737e-41,  0.0000e+00,  0.0000e+00]]) torch.FloatTensor
  • テンソルは、他の形式のデータをテンソルの形式に変換するtorch.tensor()と同様に、指定されたデータに従って生成できます。違いは、単精度浮動小数点型のテンソルが生成されることです。
a = torch.tensor([2,3])
print(a, a.type())
# tensor([2, 3]) torch.LongTensor

b = torch.Tensor([2,3])
print(b, b.type())
# tensor([2., 3.]) torch.FloatTensor

c = torch.FloatTensor([2,3])
print(c, c.type())
# tensor([2., 3.]) torch.FloatTensor

部分参照:https ://www.jianshu.com/p/d83149dcdd79

おすすめ

転載: blog.csdn.net/m0_46483236/article/details/124018963