EExponQuay
Pracovní postupy

Pracovní postupy s kódem · Stabilní agregace log-sum-exp

03
Produkt

Pracovní postupy

Agregujte nejvýše 1000 logaritmických hodnot od minus 1e300 do 1e300 odečtením maxima před exponenciací. Ověřte prázdný vstup, opakované velké a velmi záporné hodnoty a vraťte minus nekonečno jen pro prázdno; odmítněte booleovské, nekonečné nebo nepovolené hodnoty.

01

Stáhněte aplikaci

Vyberte složku a před úpravou nechte asistenta přečíst příslušné soubory. Určete cíl i hranice úkolu.

02

Otevřete složku projektu

Zvolte kompatibilní endpoint. Dostupné nástroje a kvalita odpovědí závisí na nastaveném modelu a serveru.

03

Připojte a otestujte model

Kontrolujte změny a výstupy příkazů. Před přijetím výsledku spusťte kontroly projektu; vytvořený kód není automaticky otestovaný.

04

Zkontrolujte změny a spusťte testy

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.

Stabilní agregace log-sum-exp

Pracovní postupy
from math import exp, fsum, log, inf

def log_sum_exp(values):
    if type(values) not in (list, tuple) or len(values) > 1000:
        raise ValueError("values.container")
    values = tuple(values)
    if len(values) > 1000 or any(
        type(v) not in (int, float) or not -1e300 <= v <= 1e300 for v in values
    ):
        raise ValueError("values.range")
    if not values:
        return -inf
    peak = max(values)
    return peak + log(fsum(exp(v - peak) for v in values))

Před použitím zkontrolujte. Kontrolujte změny a výstupy příkazů. Před přijetím výsledku spusťte kontroly projektu; vytvořený kód není automaticky otestovaný.

Pracovní prostředí s AI pro kód

Váš další nápad začíná zde.

Stáhnout pro Windows ↗