MCPcopy Create free account
hub / github.com/NVIDIA/TensorRT / learn

Method learn

samples/python/network_api_pytorch_mnist/model.py:83–127  ·  view source on GitHub ↗
(self, num_epochs=2)

Source from the content-addressed store, hash-verified

81
82 # Train the network for one or more epochs, validating after each epoch.
83 def learn(self, num_epochs=2):
84 # Train the network for a single epoch
85 def train(epoch):
86 self.network.train()
87 optimizer = optim.SGD(self.network.parameters(), lr=self.learning_rate, momentum=self.sgd_momentum)
88 for batch, (data, target) in enumerate(self.train_loader):
89 data, target = Variable(data), Variable(target)
90 optimizer.zero_grad()
91 output = self.network(data)
92 loss = F.nll_loss(output, target)
93 loss.backward()
94 optimizer.step()
95 if batch % self.log_interval == 0:
96 print(
97 "Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}".format(
98 epoch,
99 batch * len(data),
100 len(self.train_loader.dataset),
101 100.0 * batch / len(self.train_loader),
102 loss.data.item(),
103 )
104 )
105
106 # Test the network
107 def test(epoch):
108 self.network.eval()
109 test_loss = 0
110 correct = 0
111 for data, target in self.test_loader:
112 with torch.no_grad():
113 data, target = Variable(data), Variable(target)
114 output = self.network(data)
115 test_loss += F.nll_loss(output, target).data.item()
116 pred = output.data.max(1)[1]
117 correct += pred.eq(target.data).cpu().sum()
118 test_loss /= len(self.test_loader)
119 print(
120 "\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\n".format(
121 test_loss, correct, len(self.test_loader.dataset), 100.0 * correct / len(self.test_loader.dataset)
122 )
123 )
124
125 for e in range(num_epochs):
126 train(e + 1)
127 test(e + 1)
128
129 def get_weights(self):
130 return self.network.state_dict()

Callers 1

mainFunction · 0.95

Calls 2

trainFunction · 0.85
testFunction · 0.85

Tested by

no test coverage detected