Я получил предварительно обученную модель resnet 18 из этого репозитория обнаружения полосы движения, чтобы использовать ее в качестве функции ADAS (расширенные системы помощи водителю) для соревнований по производству электромобилей. Моя текущая цель — квантовать этот pth-файл модели, чтобы сделать его меньше и, возможно, быстрее для работы на rpi 5. Я пытался следовать нескольким различным руководствам по квантованию (например, этому) и реализовать его на своей модели. однако при этом выдает кучу ошибок, и я не понимаю, почему я их получаю? какая строка вызывает указанную ошибку, не указано.
вот мой код:
import torch, os, cv2
from model.model import parsingNet #basically the neural network that we apply weights to
from utils.common import merge_config
import torch
import scipy.special
import tqdm #provides progress bars
import numpy as np
import torchvision.transforms as transforms
from data.dataset import LaneTestDataset
from data.constant import culane_row_anchor
import tkinter as tk
import numpy as np
from PIL import Image, ImageTk
import time
if __name__ == "__main__":
import logging
logger = logging.getLogger(__name__)
if os.path.isfile("debugging.log"):
os.remove("debugging.log")
logging.basicConfig(filename='debugging.log', encoding='utf-8', level=logging.DEBUG)
def quantize_existing_model(model, saveto = "quantized.p"):
model.eval()
# modules_to_fuse = [['model.conv1', 'model.bn1', 'model.relu']] #code doesn't work even when this is disabled
# model = torch.quantization.fuse_modules(model, modules_to_fuse, inplace=True)
model.qconfig = torch.quantization.default_qconfig
torch.quantization.prepare(model, inplace=True)
model.eval()
print("calibrating model for quantization")
with torch.no_grad():
dataCalibrationLength = 10
for i, data in enumerate(tqdm.tqdm(loader)):
img, names = data
#img = img.cuda() #disabled because I don't have gpu
out = net(img) #feeding data into neural network
if(dataCalibrationLength
Подробнее здесь: [url]https://stackoverflow.com/questions/79884369/post-training-quantized-model-gets-the-error-copying-from-quantized-tensor-to-n[/url]
Я получил предварительно обученную модель resnet 18 из этого репозитория обнаружения полосы движения, чтобы использовать ее в качестве функции ADAS (расширенные системы помощи водителю) для соревнований по производству электромобилей. Моя текущая цель — квантовать этот pth-файл модели, чтобы сделать его меньше и, возможно, быстрее для работы на rpi 5. Я пытался следовать нескольким различным руководствам по квантованию (например, этому) и реализовать его на своей модели. однако при этом выдает кучу ошибок, и я не понимаю, почему я их получаю? какая строка вызывает указанную ошибку, не указано. вот мой код: [code]import torch, os, cv2 from model.model import parsingNet #basically the neural network that we apply weights to from utils.common import merge_config import torch import scipy.special import tqdm #provides progress bars import numpy as np import torchvision.transforms as transforms from data.dataset import LaneTestDataset from data.constant import culane_row_anchor import tkinter as tk import numpy as np from PIL import Image, ImageTk import time
if __name__ == "__main__": import logging logger = logging.getLogger(__name__) if os.path.isfile("debugging.log"): os.remove("debugging.log") logging.basicConfig(filename='debugging.log', encoding='utf-8', level=logging.DEBUG)
# modules_to_fuse = [['model.conv1', 'model.bn1', 'model.relu']] #code doesn't work even when this is disabled # model = torch.quantization.fuse_modules(model, modules_to_fuse, inplace=True) model.qconfig = torch.quantization.default_qconfig torch.quantization.prepare(model, inplace=True) model.eval() print("calibrating model for quantization") with torch.no_grad(): dataCalibrationLength = 10 for i, data in enumerate(tqdm.tqdm(loader)): img, names = data #img = img.cuda() #disabled because I don't have gpu out = net(img) #feeding data into neural network if(dataCalibrationLength