Kompatibilní tvary tenzorů
Odvoďte společný tvar tenzorů porovnáním koncových rozměrů a rozšířením jednotkových os.
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
Ověřte skaláry a prázdné osy vedle jednotkových a odmítněte neslučitelné, záporné nebo zlomkové rozměry.
Před použitím zkontrolujte
Porovnejte skutečné chování s očekávaným výsledkem. Pokud kontrola selže, před dalšími změnami zjistěte příčinu.
Modely
Nastavte endpoint kompatibilní s OpenAI nebo Anthropic pomocí základní URL a případného API klíče. Otestujte připojení. Lokální server modelu musí běžet; vzdálené nástroje mohou data odesílat samostatně.
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))Sledujte předpoklady tvarů napříč numerickým projektem
ShapeEstuary poskytuje práci na numerickém softwaru prostředí pro Windows, které propojuje projektovou složku s rozhovorem s AI. Začněte operací, která selhává nebo vrací neočekávaný tvar. Než požádáte o úpravu, nechte vybraný model prozkoumat okolní transformace a vysvětlit jejich předpoklady. Zkoumání tak zůstane spojené s řetězcem operací, který výsledek skutečně používá.
Například broadcast.py může ukotvit kontrolu kompatibility tvarů. Užitečný požadavek uvádí vstupní rozměry, očekávaný tvar výstupu a požadované chování pro nekompatibilní vstupy. Ptejte se, jak se výsledek pomocné funkce dále používá, místo považování příkladu za úplný numerický systém. Software poskytuje programátorské prostředí; váš projekt určuje potřebnou knihovnu polí, data a běhové kontroly.
Modely AI bez omezení lze vybrat, pokud je zpřístupňuje podporovaný koncový bod kompatibilní s OpenAI nebo Anthropic. Nastavte adresu služby a požadované přihlašovací údaje, pak ověřte její schopnosti pro úlohu. Kontrolujte úpravy a testujte reprezentativní tvary včetně prázdných rozměrů, pokud je smlouva povoluje. Výsledné chování porovnejte s numerickou knihovnou aplikace. Rozhovor tak získá důkazy o kompatibilitě bez zaměňování sebejistého vysvětlení modelu za ověřené numerické chování.
Kontrolní otázky k práci s numerickými tvary
Co připojit k hlášení nesouladu tvarů?
Dodejte vstupní tvary, selhávající operaci, očekávaný výsledek a verzi příslušné knihovny. Malý reprodukovatelný případ pomůže spojit příznak se zdrojem. Neposílejte velký dataset, pokud problém vysvětlí rozměry a reprezentativní hodnoty.
Poskytuje toto prostředí akceleraci GPU?
Tento programátorský postup nedokládá žádnou akceleraci. Provádění určují knihovny projektu, hardware a běhové prostředí. V ShapeEstuary zkoumejte a probírejte změny kódu a poté je měřte a ověřujte tam, kde numerické výpočty běží.
Jak zacházet s rozměry nulové velikosti?
Určete, zda je aplikace přijímá, a porovnejte návrh s její knihovnou polí. Otestujte platné i nekompatibilní kombinace. Nedovolte, aby obecné pravidlo kladných rozměrů tiše nahradilo existující smlouvu povolující prázdné výsledky.
Mám při změně funkce měnit i navazující kód?
Nejprve prozkoumejte příjemce. Jiný tvar výstupu nebo typ chyby může vyžadovat koordinované změny. Požádejte o určení dotčených předpokladů, změny kontrolujte společně a spusťte testy pokrývající celou operaci.
ShapeEstuary · Aktualizováno 2026-10-25