[cli] 複数の不具合を修正 (#91)

* stabilize json outpug

* enable entropy calculation for smaller values

* chmod +x
This commit is contained in:
Miwa / Ensan
2024-05-09 00:47:07 +09:00
committed by GitHub
parent 5ed0ddb45e
commit c4aa3eee76
3 changed files with 10 additions and 7 deletions

View File

@ -66,7 +66,9 @@ extension Subcommands {
}
}
}
let json = try JSONEncoder().encode(result)
let encoder = JSONEncoder()
encoder.outputFormatting = [.prettyPrinted, .sortedKeys]
let json = try encoder.encode(result)
if let outputFilePath {
try json.write(to: URL(fileURLWithPath: outputFilePath))
@ -149,12 +151,12 @@ extension Subcommands {
self.outputs = outputs
do {
// entropy
let expValues = outputs.map { exp(Double($0.score)) }
let mean = outputs.reduce(into: 0) { $0 += Double($1.score) } / Double(outputs.count)
let expValues = outputs.map { exp(Double($0.score) - mean) }
let sumOfExpValues = expValues.reduce(into: 0, +=)
//
let probs = expValues.map { $0 / sumOfExpValues }
let entropy = -probs.reduce(into: 0) { $0 += $1 * log($1) }
self.entropy = entropy
let probs = outputs.map { exp(Double($0.score) - mean) / sumOfExpValues }
self.entropy = -probs.reduce(into: 0) { $0 += $1 * log($1) }
}
do {
self.max_rank = outputs.firstIndex {

View File

@ -40,10 +40,11 @@ extension Subcommands {
}
if self.onlyWholeConversion {
// entropy
let expValues = mainResults.map { exp(Double($0.value)) }
let mean = mainResults.reduce(into: 0) { $0 += Double($1.value) } / Double(mainResults.count)
let expValues = mainResults.map { exp(Double($0.value) - mean) }
let sumOfExpValues = expValues.reduce(into: 0, +=)
//
let probs = expValues.map { $0 / sumOfExpValues }
let probs = mainResults.map { exp(Double($0.value) - mean) / sumOfExpValues }
let entropy = -probs.reduce(into: 0) { $0 += $1 * log($1) }
print("\(bold: "Entropy:") \(entropy)")
}

0
install_cli.sh Normal file → Executable file
View File