-- Views
October 31, 26
スライド概要
本参考資料は、Pythonのオブジェクト指向における『インスタンス』の概念と、Keras 3の Input 関数における『Kerasテンソルのインスタンス化』の意味を解説したスライドです。
Pythonでは、数値やリストなどの各データに一意のIDが付与された実体をインスタンスと呼び、変数はその所在地情報(参照)を保持します。値が等しい『同値(==)』と、IDが等しい『同一(is)』は明確に区別されます。
この概念を踏まえ、Kerasでの『インスタンス化』とは、モデル構築時に『データの通り道(空の配管)』をメモリ上に作ることであると説明しています。実際の学習データ(水)を流し込む前に、keras.Input() によってまずデータの通り道(Kerasテンソル)を準備しておく仕組みを水道管の配管工事に例えて提示しています。
すべてのビジネスパーソンが意思決定プロセスにデータを活用する思考を身につけるため、まずは、データサイエンスの分析を体験していきましょう。SECIモデルの最初の段階、共同化(Socialization)からはじめていきます。 下記のブログで、ここにアップしたスライド、動画を随時、公開中です。 【ブログ】https://tutorial4datascience.blogspot.com/ 【Youtubeチャンネル】https://www.youtube.com/@DataScience_for_everyone 【Kindle】そして、このブログをまとめて書籍にしました! https://amzn.to/4ryVppn https://amzn.to/4pGgFb1
5th STEP ディープラーニング Section 6 【参考】インスタンス データサイエンス チュートリアル 1
【参考】 インスタンス(1) Keras3の公式APIドキュメントには、Input関数について、次のように記載されています。 https://keras.io/api/layers /core_layers/input/ Kerasテンソルをインスタンス化するために使用されます。 Kerasテンソルは、テンソルに似たシンボリックなオブジェクトです。これには特定の属性が追加されており、モデルの入出力 さえ分かればKerasモデルを構築できるようになっています。 例えば、a、b、cがKerasテンソルである場合、『model = Model(input=[a, b], output=c)』といった記述が可能 になります。 Pythonはオブジェクト指向言語ですが、オブジェクト指向を理解する上で重要な『インスタンス』について理解を深めていきま しょう。 データサイエンス チュートリアル 2
【参考】 インスタンス(2) Pythonでは、文字列や数値等のデータ、機械学習の際のデータの一つ一つに、重複しないID(識別番号)がつけられて います。 IDをつけて管理されるデータの一つ一つをインスタンスと言います。 インスタンスが持つ値を出力するためにはprint関数を使ってきましたが、インスタンスのIDを出力するためには、id関数を使用 します。具体的にコードを書いて、違いを見てみましょう。 ① ② ③ ①②を見ると、aとbの値も、IDも異なっています。 ③を見ると、aとcは値も、IDも同じものです。 【出典】 Python ゼロからはじめるプログラミング データサイエンス チュートリアル 3
【参考】 インスタンス(3) リストの例を見てみましょう。 値が等しいかどうかを見るためには『==』、インスタンスのIDが等しいかどうかを見るためには『is演算子』が使われます。 ④ ⑤ ④を見ると、pとqの値も、IDも異なっています。 ⑤を見ると、pとrの値は同じですが、IDは異なっています。 変数の値が同じことを『同値』であると言い、IDが同じことを『同一』であると言います。 【出典】 Python ゼロからはじめるプログラミング データサイエンス チュートリアル 4
【参考】 インスタンス(4) このように、Pythonでは、数値一つ一つがインスタンスであって、変数はインスタンスの所在地情報を持っているに過ぎない ことを理解しておきましょう。 さて、前述の『Kerasテンソルをインスタンス化』するとは、 『Kerasのモデルの中でデータを流すためのデータの通り道をメモ リ上に新しく作成すること』を意味します。 水道の配管工事に例えると、下記のようになります。 本物の数値データ: パイプの中を流れる「水」 Kerasテンソル(keras.Input の戻り値): 水を通すための「透明なプラスチックのパイプ」 1.家を建てるとき(モデル構築時)、いきなり水を流すことはできません。まず「空のパイプ(Kerasテンソル)」を 繋ぎ合わせて配管ルートを作ります。これが keras.Input() によるインスタンス化です。 2.配管がすべて組み上がったら、model.fit() を呼び出すことで、初めて「水(本物の画像データ)」を一気に流し 込みます。 次のSectionでは、水を一気に流し込む操作『model.fit()』について体験していきます。 データサイエンス チュートリアル 5