import tempfile import os import torch def save_model_to_hdf5_group(model, f): tempfd, tempfname = tempfile.mkstemp(prefix='tmp-torchmodel') try: os.close(tempfd) torch.save(model, tempfname) with open(tempfname, 'rb') as model_file: model_data = model_file.read() f.create_dataset('torchmodel', data=model_data) finally: os.unlink(tempfname) def load_model_from_hdf5_group(f, map_location=None): tempfd, tempfname = tempfile.mkstemp(prefix='tmp-torchmodel') try: os.close(tempfd) with open(tempfname, 'wb') as model_file: model_file.write(f['torchmodel'][()]) model = torch.load(tempfname, map_location=map_location) return model finally: os.unlink(tempfname) def set_gpu_memory_target(device, frac): # This function is not required in PyTorch since it doesn't pre-allocate all GPU memory by default. pass