17
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ディープラーニングにおけるテンソルの基礎

Last updated at Posted at 2024-09-21

はじめに

こんにちは!ディープラーニングの世界に飛び込んだばかりのあなたにとって、テンソルは非常に重要な概念です。今回は、テンソルが何なのか、どのように使われるのかをわかりやすく解説します。

1. テンソルとは?

テンソルとは、数値データを持つ多次元の配列です。ちょっと難しく聞こえるかもしれませんが、要はデータの集合体です。スカラー(0次元)、ベクトル(1次元)、行列(2次元)、さらにそれ以上の次元を持つ配列をまとめたものです。

  • スカラー(0次元テンソル): ただの数字、例えば $5$。
  • ベクトル(1次元テンソル): 数のリスト、例えば $[1, 2, 3]$。
  • 行列(2次元テンソル): いわゆるただの行列です。
  • 高次元テンソル: 3次元テンソルは、例えば画像データのように、色々な情報を持つことができます。

2. テンソルの種類

テンソルはデータの種類によっていくつかのタイプに分けられます。

  • 整数テンソル: 整数を含むテンソル。
  • 浮動小数点テンソル: 小数を含むテンソル。
  • ブールテンソル: 真偽値(True/False)を含むテンソル。

3. テンソルの操作

テンソル同士は、色々な計算ができます。例えば:

  • 加算: 二つのテンソルを足し算できます。
  • 乗算: 二つのテンソルをかけ算できます。
  • 転置: 行列をひっくり返すことができます。

Pythonでのテンソル操作の例

実際にPyTorchを使ってみましょう。以下は簡単なコードです。

import torch

# テンソルの作成
tensor_a = torch.tensor([[1, 2], [3, 4]])
tensor_b = torch.tensor([[5, 6], [7, 8]])

# テンソルの加算
tensor_sum = tensor_a + tensor_b

# テンソルの乗算
tensor_product = tensor_a * tensor_b

# 転置
tensor_transpose = tensor_a.T

print("加算結果:\n", tensor_sum)
print("乗算結果:\n", tensor_product)
print("転置結果:\n", tensor_transpose)

4. ディープラーニングにおけるテンソルの使用例

ディープラーニングのモデルは、データをテンソルとして受け取ります。例えば、画像データは通常、4次元テンソルとして扱われます。

  • 画像データ: バッチサイズ × チャンネル数 × 高さ × 幅 で表現されます。
  • テキストデータ: 単語の埋め込みとして、2次元テンソルで表現されることがあります。

以下は、画像データのテンソルを生成する例です。

# 32枚の画像、3チャンネル、64x64ピクセルのバッチを作成
batch_size = 32
channels = 3
height = 64
width = 64

images = torch.randn(batch_size, channels, height, width)
print("画像データのテンソル形状:", images.shape)

5. まとめ

テンソルは、ディープラーニングの心臓部ともいえる存在です。スカラー、ベクトル、行列、高次元テンソルの理解は、モデルの設計や実装において非常に重要です。

さらに気になる方はこちらへ

17
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?