print('output image shape:', out_img.shape) d2l.plt.imshow(out_img.asnumpy()) #1x1卷积层采用Xavier随机初始化 net[-1].initialize(init.Constant(bilinear_kernel(num_classes, num_classes, 64))) net[-2].initialize(init=init.Xavier()) #9.10.4-读取数据集 crop_size, batch_size, colormap2label = (320, 480), 1, nd.zeros(256**3) # 32 for i, cm in enumerate(d2l.VOC_COLORMAP): colormap2label[(cm[0] * 256 + cm[1]) * 256 + cm[2]] = i voc_dir = d2l.download_voc_pascal(data_dir='../data') num_workers = 0 if sys.platform.startswith('win32') else 4 train_iter = gdata.DataLoader(d2l.VOCSegDataset(True, crop_size, voc_dir, colormap2label), batch_size, shuffle=True, last_batch='discard', num_workers=num_workers) test_iter = gdata.DataLoader(d2l.VOCSegDataset(False, crop_size, voc_dir, colormap2label), batch_size, last_batch='discard', num_workers=num_workers) #9.10.5-训练模型 print('try_all_gpus') ctx = d2l.try_all_gpus() loss = gloss.SoftmaxCrossEntropyLoss(axis=1) net.collect_params().reset_ctx(ctx)
for i, cm in enumerate(d2l.VOC_COLORMAP): colormap2label[(cm[0] * 256 + cm[1]) * 256 + cm[2]] = i #voc_dir = d2l.download_voc_pascal(data_dir='../data') voc_dir = 'VOCdevkit/VOC2012' num_workers = 0 if sys.platform.startswith('win32') else 4 train_iter = gdata.DataLoader( d2l.VOCSegDataset(True, crop_size, voc_dir, colormap2label), batch_size, shuffle=True, last_batch='discard', num_workers=num_workers) test_iter = gdata.DataLoader( d2l.VOCSegDataset(False, crop_size, voc_dir, colormap2label), batch_size, last_batch='discard', num_workers=num_workers) ctx = d2l.try_all_gpus() loss = gloss.SoftmaxCrossEntropyLoss(axis=1) net.collect_params().reset_ctx(ctx)