一、pytorch模型训练流程:
加载模型(model)
输入数据(数据处理后的数据(input)
模型输出(pred=model(input)
计算损失函数(loss)
反向传播(loss.backward())
参数更新(optimizer.step())
二、数据处理流程:
读取数据:cv2.imread()
修改输入图片尺寸:padded resize
数据结构与通道转化:img = img.transpose((2, 0, 1))[::-1] # HWC to CHW, BGR to RGB
连续性:img = np.ascontiguousarray(img)
转化成tensor,并转到device上(im = torch.from_numpy(im).to(device))
精度转化(im = im.half() if half else im.float() # uint8 to fp16/32)
归一化(im /= 255 # 0 - 255 to 0.0 - 1.0)
注: 如果不将切片后的数组连续化转化成tensor会失败,也可以用.copy()