コード例 #1
0
import torch
from torch.nn import functional
from pathlib import Path
import torchvision
from torch import nn

scene_detection_col = 'scene_detection'
learning_rates = [0.001, 0.0001]
total_loss = 0
total_correct = 0
data_folder = '/home/student/Desktop/Dan/day_night_detection'
batch_sizes = [1, 10, 20]
epochs = 2
num_workers = 4

train_data = get_all_with_field(scene_detection_col, field_name='train_test', field_value='train')
train_ds = ImagesDataset(train_data)

mark_every = len(train_ds) // 20
mark_split = [(start, start + mark_every - 1) for start in range(0, len(train_ds), mark_every)]
mark_index = 0


def get_num_correct(preds, labels):
    return preds.argmax(dim=1).eq(labels).sum().item()


def should_mark(num_processed: int) -> bool:
    global mark_every, mark_split, mark_index

    if num_processed > mark_split[mark_index][1]:
コード例 #2
0
import matplotlib
import torch
import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
from matplotlib import pyplot
from data_loader import ImagesDataset
from day_night_detector import DayNightDetector
from get_data import get_all_with_field
from test import model_path

writer = SummaryWriter('runs/scene_detection_images')
val_data = get_all_with_field('scene_detection', field_name='train_test', field_value='val')
val_ds = ImagesDataset(val_data)
val_loader = DataLoader(val_ds, batch_size=40, shuffle=True, num_workers=0, pin_memory=True)
dataiter = iter(val_loader)
images, labels, _ = next(dataiter)

if __name__ == '__main__':
    # create grid of images
    images.to(device='cuda')
    labels.to(device='cuda')
    detector = DayNightDetector()
    detector.load_state_dict(torch.load(model_path))

    img_grid = torchvision.utils.make_grid(images)
    # show images
    writer.add_image('images', img_grid)
    writer.add_graph(detector, images)
    writer.close()
    # detector = detector.to(device='cuda')