Forme compatibili dei tensori
Deduci una forma comune dei tensori confrontando le dimensioni finali ed espandendo gli assi unitari.
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))Progetto
Prova scalari e assi vuoti con dimensioni unitarie, rifiutando dimensioni incompatibili, negative o frazionarie.
Controlla prima di applicare
Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche.
Modelli
Configura un endpoint compatibile con OpenAI o Anthropic usando URL di base e chiave API, se necessaria. Prova la connessione. Il server locale deve essere in esecuzione; gli strumenti remoti possono trasmettere dati separatamente.
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))Segui le ipotesi sulle forme attraverso un progetto numerico
ShapeEstuary offre al lavoro sul software numerico un ambiente Windows in cui cartella del progetto e conversazione con l'IA restano collegate. Parti dall'operazione che fallisce o restituisce una forma inattesa. Chiedi al modello scelto di esaminare le trasformazioni circostanti e spiegarne le ipotesi prima di richiedere una modifica. Questo approccio mantiene l'indagine legata alla sequenza di elaborazione che usa davvero il risultato.
Per esempio, broadcast.py può dare un riferimento alla revisione della compatibilità delle forme. Una richiesta utile specifica dimensioni in ingresso, forma di output attesa e comportamento richiesto per input incompatibili. Chiedi come il risultato della funzione venga utilizzato a valle, invece di trattare l'esempio come un sistema numerico completo. Il software fornisce l'ambiente di programmazione; il tuo progetto determina quale libreria di array, quali dati e quali controlli a runtime servano all'attività.
Puoi scegliere modelli IA senza restrizioni quando un endpoint supportato compatibile con OpenAI o Anthropic li rende disponibili. Configura l'indirizzo del servizio e le credenziali richieste, poi verificane le capacità per l'attività. Esamina le modifiche proposte e testa forme rappresentative, incluse dimensioni vuote quando consentite dal contratto. Confronta il comportamento risultante con la libreria numerica usata dall'applicazione. Questo fornisce alla conversazione prove di compatibilità senza confondere una spiegazione sicura del modello con un comportamento numerico verificato.
Domande di revisione per lavorare sulle forme numeriche
Cosa deve accompagnare una segnalazione di forme non corrispondenti?
Fornisci le forme di input, l'operazione che fallisce, il risultato atteso e la versione della libreria pertinente. Un piccolo caso riproducibile aiuta a collegare il sintomo al sorgente. Evita di inviare un insieme di dati grande quando dimensioni e valori rappresentativi possono spiegare il problema.
Questo ambiente offre accelerazione GPU?
Il flusso di programmazione non dimostra alcuna capacità di accelerazione. Librerie, hardware e runtime del progetto determinano l'esecuzione. Usa ShapeEstuary per esaminare e discutere modifiche al codice, poi misurale e verificale nell'ambiente in cui viene svolto il lavoro numerico.
Come vanno gestite le dimensioni di grandezza zero?
Specifica se l'applicazione le accetta e confronta il comportamento proposto con la sua libreria di array. Testa combinazioni valide e incompatibili. Non lasciare che una regola generica sulle dimensioni positive sostituisca silenziosamente un contratto esistente che consente risultati vuoti.
Devo cambiare il codice a valle quando cambia la funzione?
Esamina prima chi ne usa il risultato. Una forma di output o un tipo di errore diverso possono richiedere aggiornamenti coordinati. Chiedi di identificare le ipotesi interessate, poi esamina insieme quelle modifiche ed esegui test che coprano l'intera operazione.
ShapeEstuary · Aggiornato 2026-10-25