Esempio n. 1
0
mean = (255 - 0) / 2  # images contain values in range [0, 255]
training_images = (training_images.astype(np.float32) - mean) / mean
training_images = torch.tensor(training_images, device=device)

# Transform training labels to tensor
training_labels = torch.tensor(training_labels,
                               device=device,
                               dtype=torch.int64)

# Set up TensorBoard
writer = SummaryWriter(TENSORBOARD_DIR)
writer.add_graph(neuralnet, training_images)

# Define loss function and optimizer
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(neuralnet.parameters(), lr=LEARNING_RATE)

print('Start training...')
start_time_training = timer()
for epoch in range(NUM_EPOCHS):
    start_time_epoch = timer()
    average_loss = 0.0

    # 100 mini-batch updates per epoch
    for i in range(100):
        random_indexes = np.random.choice(len(training_images), MINBATCH)
        minbatch = training_images[random_indexes]
        minbtach_labels = training_labels[random_indexes]

        optimizer.zero_grad()