mirror of
https://github.com/tig-pool-nk/tig-monorepo.git
synced 2026-02-21 15:47:24 +08:00
Load hyperparameters from json string or json file.
This commit is contained in:
parent
3bb141beed
commit
aa0246b1cd
@ -34,7 +34,7 @@ fn cli() -> Command {
|
|||||||
.value_parser(clap::value_parser!(PathBuf)),
|
.value_parser(clap::value_parser!(PathBuf)),
|
||||||
)
|
)
|
||||||
.arg(
|
.arg(
|
||||||
arg!(--hyperparameters [HYPERPARAMETERS] "A json string of hyperparameters")
|
arg!(--hyperparameters [HYPERPARAMETERS] "Hyperparameters json string or path to json file")
|
||||||
.value_parser(clap::value_parser!(String)),
|
.value_parser(clap::value_parser!(String)),
|
||||||
)
|
)
|
||||||
.arg(
|
.arg(
|
||||||
@ -89,12 +89,7 @@ pub fn compute_solution(
|
|||||||
let settings = load_settings(&settings);
|
let settings = load_settings(&settings);
|
||||||
let seed = settings.calc_seed(&rand_hash, nonce);
|
let seed = settings.calc_seed(&rand_hash, nonce);
|
||||||
|
|
||||||
let hyperparameters = hyperparameters.map(|x| {
|
let hyperparameters = hyperparameters.map(|x| load_hyperparameters(&x));
|
||||||
dejsonify::<Map<String, Value>>(&x).unwrap_or_else(|_| {
|
|
||||||
eprintln!("Failed to parse hyperparameters as JSON");
|
|
||||||
std::process::exit(1);
|
|
||||||
})
|
|
||||||
});
|
|
||||||
|
|
||||||
let library = load_module(&library_path)?;
|
let library = load_module(&library_path)?;
|
||||||
let fuel_remaining_ptr = unsafe { *library.get::<*mut u64>(b"__fuel_remaining")? };
|
let fuel_remaining_ptr = unsafe { *library.get::<*mut u64>(b"__fuel_remaining")? };
|
||||||
@ -332,6 +327,22 @@ fn load_settings(settings: &str) -> BenchmarkSettings {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn load_hyperparameters(hyperparameters: &str) -> Map<String, Value> {
|
||||||
|
let hyperparameters = if hyperparameters.ends_with(".json") {
|
||||||
|
fs::read_to_string(hyperparameters).unwrap_or_else(|_| {
|
||||||
|
eprintln!("Failed to read hyperparameters file: {}", hyperparameters);
|
||||||
|
std::process::exit(1);
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
hyperparameters.to_string()
|
||||||
|
};
|
||||||
|
|
||||||
|
dejsonify::<Map<String, Value>>(&hyperparameters).unwrap_or_else(|_| {
|
||||||
|
eprintln!("Failed to parse hyperparameters as JSON");
|
||||||
|
std::process::exit(1);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
pub fn load_module(path: &PathBuf) -> Result<Library> {
|
pub fn load_module(path: &PathBuf) -> Result<Library> {
|
||||||
let res = panic::catch_unwind(|| unsafe { Library::new(path) });
|
let res = panic::catch_unwind(|| unsafe { Library::new(path) });
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user