Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonとTensorFlowで2つの行列を乗算する方法を解説

TensorFlowは、Googleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムやディープラーニングアプリケーションなどを実装するために利用されています。研究用途から本番運用まで幅広く使われており、複雑な数学的演算を高速に処理できる最適化技術を備えているのが特長です。

その理由の一つは、NumPyと多次元配列を基盤としている点にあります。この多次元配列は「テンソル」と呼ばれます。TensorFlowは深層ニューラルネットワークの構築をサポートし、高いスケーラビリティを持ち、人気のデータセットが多数付属しています。また、GPUによる計算に対応し、リソース管理を自動化します。豊富な機械学習ライブラリが用意され、ドキュメントも充実しているため、深層ニューラルネットワークモデルの構築・学習から、データセットの特性を予測するアプリケーションの作成まで柔軟に行えます。

TensorFlowのインストール方法

Windows環境では、次のコマンドを実行して「tensorflow」パッケージをインストールできます。

pip install tensorflow

テンソルはTensorFlowにおける基本的なデータ構造で、「データフローグラフ」と呼ばれるフロー図のエッジ(辺)をつなぐ役割を担います。テンソルの中身は、多次元配列あるいはリストそのものです。

本記事ではJupyter Notebookを使用してコードを実行します。Jupyter Notebookへのインストールも、同様に「pip install tensorflow」コマンドで行えます。

PythonとTensorFlowで2つの行列を乗算する方法を解説

サンプルコード

以下は、NumPyで作成した2つの行列をTensorFlowで乗算する例です。

import tensorflow as tf
import numpy as np

matrix_1 = np.array([(1,2,3),(3,2,1),(1,1,1)],dtype='int32')
matrix_2 = np.array([(0,0,0),(-1,0,1),(3,3,4)],dtype='int32')
print('最初の行列は')
print(matrix_1)
print('2番目の行列は')
print(matrix_2)
print('積は')
matrix_1 = tf.constant(matrix_1)
matrix_2 = tf.constant(matrix_2)
matrix_prod = tf.matmul(matrix_1, matrix_2)
print(matrix_prod)

実行結果

最初の行列は
[[1 2 3]
[3 2 1]
[1 1 1]]
2番目の行列は
[[ 0 0 0]
[-1 0 1]
[ 3 3 4]]
積は
tf.Tensor(
[[ 7 9 14]
[ 1 3 6]
[ 2 3 5]], shape=(3, 3), dtype=int32)

コードの解説

  • 必要なパッケージをインポートし、扱いやすいようにエイリアス(別名)を付けます。

  • NumPyパッケージを使って2つの行列を作成します。

  • 作成したNumPy配列を、TensorFlowの定数(tf.constant)に変換します。

  • TensorFlowの「matmul」関数を使って、行列同士の乗算を行います。

  • 計算結果である積をコンソールに出力します。

なお、行列の積ではなく各要素同士を掛け合わせたい場合は、「tf.multiply」関数を使用します。目的に応じて両者を使い分けることが重要です。

  1. PythonとTensorFlowを使って2つの行列を加算する方法

    TensorFlowは、Googleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムやディープラーニングアプリケーションなどを実装するために広く利用されています。研究用途から本番環境まで幅広い場面で活用されており、複雑な数値計算を高速に実行するための最適化技術が多数搭載されています。この高い処理性能は、NumPyおよび多次元配列の仕組みによって支えられています。これらの多次元配列は「テンソル(tensor)」と呼ばれます。TensorFlowは深層ニューラルネットワークの構築を強力にサポートしており、高い拡張性を持つほか、代表的な

  2. Kerasを使ってPythonでモデルをプロットする方法をわかりやすく解説

    TensorFlowとはTensorFlowは、Googleが提供している機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて使用することで、アルゴリズムの実装やディープラーニングアプリケーションの開発など、幅広い用途に活用できます。研究目的から本番環境での運用まで対応しており、複雑な数値計算を高速に実行するための最適化技術が数多く組み込まれています。TensorFlowにおける「テンソル(Tensor)」は、データを扱うための基本的なデータ構造です。テンソルは多次元配列(またはリスト)であり、データフローグラフと呼ばれる計算グラフのノード同士をエッジでつ