mirror of
https://github.com/wassname/optuna-dashboard.git
synced 2026-09-11 12:30:25 +08:00
Fix bug regarding NaN, Infinity, -Infinity in loadJournalStorage
This commit is contained in:
@@ -340,7 +340,31 @@ const loadJournalStorage = (arrayBuffer: ArrayBuffer): Optuna.Study[] => {
|
||||
if (log === "") {
|
||||
continue
|
||||
}
|
||||
const parsedLog: JournalOpBase = JSON.parse(log)
|
||||
|
||||
const parsedLog: JournalOpBase = (() => {
|
||||
try {
|
||||
return JSON.parse(log)
|
||||
} catch (error) {
|
||||
if (error instanceof SyntaxError) {
|
||||
let escapedLog: string = log.replace(/NaN/g, '"***nan***"')
|
||||
escapedLog = escapedLog.replace(/-Infinity/g, '"***-inf***"')
|
||||
escapedLog = escapedLog.replace(/Infinity/g, '"***inf***"')
|
||||
return JSON.parse(escapedLog, (_key, value) => {
|
||||
switch (value) {
|
||||
case "***nan***":
|
||||
return NaN
|
||||
case "***-inf***":
|
||||
return -Infinity
|
||||
case "***inf***":
|
||||
return Infinity
|
||||
default:
|
||||
return value
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})()
|
||||
|
||||
switch (parsedLog.op_code) {
|
||||
case JournalOperation.CREATE_STUDY:
|
||||
journalStorage.applyCreateStudy(parsedLog as JournalOpCreateStudy)
|
||||
|
||||
Reference in New Issue
Block a user