leeyeehoo/CSRNet-pytorch

Loading trained model

Closed this issue · 2 comments

Hello, I am trying to load the checkpoint file created from the train.py script. It continually gets errors of not having permission. I have checked all permissions and I cannot see where the permission would not be granted.
Here is the error to be more specific
(csrnet_env) PS C:\Users\Chris\CSRNet-pytorch> C:/desktop/Python38/python.exe "C:\Users\Chris\CSRNet-pytorch\unpickle.py"
C:\desktop\Python38\lib\site-packages\torchvision\models_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.
warnings.warn(
C:\desktop\Python38\lib\site-packages\torchvision\models_utils.py:223: UserWarning: Arguments other than a weight enum or None for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing weights=VGG16_Weights.IMAGENET1K_V1. You can also use weights=VGG16_Weights.DEFAULT to get the most up-to-date weights.
warnings.warn(msg)
Traceback (most recent call last):
File "C:\Users\Chris\CSRNet-pytorch\unpickle.py", line 19, in
with open(path, 'rb') as f:
PermissionError: [Errno 13] Permission denied: 'C:\Users\Chris\CSRNet-pytorch\1checkpoint.pth'
This is the code I am running
import os
import torch
from make_model import CSRNet
import io

def custom_persistent_load(saved_id):
typename = saved_id[0]
data = saved_id[1]

if typename == 'torch.cuda.FloatTensor':
    storage = torch.FloatStorage.from_buffer(data)
    return storage
else:
    raise RuntimeError(f"Unknown typename '{typename}' in persistent_load")

path = r"C:\Users\Chris\CSRNet-pytorch\1checkpoint.pth"
os.chmod(path, 0o777)

with open(path, 'rb') as f:
checkpoint_data = f.read()

buffer = io.BytesIO(checkpoint_data)
checkpoint = torch.load(buffer, map_location=torch.device('cpu'), pickle_module=pickle)

from make_model import CSRNet

model = CSRNet(load_weights=False)
model.load_state_dict(checkpoint['state_dict'])
print("unpickled:")
print(model)

A professor told me it is likely related to torch.load.

Is there any way someone got their checkpoint to load?

Also I am using torch 2.0 and cuda 11.8

I found out the issue. I had the data set unzipped. The folder should remain zipped when loading the data.