【Python初心者必見】テンソル代入とは?基礎からわかりやすく解説!🧠✨

ディープラーニングや機械学習に関心がある方なら、**「テンソル」**という言葉を聞いたことがあるかもしれません。

でも「テンソル代入って何?」と聞かれると、すぐに答えるのは難しいですよね。

この記事では、テンソル代入とは何か? どうやって使うのか?を初心者にもわかりやすく解説していきます。


✅ テンソルとは?

まず前提として、テンソル(Tensor)は、NumPyやPyTorch、TensorFlowなどで使われる多次元配列のことです。

  • スカラー(0次元):例 5

  • ベクトル(1次元):例 [1, 2, 3]

  • 行列(2次元):例 [[1, 2], [3, 4]]

  • テンソル(3次元以上):例 [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]

このように、テンソルは配列が階層的に深くなったものと考えるとイメージしやすいです。


🔁 テンソル代入とは?

テンソル代入とは、既存のテンソルの一部または全部に対して、新しい値を設定する操作のことです。

Pythonでは、NumPyやPyTorchなどのライブラリを使って、テンソル代入を簡単に行うことができます。


🧪 具体例:NumPyでのテンソル代入

import numpy as np

# 2x3のテンソルを作成
tensor = np.array([[1, 2, 3],
                   [4, 5, 6]])

# 要素を変更(テンソル代入)
tensor[0, 1] = 99  # 1行2列目の値を99に変更

print(tensor)

出力:

[[ 1 99  3]
 [ 4  5  6]]

このように、インデックスを指定してピンポイントで要素を書き換えるのがテンソル代入です。


🔄 部分的なテンソル代入もOK!

tensor[:, 1] = [10, 20]  # すべての行の2列目を変更

このコードでは、スライス記法を使って、1列目のすべての行を新しい値に入れ替えています。

このように、テンソルの特定の範囲を一括で更新できるのもテンソル代入の便利なところです。


💡 PyTorchでのテンソル代入

PyTorchでも同様の操作が可能です。

import torch

# テンソルの作成
x = torch.tensor([[1, 2], [3, 4]])

# 代入
x[0][1] = 100

print(x)

PyTorchでは、GPU上で高速にテンソル計算ができるので、ディープラーニングで頻繁に使われます。


🛑 テンソル代入時の注意点

  1. 型の一致:代入する値の型がテンソルと異なるとエラーになります。

  2. サイズの一致:スライスで代入する場合、形状(shape)が一致していないと代入できません。

  3. in-place処理に注意:PyTorchなどでは、in-place操作(元のテンソルを書き換える処理)は勾配計算に影響することがあります。


🎯 まとめ

  • テンソル代入とは、テンソルの一部または全部に値を再設定すること

  • NumPyやPyTorchを使えば、簡単にテンソルの特定の要素を変更できる

  • 代入時には型や形状に注意

テンソル代入は、データの前処理やモデルのチューニング時に非常に重要な操作です。

これを理解すれば、機械学習のコードがグッと読みやすくなりますよ!😊🔥


次回は「テンソルのブロードキャスト」について、さらに深掘りしていきます!お楽しみに✨