Ejemplo n.º 1
0
            img, label, label_rotate = data
            img, label, label_rotate = img.to(opt.device), label.to(opt.device), label_rotate.to(opt.device)

            optimizer.zero_grad()
            optimizer_rotate.zero_grad()
            x, feat = net(img, label, is_train=True)
            loss_info = criterion(x, label)
            x_rotate = fc(feat)
            loss_rotate = criterion_rotate(x_rotate, label_rotate)
            loss = (loss_info[0] + loss_rotate).mean()
            loss.backward()
            optimizer.step()
            optimizer_rotate.step()

            log.update(x, label)
            log.log_train(optimizer, loss_info, opt, i_epoch, i_iter, trainloader_len)

        # --------------------   测试     -------------------------
        print("测试...")
        with torch.no_grad():
            net.eval()
            fc.eval()
            log.init()
            for data in testloader:
                img, label = data
                img, label = img.to(opt.device), label.to(opt.device)

                x = net(img, label, is_train=False)[0]

                log.update(x, label)
            log.log_test(net, opt, i_epoch, trainloader_len)