今天我们来聊一聊数据可视化的问题,在这里向大家推荐一个大佬开源的教程,我的可视化的工作也是从他的教程借鉴而来的,再次表达感谢!
开源教程地址:
tensor-yu/PyTorch_Tutorialgithub.comPytorch框架也有自己的可视化软件--Visdom,但是我用着不太习惯,感觉它的API也不太方便,参数设置过于复杂,而且可视化的功能性并不是太强,所以有人就写个库用来将Pytorch中的参数放到tensorboard上面进行可视化,十分方便!
tensorboadX
这相当于一个辅助工具,可以把Pytorch中的参数传递到Tensorboad上面,那么如何进行安装呢?分为三个步骤:
pip install tensorboardX
pip install tensorboard
pip install tensorflow
注意numpy的版本要对应,否则会报错,如果不匹配,那就进行更新或者新建虚拟环境了!
网络训练(Cifar10)
首先,我使用了非官方的代码对Cifar10进行训练,类似于ResNet, 由于Cifar10中的图片尺寸都很小,大约32x32,所以我们对传统的resnet进行了修改,其网络结构如下:
参考于官方的ResNet18并做如下修改:
- 由于像素太小,修改第一个卷积核步长为1,不进行下采样
- 修改通道,让通道变小些
- 删除layer4,不用再继续降采样了
# ResNet
class ResNet(nn.Module):
def __init__(self, block, layers, num_classes = 10): # block为残差模块
super(ResNet, self).__init__()
self.in_channels = 16
self.conv = conv3x3(3, 16)
self.bn = nn.BatchNorm2d(16)
self.relu = nn.ReLU(inplace=True)