Formatos compatíveis de tensores
Determine a forma comum de tensores comparando dimensões finais e expandindo eixos unitários.
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))Projeto
Teste escalares e eixos vazios com dimensões unitárias, rejeitando tamanhos incompatíveis, negativos ou fracionários.
Revise antes de aplicar
Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.
Modelos
Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.
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))Acompanhe premissas de dimensões por um projeto numérico
ShapeEstuary oferece ao trabalho com software numérico um ambiente Windows onde a pasta do projeto e uma conversa com IA permanecem conectadas. Comece pela operação que falha ou retorna um formato inesperado. Peça ao modelo escolhido que examine as transformações ao redor e explique suas premissas antes de solicitar uma alteração. Essa abordagem mantém a investigação ligada ao fluxo que realmente usa o resultado.
Por exemplo, broadcast.py pode fundamentar uma revisão da compatibilidade de dimensões. Uma solicitação útil nomeia as dimensões de entrada, o formato de saída esperado e o comportamento exigido para entradas incompatíveis. Pergunte como o resultado da função auxiliar é usado adiante, em vez de tratar o exemplo como um sistema numérico completo. O software fornece o ambiente de programação; seu projeto determina a biblioteca de arrays, os dados e as verificações em tempo de execução necessários à tarefa.
Modelos de IA sem restrições estão disponíveis para escolha quando um endpoint suportado compatível com OpenAI ou da Anthropic os expõe. Configure o endereço do serviço e as credenciais exigidas e verifique suas capacidades para a tarefa. Revise as edições propostas e teste formatos representativos, incluindo dimensões vazias onde seu contrato as permitir. Compare o comportamento resultante com a biblioteca numérica usada pelo aplicativo. Isso dá à conversa evidências de compatibilidade sem confundir uma explicação confiante do modelo com comportamento numérico verificado.
Perguntas de revisão para trabalhar com dimensões numéricas
O que deve acompanhar um relato de incompatibilidade de dimensões?
Forneça os formatos de entrada, a operação que falha, o resultado esperado e a versão relevante da biblioteca. Um pequeno caso reproduzível ajuda a conectar o sintoma ao código. Evite enviar um grande conjunto de dados quando dimensões e valores representativos podem explicar o problema.
Esse ambiente fornece aceleração por GPU?
O fluxo de programação não estabelece nenhuma capacidade de aceleração. As bibliotecas, o hardware e o ambiente de execução do projeto determinam a execução. Use ShapeEstuary para examinar e discutir mudanças de código e depois medi-las e verificá-las no ambiente em que o trabalho numérico é executado.
Como tratar dimensões de tamanho zero?
Defina se o aplicativo as aceita e compare o comportamento proposto com sua biblioteca de arrays. Teste combinações válidas e incompatíveis. Não deixe uma regra genérica de dimensões positivas substituir silenciosamente um contrato existente que permite resultados vazios.
Devo alterar o código posterior quando a função auxiliar mudar?
Examine primeiro seus consumidores. Um formato de saída ou tipo de erro diferente pode exigir atualizações coordenadas. Peça a identificação das premissas afetadas, revise essas edições juntas e execute testes que cubram a operação completa.
ShapeEstuary · Atualizado 2026-10-25