利用debug这个工具来分析程序的动态行为。
使用pdb进行调试
if name == ‘main’:
trainloader, testloader, classes = prepare_MNIST()
data_iter = iter(trainloader)
imgs, labels = data_iter.next()
imshow(torchvision.utils.make_grid(imgs, nrow=16))
print(" “.join(”%5s" % classes[labels[j]] for j in range(4)))
if name == ‘main’:
trainloader, testloader, classes = prepare_MNIST()
data_iter = iter(trainloader)
imgs, labels = data_iter.next()
imshow(torchvision.utils.make_grid(imgs, nrow=16))
print(" “.join(”%5s" % classes[labels[j]] for j in range(4)))
convVAE(MNIST数字的
self.encoder = nn.Sequential(
nn.Conv2d(input_channels, 64, kernel_size=4, stride=2, padding=1),
nn.ReLU(), #relu
nn.Conv2d(64, 128, kernel_size=4, stride=2, padding=1),
nn.ReLU(),
Flatten(),
nn.Linear(6272, 1024), #FC
nn.ReLU()
)
self.fc1 = nn.Linear(1024, self.z_dim)
self.fc2 = nn.Linear(1024, self.z_dim)
self.decoder = nn.Sequential(
nn.Linear(self.z_dim, 1024),
nn.ReLU(),
nn.Linear(1024, 6272),
nn.ReLU(),
Unflatten(128, 7, 7),
nn.ReLU(),
nn.ConvTranspose2d(128, 64, kernel_size=4, stride=2, padding=1),
nn.ReLU(),
nn.ConvTranspose2d(64, 1, kernel_size=4, stride=2, padding=1),
nn.Sigmoid()
)
def encode(self, x):
h = self.encoder(x)
mu, logvar = self.fc1(h), self.fc2(h)
return mu, logvar
def decode(self, z):
z = self.decoder(z)
return z