Anfängerfragen
Anfängerfragen
hallo!
nach folgender skriptzeile:
if (1/v < x)
{
}
bekomme ich die fehlermeldung
Exception occurred during script execution!
liegts am dividierzeichen?
wenn ja, welches ist zu verwenden?
danke für die hilfe!
nach folgender skriptzeile:
if (1/v < x)
{
}
bekomme ich die fehlermeldung
Exception occurred during script execution!
liegts am dividierzeichen?
wenn ja, welches ist zu verwenden?
danke für die hilfe!
Re: Anfängerfragen
hmmm, also das problem ist folgendes:
maximum=ergebnis/2;
funktioniert, aber bei
maximum=1/ergebnis;
kommt immer obige fehlermeldung.
maximum ist aber als double deklariert.
da bin ich leider ratlos
zur erläuterung: "ergebnis" ist der wert aus einer datenzelle, den ich übernehme. liegt da vielleicht ein formatproblem vor?
maximum=ergebnis/2;
funktioniert, aber bei
maximum=1/ergebnis;
kommt immer obige fehlermeldung.
maximum ist aber als double deklariert.
da bin ich leider ratlos
zur erläuterung: "ergebnis" ist der wert aus einer datenzelle, den ich übernehme. liegt da vielleicht ein formatproblem vor?
Re: Anfängerfragen
Kann es vielleicht sein, dass 'ergebnis' machmal '0' wird und so eine 'Division by Zero' exception auftritt?
Viele Grüße
Viele Grüße
Thomas Jetter
Re: Anfängerfragen
das muß irgendein anderes problem sein. ich hab jetzt folgendes rausgefunden:Admin wrote:Kann es vielleicht sein, dass 'ergebnis' machmal '0' wird und so eine 'Division by Zero' exception auftritt?
Viele Grüße
maximum=1/2; ergibt 0
aber maximum=1/2.0;
oder maximum=1.0/2;
ergibt jeweils richtig 0.5
das heißt, ist eine ganze zahl im spiel, kommt der fehler
gruß
Re: Anfängerfragen
das liegt daran, dass eine Division von Integerzahlen immer ein ganzzahliges Ergebnis hat, d.h., Nachkommastellen werden abgeschnitten.
Abhilfe schafft da entweder das Hinschreiben als Gleitkommazahl (also '1.0' anstatt '1') oder das explizite Casten ( = Umwandeln) in eine Gleitkommazahl vor der Division. In Angelscript geht das so:
Viele Grüße
Abhilfe schafft da entweder das Hinschreiben als Gleitkommazahl (also '1.0' anstatt '1') oder das explizite Casten ( = Umwandeln) in eine Gleitkommazahl vor der Division. In Angelscript geht das so:
Code: Select all
uint zahl = 5; // Ganzzahlvariable
double ergebnis1 = zahl / 4; // Diese Division ergibt als Ergebnis 0, da eine Ganzzahl dividiert wird
double ergebnis2 = double(zahl) / 4; // Diese Division ergibt den Gleitkommawert der Division, da 'zahl' vor der Division auf 'double' gecastet wird.
Thomas Jetter
Re: Anfängerfragen
so etwas in der art hatte ich mir gedacht und es über einen umweg gelöst.
aber vielen dank für die information, sie wird zukünftig sehr hilfreich sein.
vg
aber vielen dank für die information, sie wird zukünftig sehr hilfreich sein.
vg
Re: Anfängerfragen
ich komm mir langsam schon blöd vor mit meinen vielen fragen, aber ich benutze das programm derzeit 20 stunden am tag und die ergebnisse sprechen für sich!
jetzt ist ein neuerliches problem aufgetaucht:
bei einem teil meiner validationsdaten bricht das skript mit folgender meldung ab:
Exception occurred during script execution!
komischerweise wird das netz aber mit den gleichen daten einwandfrei trainiert.
und das skript funktioniert bei anders gesplitteten daten auch.
was könnte das sein?
jetzt ist ein neuerliches problem aufgetaucht:
bei einem teil meiner validationsdaten bricht das skript mit folgender meldung ab:
Exception occurred during script execution!
komischerweise wird das netz aber mit den gleichen daten einwandfrei trainiert.
und das skript funktioniert bei anders gesplitteten daten auch.
was könnte das sein?
Re: Anfängerfragen
Da kann ich leider nicht weiterhelfen, ohne alle zum Debuggen nötigen Informationen zu haben.
Ich bräuchte also ein Komplettpaket aus Skript, Netz, Daten usw. mit dem sich der Skriptabsturz reproduzieren lässt, dann versuche ich gerne zu helfen.
Viele Grüße
Ich bräuchte also ein Komplettpaket aus Skript, Netz, Daten usw. mit dem sich der Skriptabsturz reproduzieren lässt, dann versuche ich gerne zu helfen.
Viele Grüße
Thomas Jetter
Re: Anfängerfragen
danke, habs jetzt nach ner "nachtschicht" fieselkram selbst rausgefunden.
in einigen wenigen datensätzen hat sich ein "nicht"tzeichen (in vb "") eingeschlichen.
beim training werden die ignoriert, aber beim validieren per skript bricht das skript ab.
immer wieder gerne angemerkt: ganz tolles programm!
in einigen wenigen datensätzen hat sich ein "nicht"tzeichen (in vb "") eingeschlichen.
beim training werden die ignoriert, aber beim validieren per skript bricht das skript ab.
immer wieder gerne angemerkt: ganz tolles programm!
Re: Anfängerfragen
mir fällt auf, daß sich netze oft recht gut trainieren, dann schlechter werden und dummerweise nicht mehr auf den guten zwischenwert zurückkehren.
gibt es eine funktion, die immer das netz zwischenspeichert, wenn ein neuer bestwert erreicht ist?
ich empfinde das als höchst sinnvoll und hilfreich, auch wenn das auf kosten der performance geht.
vg
gibt es eine funktion, die immer das netz zwischenspeichert, wenn ein neuer bestwert erreicht ist?
ich empfinde das als höchst sinnvoll und hilfreich, auch wenn das auf kosten der performance geht.
vg