class SoftmaxRegission(torch.nn.Module):
linear: torch.nn.Linear
def __init__(self, num_features: int, num_classes: int):
super(SoftmaxRegission, self).__init__()
self.linear = torch.nn.Linear(num_features, num_classes)
self.linear.weight.detach().zero_()
self.linear.bias.detach().zero_()
def forward(self, x: torch.Tensor) -> tuple[torch.Tensor, torch.Tensor]:
logits: torch.Tensor = self.linear(x)
probas = F.softmax(logits, dim=1)
return logits, probas
model = SoftmaxRegission(num_features=num_features, num_classes=num_classes)
optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)
torch.manual_seed(random_seed)
def compute_accuracy(model: SoftmaxRegission, data_loader: DataLoader[datasets.MNIST]):
correct_pred: torch.Tensor
correct_pred, num_examples = torch.Tensor(0), 0
for features, targets in data_loader:
features: torch.Tensor = features.view(-1, 28 * 28).to(device)
targets = targets.to(device)
logits, probas = model(features)
_, predicted_labels = torch.max(probas, 1)
num_examples += targets.size(0)
correct_pred += (predicted_labels == targets).sum()
return correct_pred.float() / num_examples * 100
start_time = time.time()
epoch_costs: list[int] = []
for epoch in range(num_epochs):
avg_cost = 0
for batch_idx, (features, targets) in enumerate(train_loader):
features = features.view(-1, 28 * 28).to(device)
targets = targets.to(device)
logits, probas = model(features)
cost = F.cross_entropy(logits, targets)
optimizer.zero_grad()
# Tensor has a callback to upgrade the grad, finally this will change the linear in model
cost.backward()
avg_cost += cost
optimizer.step()
Zum Beispiel so ein Snippet. Vorher denke ich nur, dass Tensor nur ein Wert ist, aber nachdem „cost.backward()“ den Grad in SoftmaxRegission ändert
Ich habe das Dokument bereits auf https://docs.pytorch.org/docs/stable/autograd.html gelesen. Aber ich weiß wirklich, wie Torch so etwas umsetzt. Ich habe CPP- und Rust-Erfahrung, also kann ich darüber nachdenken, ob der Tensor den Zeiger des Modells besitzt oder so etwas wie einen Rückruf, wenn Tensor generiert wird. Ich habe die Python-Quelle des Tensors gelesen, aber so etwas habe ich nicht gefunden, oder habe ich das vielleicht übersehen? Ich habe festgestellt, dass Tensor eine Klasse erweitert, die in einer C-Datei enthalten sein sollte, aber ich bin nicht gut darin, C-Code zu lesen, insbesondere den für Cpython..
# Tensor has a callback to upgrade the grad, finally this will change the linear in model cost.backward() avg_cost += cost
optimizer.step() [/code] Zum Beispiel so ein Snippet. Vorher denke ich nur, dass Tensor nur ein Wert ist, aber nachdem „cost.backward()“ den Grad in SoftmaxRegission ändert Ich habe das Dokument bereits auf https://docs.pytorch.org/docs/stable/autograd.html gelesen. Aber ich weiß wirklich, wie Torch so etwas umsetzt. Ich habe CPP- und Rust-Erfahrung, also kann ich darüber nachdenken, ob der Tensor den Zeiger des Modells besitzt oder so etwas wie einen Rückruf, wenn Tensor generiert wird. Ich habe die Python-Quelle des Tensors gelesen, aber so etwas habe ich nicht gefunden, oder habe ich das vielleicht übersehen? Ich habe festgestellt, dass Tensor eine Klasse erweitert, die in einer C-Datei enthalten sein sollte, aber ich bin nicht gut darin, C-Code zu lesen, insbesondere den für Cpython..
Ich habe zwei Funktionen (i) getKglobal und (ii) getKglobal_Sp. Allerdings ist die Zeit für die Sparse-Funktion etwa fünfmal langsamer als für die Fullmatrix-Formulierung. Ich verstehe, dass es...
Ich habe ein Problem mit meinem Slurm -Code (ich bin ein ziemlicher Neuling). Task2, ..., Task28, mit Jobs parallel. Python -Funktionen werden nacheinander aufgerufen (nennen wir sie Py1.py, Py2.py,...
Egal wie ich versucht habe, mein CSS zu ändern. Ich bin nicht in der Lage, 5 Kategorien in .Content trotz des Anzeigens: Flex Eigenschaft. Genau wie die Eigenschaft Flex bestellt sie? Ich bin in der...