コード例 #1
0
from data_loader import CenterCrop
from data_loader import ToTensor
from data_loader import ToTensorLab
from data_loader import SalObjDataset

from model import BASNet

import pytorch_ssim
import pytorch_iou
from utils import AverageMeter, VisdomLinePlotter
from paperBASNET.metrics import getMAE, getPRCurve, getMaxFMeasure, getRelaxedFMeasure, own_RelaxedFMeasure
# ------- 1. define loss function --------

bce_loss = nn.BCELoss(size_average=True)
ssim_loss = pytorch_ssim.SSIM(window_size=11, size_average=True)
iou_loss = pytorch_iou.IOU(size_average=True)


def normPRED(d):
    ma = torch.max(d)
    mi = torch.min(d)

    dn = (d - mi) / (ma - mi)

    return dn


def bce_ssim_loss(pred, target):

    bce_out = bce_loss(pred, target)
    ssim_out = 1 - ssim_loss(pred, target)
コード例 #2
0
ファイル: train_HAI.py プロジェクト: MathLee/HAINet
image_root = './train_dataset/image/'
depth_root = './train_dataset/depth/'
gt_root = './train_dataset/GT/'
# image_root = './train_dataset_DMRA/image/'
# depth_root = './train_dataset_DMRA/depth/'
# gt_root = './train_dataset_DMRA/GT/'
train_loader = get_loader(image_root,
                          depth_root,
                          gt_root,
                          batchsize=opt.batchsize,
                          trainsize=opt.trainsize)
total_step = len(train_loader)

CE = torch.nn.BCEWithLogitsLoss()
IOU = pytorch_iou.IOU(size_average=True)


def train(train_loader, model, optimizer, epoch):
    model.train()
    for i, pack in enumerate(train_loader, start=1):
        optimizer.zero_grad()
        images, depths, gts = pack
        images = Variable(images)
        depths = Variable(depths)
        gts = Variable(gts)
        images = images.cuda()
        depths = depths.cuda()
        gts = gts.cuda()

        s1, s2, s3, s4, s5, s1_sig, s2_sig, s3_sig, s4_sig, s5_sig = model(