# -*- coding: utf-8 -*-
"""
Auther : Haitao Zeng
date : 2019.2.14
Function: finetune the pre-trained model on MIT67 & SUN397
"""
from __future__ import print_function, division, absolute_import
from PIL import Image
import torch
import torchvision
import torch.nn as nn
from torch.autograd import Variable
import torch.optim as optim
from torch.optim import lr_scheduler
import numpy as np
from torchvision import datasets, models, transforms
import os
import cv2
import time
import copy
import torch.utils.data as data
from Rsenet50 import Resnet
import torch.utils.model_zoo as model_zoo
def cv2_imageloader(path):
mean = [0.485, 0.456, 0.406]
std = [0.229, 0.224, 0.225]
img = cv2.imread(path)
img = cv2.resize(img, (224, 224))
im_arr = np.float32(img)
im_arr = np.ascontiguousarray(im_arr[..., ::-1])
im_arr = im_arr.transpose(2, 0, 1)# Convert Img from BGR to RGB
for channel, _ in enumerate(im_arr):
# Normalization
im_arr[channel] /= 255
im_arr[channel] -= mean[channel]
im_arr[channel] /= std[channel]
# Convert to float tensor
im_as_ten = torch.from_numpy(im_arr).float()
# Convert to Pytorch variable
im_as_var = Variable(im_as_ten, requires_grad=True)
return im_as_var
def default_loader(path):
return cv2_imageloader(path)
class CustomImageLoader(data.Dataset):
##自定义类型数据输入
def __init__(self, img_path, txt_path, dataset = '', data_transforms=None, loader = default_loader):
im_list = []