「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

AIニュース

OpenAIのCEOであるSam Altman氏:AIの力が証明されるにつれて、仕事に関するリスクが生じる

OpenAIのCEOであるSam Altmanは、特に彼の作品であるChatGPTに関するAIの潜在的な危険性について公言してきました。最近のイ...

人工知能

「シフトのCEOであるクリス・ナーゲル – インタビューシリーズ」

クリスはSiftの最高経営責任者です彼は、Ping Identityを含むベンチャー支援および公開SaaS企業のシニアリーダーシップポジシ...

人工知能

ピーター・マッキー、Sonarの開発者担当責任者-インタビューシリーズ

ピーター・マッキーはSonarのDeveloper Relationsの責任者です Sonarは、悪いコードの1兆ドルの課題を解決するプラットフォー...

人工知能

「ゲイリー・ヒュースティス、パワーハウスフォレンジクスのオーナー兼ディレクター- インタビューシリーズ」

ゲイリー・ヒュースティス氏は、パワーハウスフォレンジックスのオーナー兼ディレクターであり、ライセンスを持つ私立探偵、...

AIテクノロジー

アンソニー・グーネティレケ氏は、Amdocsのグループ社長であり、テクノロジー部門および戦略部門の責任者です- インタビューシリーズ

アンソニー・グーネティレーケは、Amdocsでグループ社長、テクノロジーと戦略担当です彼と企業戦略チームは、会社の戦略を策...

機械学習

「機械学習 vs AI vs ディープラーニング vs ニューラルネットワーク:違いは何ですか?」

テクノロジーの急速な進化は、ビジネスが効率化のために洗練されたアルゴリズムにますます頼ることで、私たちの日常生活を形...