from itertools import zip_longest
def broadcast_shape(a, b):
a, b = tuple(a), tuple(b)
if any(type(d) is not int or d < 0 for d in a + b):
raise ValueError("dimension.invalid")
result = []
for left, right in zip_longest(reversed(a), reversed(b), fillvalue=1):
if left == right or right == 1:
result.append(left)
elif left == 1:
result.append(right)
else:
raise ValueError("shape.incompatible")
return tuple(reversed(result))プロジェクト
スカラー形状と単一次元に隣接する空軸を試し、非互換、負数、小数の次元を拒否します。
適用前に確認
実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。
モデル
OpenAI互換またはAnthropicのエンドポイントを、ベースURLと必要なAPIキーで設定し、接続をテストします。ローカルのモデルサーバーは起動が必要です。リモートツールは別途データを送信する場合があります。
from itertools import zip_longest
def broadcast_shape(a, b):
a, b = tuple(a), tuple(b)
if any(type(d) is not int or d < 0 for d in a + b):
raise ValueError("dimension.invalid")
result = []
for left, right in zip_longest(reversed(a), reversed(b), fillvalue=1):
if left == right or right == 1:
result.append(left)
elif left == 1:
result.append(right)
else:
raise ValueError("shape.incompatible")
return tuple(reversed(result))数値計算プロジェクト全体で形状の前提を追う
ShapeEstuaryは、プロジェクトフォルダーとAI対話を結び付けたWindows環境を数値計算ソフトウェアの開発に提供します。失敗した操作や予期しない形状を返す操作から始めます。修正を求める前に、周囲の変換を調べ、その前提を説明するよう選んだモデルに依頼します。これにより、結果を実際に使う処理の流れに調査を結び付けられます。
たとえばbroadcast.pyを形状互換性レビューの基準にできます。有用な依頼は、入力の次元、期待する出力形状、互換性のない入力に必要な動作を示します。この例を完全な数値計算システムとみなさず、ヘルパーの結果が後段でどう使われるか尋ねてください。ソフトウェアが提供するのは開発環境であり、必要な配列ライブラリ、データ、実行時検証はプロジェクトによって決まります。
対応するOpenAI互換またはAnthropicのエンドポイントで提供される場合、制約のないAIモデルを選べます。サービスのアドレスと必要な認証情報を設定し、タスクに適した機能を確認します。仕様で許す場合は空の次元も含め、代表的な形状で編集案をレビュー・テストします。結果の動作をアプリケーションが使う数値計算ライブラリと比較します。これにより、自信に満ちたモデルの説明と検証済みの数値動作を混同せず、互換性の証拠を対話に持ち込めます。
数値計算の形状をレビューする際の質問
形状不一致の報告に何を添えるべきですか?
入力形状、失敗する操作、期待する結果、関連ライブラリのバージョンを示します。小さな再現例で症状をソースに結び付けられます。次元と代表値で説明できるなら、大規模なデータセットを送らないでください。
この開発環境はGPUアクセラレーションを提供しますか?
この開発手順からアクセラレーション能力が保証されるわけではありません。実行はプロジェクトのライブラリ、ハードウェア、ランタイムによって決まります。ShapeEstuaryでコード変更を調べて検討し、数値計算を実行する環境で測定・検証してください。
サイズがゼロの次元はどう扱いますか?
アプリケーションが受け入れるかを示し、動作案を配列ライブラリと比較します。有効な組み合わせと互換性のない組み合わせをテストしてください。正の次元に関する一般則で、空の結果を許す既存仕様を黙って置き換えないでください。
ヘルパーを変更したら後段のコードも変えるべきですか?
まず利用側を調べます。出力形状やエラー型の違いには、連動した更新が必要な場合があります。影響する前提の特定を求め、その編集をまとめてレビューし、操作全体をカバーするテストを実行します。
ShapeEstuary · 更新日 2026-10-25