#pytorch
#пыторч
Вопрос:
import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim import torchvision import torchvision.transforms as transforms train_set = torchvision.datasets.MNIST(root = './data/MNIST',train = True,download = True,transform = transfroms.Compose([transfroms.ToTensor()]) print(len(train_set)) # 60000 train_loader = torch.utils.data.DataLoader(train_set, batch_size=100) print(len(train_loader)) # 600
Похоже, что из-за размера пакета длина загрузчика поездов уменьшилась.
Я думаю, что в партии 100 тензоров и одна классификация. Я просто хочу увидеть его элементы или форму. Как я могу это сделать? Также,
### Model Omitted ### model = ConvNet().to(device) criterion = nn.CrossEntropyLoss().to(device) optimizer = torch.optim.Adam(model.parameters(), lr = learning_rate) for epoch in range(5): avg_cost = 0 for data, target in train_loader: data = data.to(device) target = target.to(device) optimizer.zero_grad() hypothesis = model(data) cost = criterion(hypothesis, target) cost.backward() optimizer.step() avg_cost = cost / len(train_loader) print('[Epoch: {:gt;4}] cost = {:gt;.9}'.format(epoch 1, avg_cost))
Я думаю, что обучение за эпоху тренируется с 60 000 тензорами, верно? Тогда я думаю, что avg_cost следует разделить на 60 000, а не на 600(что означает len(train_loader))… Я что-то не так с этим делаю?
Ответ №1:
Вы можете получить одну партию данных о поезде trainloader
, используя приведенный ниже код, и вы можете легко проверить его форму. Я надеюсь, что это поможет вам получить то, что вы хотите.
batch= iter(trainloader) images, labels = batch.next() print(images.shape) # torch.Size([num_samples, in_channels, H, W]) print(labels.shape)
Комментарии:
1. Я вижу его форму. Но как я могу увидеть его структуру и элементы? Я имею в виду, я хочу проверить, например, пакет1, пакет2, пакет3…..(возможно, для пакетов существует 100 тензоров) и элементы в пакетах