Код: Выделить всё
from flax.training import orbax_utils
import orbax.checkpoint
directory_gen_path = "checkpoints_loc"
orbax_checkpointer_gen = orbax.checkpoint.PyTreeCheckpointer()
gen_options = orbax.checkpoint.CheckpointManagerOptions(save_interval_steps=5, create=True)
gen_checkpoint_manager = orbax.checkpoint.CheckpointManager(
directory_gen_path, orbax_checkpointer_gen, gen_options
)
def save_model_checkpoints(step_, generator_state, generator_batch_stats):
gen_ckpt = {
"model": generator_state,
"batch_stats": generator_batch_stats,
}
save_args_gen = orbax_utils.save_args_from_target(gen_ckpt)
gen_checkpoint_manager.save(step_, gen_ckpt, save_kwargs={"save_args": save_args_gen})
def load_model_checkpoints(generator_state, generator_batch_stats):
gen_target = {
"model": generator_state,
"batch_stats": generator_batch_stats,
}
latest_step = gen_checkpoint_manager.latest_step()
gen_ckpt = gen_checkpoint_manager.restore(latest_step, items=gen_target)
generator_state = gen_ckpt["model"]
generator_batch_stats = gen_ckpt["batch_stats"]
return generator_state, generator_batch_stats
Код: Выделить всё
ValueError: SingleDeviceSharding with Device=cuda:0 was not found in jax.local_devices().
Подробнее здесь: https://stackoverflow.com/questions/791 ... valueerror