「NumPyのドット積のデコード:次元の魔術についての簡単な探求」

Decoding NumPy's dot product An exploration of dimension magic

NumPyのドット積についての混乱を一度解消する

「コードの魔術師がいっぱいのカオスで暗く陰鬱な多次元世界」というプロンプトで生成された画像

はじめに

NumPyで次元に関する取り扱いについて混乱することは私だけではないのでしょうか?今日、Gradioのドキュメンテーションページを読んでいたら、以下のコードスニペットがありました:

sepia_filter = np.array([    [0.393, 0.769, 0.189],     [0.349, 0.686, 0.168],    [0.272, 0.534, 0.131],])# input_imgの形状は (H, W, 3)# sepia_filterの形状は (3, 3)sepia_img = input_img.dot(sepia_filter.T)  # <- なぜこれが有効なのか??sepia_img /= sepia_img.max()

おいおいおい!なぜ画像(W, H, 3)とフィルター(3, 3)のドット積が有効なのですか?ChatGPTに説明してもらおうとしたら、間違った答え(これは動作しないと言っているなど)を出したり、私の質問を無視して他のことに答え始めたりしました。仕方がないので、頭を使うしかありませんでした(ドキュメンテーションを読むこともね)。

上記のコードに少し混乱している方は、読み続けてください。

ドット積:一般的な例

NumPyのドット積のドキュメンテーションから(若干の修正を加えて):

もし、a.shape = (I, J, C) かつ b.shape = (K, C, L) の場合、dot(a, b)[i, j, k, l] = sum(a[i, j, :] * b[k, :, l]) です。注意すべきは、「a」の最後の次元は「b」の最後から2番目の次元と等しいということです。

または、コードで表すと:

I, J, K, L, C = 10, 20, 30, 40, 50a = np.random.random((I, J, C))b = np.random.random((K, C, L))c = a.dot(b)i, j, k, l = 3, 2, 4, 5print(c[i, j, k, l])print(sum(a[i, j, :] * b[k, :, l]))

出力結果(同じ結果):

13.12501290128471313.125012901284713

NumPyのドット積の形状を理解する

事前にドット積の形状を決定するために、以下の手順に従ってください:

ステップ1:2つの配列「a」と「b」を考えます。それぞれの形状を確認します。

# 配列aとbの例の形状a_shape = (4, 3, 2)b_shape = (3, 2, 5)# 指定された形状でランダムな配列を作成a = np.random.random(a_shape)b =…

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

機械学習

「Prolificの機械学習エンジニア兼AIコンサルタント、ノラ・ペトロヴァ – インタビューシリーズ」

『Nora Petrovaは、Prolificの機械学習エンジニア兼AIコンサルタントですProlificは2014年に設立され、既にGoogle、スタンフ...

人工知能

「クリス・サレンス氏、CentralReachのCEO - インタビューシリーズ」

クリス・サレンズはCentralReachの最高経営責任者であり、同社を率いて、自閉症や関連する障害を持つ人々のために優れたクラ...

AIニュース

Q&A:ブラジルの政治、アマゾンの人権、AIについてのGabriela Sá Pessoaの見解

ブラジルの社会正義のジャーナリストは、MIT国際研究センターのフェローです

人工知能

「Kognitosの創設者兼CEO、ビニー・ギル- インタビューシリーズ」

ビニー・ギルは、複数の役職と企業を横断する多様で幅広い業務経験を持っていますビニーは現在、Kognitosの創設者兼CEOであり...

人工知能

アーティスの創設者兼CEO、ウィリアム・ウーによるインタビューシリーズ

ウィリアム・ウーは、Artisseの創設者兼CEOであり、ユーザーの好みに基づいて写真を精密に変更する技術を提供していますそれ...

人工知能

キャルレールの最高製品責任者、ライアン・ジョンソンへのインタビューシリーズ

ライアンは、初期のスタートアップからフォーチュン100の組織まで、多様なテクノロジーと製品開発のリーダーシップ経験を15年...