Dimensions de diffusion des tenseurs
Déduisez une forme commune de tenseurs en comparant les dimensions finales et en étendant les axes unitaires.
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))Projet
Testez les scalaires et axes vides avec dimensions unitaires, en refusant tailles incompatibles, négatives ou fractionnaires.
Vérifiez avant d’appliquer
Comparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.
Modèles
Configurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément.
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))Suivez les hypothèses de forme dans un projet numérique
ShapeEstuary offre aux travaux de logiciel numérique un espace sous Windows où dossier de projet et conversation avec l’IA restent liés. Partez de l’opération qui échoue ou renvoie une forme inattendue. Demandez au modèle choisi d’inspecter les transformations environnantes et d’expliquer leurs hypothèses avant de demander un correctif. Cette approche rattache l’enquête à la chaîne de traitement utilisant réellement le résultat.
Par exemple, broadcast.py peut servir de base à l’examen de la compatibilité des formes. Une demande utile indique les dimensions d’entrée, la forme de sortie attendue et le comportement requis pour des entrées incompatibles. Demandez comment le résultat de la fonction est utilisé en aval, sans traiter l’exemple comme un système numérique complet. Le logiciel fournit l’espace de programmation ; votre projet détermine la bibliothèque de tableaux, les données et les vérifications à l’exécution nécessaires.
Des modèles d’IA sans restriction peuvent être choisis lorsqu’un point de terminaison compatible OpenAI ou Anthropic pris en charge les expose. Configurez l’adresse du service et les identifiants requis, puis vérifiez ses capacités pour la tâche. Examinez les modifications proposées et testez des formes représentatives, y compris des dimensions vides lorsque le contrat les autorise. Comparez le comportement obtenu à celui de la bibliothèque numérique de votre application. Cela apporte à la conversation des preuves de compatibilité sans confondre une explication assurée du modèle avec un comportement numérique vérifié.
Questions de révision sur les formes numériques
Que joindre à un signalement de formes incompatibles ?
Fournissez les formes d’entrée, l’opération en échec, le résultat attendu et la version de bibliothèque pertinente. Un petit cas reproductible relie le symptôme au code source. Évitez d’envoyer un gros jeu de données si les dimensions et des valeurs représentatives expliquent le problème.
Cet espace de travail fournit-il une accélération GPU ?
Le processus de programmation n’établit aucune capacité d’accélération. Les bibliothèques, le matériel et l’environnement d’exécution du projet déterminent l’exécution. Utilisez ShapeEstuary pour examiner et discuter du code, puis mesurez et vérifiez les changements dans l’environnement du calcul numérique.
Comment traiter les dimensions de taille nulle ?
Précisez si l’application les accepte et comparez le comportement proposé à sa bibliothèque de tableaux. Testez des combinaisons valides et incompatibles. Ne laissez pas une règle générique de dimensions positives remplacer silencieusement un contrat existant autorisant des résultats vides.
Faut-il modifier le code en aval lorsque la fonction change ?
Inspectez d’abord ses consommateurs. Une autre forme de sortie ou un autre type d’erreur peut demander des mises à jour coordonnées. Demandez d’identifier les hypothèses concernées, puis examinez ensemble ces modifications et exécutez des tests couvrant l’opération complète.
ShapeEstuary · Mis à jour 2026-10-25