Zgodność kształtów tensorów
Wyznacz wspólny kształt tensorów przez porównanie końcowych wymiarów i rozwijanie osi jednostkowych.
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))Projekt
Sprawdź skalary i puste osie obok jednostkowych, odrzucając wymiary niezgodne, ujemne lub ułamkowe.
Sprawdź przed zastosowaniem
Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
Modele
Dodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie.
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))Śledź założenia kształtu w projekcie numerycznym
ShapeEstuary zapewnia pracy nad oprogramowaniem numerycznym środowisko Windows łączące folder projektu z rozmową z AI. Zacznij od operacji, która zawodzi lub zwraca nieoczekiwany kształt. Poproś wybrany model o sprawdzenie otaczających przekształceń i wyjaśnienie ich założeń przed zleceniem poprawki. Takie podejście wiąże analizę z potokiem, który rzeczywiście wykorzystuje wynik.
Na przykład broadcast.py może stanowić podstawę przeglądu zgodności kształtów. Użyteczna prośba określa wymiary wejściowe, oczekiwany kształt wyniku i wymagane zachowanie dla niezgodnych wejść. Zapytaj, jak wynik funkcji jest wykorzystywany dalej, zamiast traktować przykład jako kompletny system numeryczny. Oprogramowanie zapewnia środowisko programistyczne; projekt określa bibliotekę tablic, dane i kontrole czasu wykonania potrzebne w zadaniu.
Modele AI bez ograniczeń można wybrać, gdy udostępnia je obsługiwany punkt końcowy zgodny z OpenAI lub Anthropic. Skonfiguruj adres usługi i wymagane dane uwierzytelniające, a następnie sprawdź jej możliwości dla zadania. Oceń proponowane zmiany i przetestuj reprezentatywne kształty, w tym puste wymiary, jeśli kontrakt je dopuszcza. Porównaj wynikowe zachowanie z biblioteką numeryczną używaną przez aplikację. Daje to rozmowie dowody zgodności bez mylenia pewnego wyjaśnienia modelu ze zweryfikowanym zachowaniem numerycznym.
Pytania do przeglądu kształtów w kodzie numerycznym
Co dołączyć do zgłoszenia niezgodności kształtów?
Podaj kształty wejściowe, zawodzącą operację, oczekiwany wynik i odpowiednią wersję biblioteki. Mały odtwarzalny przypadek pomaga powiązać objaw z kodem. Unikaj wysyłania dużego zbioru danych, jeśli wymiary i reprezentatywne wartości wyjaśniają problem.
Czy to środowisko zapewnia przyspieszenie GPU?
Opisany proces programowania nie potwierdza możliwości przyspieszenia. Wykonanie zależy od bibliotek, sprzętu i środowiska uruchomieniowego projektu. Użyj ShapeEstuary do sprawdzania i omawiania zmian kodu, następnie mierz je i weryfikuj tam, gdzie wykonywane są obliczenia numeryczne.
Jak obsługiwać wymiary o rozmiarze zero?
Określ, czy aplikacja je akceptuje, i porównaj proponowane zachowanie z jej biblioteką tablic. Testuj poprawne i niezgodne kombinacje. Nie pozwól, by ogólna reguła dodatnich wymiarów niejawnie zastąpiła istniejący kontrakt dopuszczający puste wyniki.
Czy zmieniać dalszy kod po zmianie funkcji pomocniczej?
Najpierw sprawdź jej odbiorców. Inny kształt wyniku lub typ błędu może wymagać skoordynowanych zmian. Poproś o wskazanie dotkniętych założeń, następnie oceń te zmiany razem i uruchom testy obejmujące całą operację.
ShapeEstuary · Zaktualizowano 2026-10-25