リストからのテンソルの生成
ここではリストや配列などのオブジェクトから生成する方法を学ぶ。
1次元のテンソル
code:tensor_list1.py
import torch as pt
print('1次元のテンソルの例')
x = pt.tensor(data) # リストからtensor型の変数xを生成
print('# tensor型')
print(x.shape) # 形状
print(type(x)) # 型の確認
print(x) # 値
2次元のテンソル
code:tensor_list2.py
import torch as pt
print('2次元のテンソルの例')
x = pt.tensor(1, 4, 2], [6, 3, 5)
print('型 :', type(x))
print('値 :', x)
print('形状:', x.shape)
shape属性【torch】で返される形状についての情報はtorch.Size型というクラス型をもつ。これはタプルのように添字を使って各軸についてのサイズを取り出すことができる。
code:(続き).py
a = x.shape
生成時に要素のデータ型を指定するには、引数dtypeを利用する。
code:tensor_list3.py
import torch as pt
x = pt.tensor(1, 4, 2], [6, 3, 5, dtype=pt.int)
y = pt.tensor(1, 4, 2], [6, 3, 5, dtype=pt.float)
print('x ----------------')
print(type(x))
print(x)
print('y ----------------')
print(type(y))
print(y)
code:(結果).py
x ----------------
<class 'torch.Tensor'>
y ----------------
<class 'torch.Tensor'>
print関数を用いた場合、int型の場合はtorch.int32と表示されるが、float型の場合は特に型名が表示されていない。値に後置される小数点「.」で、これらがfloat型であることを示している。
注意:上で用いたtorch.float型は32ビットの浮動小数点数である。より高精度なtorch.float64型も提供されているが、後で利用する様々なニューラルネットを実現するための関数群はこの型に対応していないため、32ビットの方を利用すること。