1,Pytorch使用tensorboardX可视化
Pytorch使用tensorboardX可视化。超详细!!! - 简书1 引言 我们都知道tensorflow框架可以使用tensorboard这一高级的可视化的工具,为了使用tensorboard这一套完美的可视化工具,未免可以将其应用...https://www.jianshu.com/p/46eb3004becaPyTorch使用tensorboardX - 知乎之前用pytorch是手动记录数据做图,总是觉得有点麻烦。学习了一下tensorboardX,感觉网上资料有点杂,记录一下重点。由于大多数情况只是看一下loss,lr,accu这些曲线,就先总结这些,什么images,audios以后需要再总…https://zhuanlan.zhihu.com/p/35675109
2,torch.backends.cudnn.benchmark = True的作用
设置这个 flag 为 True
,我们就可以在 PyTorch 中对模型里的卷积层进行预先的优化,减少运算速度,也就是在每一个卷积层中测试 cuDNN 提供的所有卷积实现算法,然后选择最快的那个。但不是所有情况下使用该语句都可以达到最好的效果。
第一,了解卷积层的基本定义
- 首先,当然是卷积层本身的参数,常见的包括卷积核大小,stride,dilation,padding ,输出通道的个数等;
- 其次,是输入的相关参数,包括输入的宽和高,输入通道的个数等;
- 最后,还有一些其他的因素,比如硬件平台,输入输出精度、布局等等。
第二,在如下情况不适合使用
- 网络模型一直变,因为网络结构经常变,每次 PyTorch 都会自动来根据新的卷积场景做优化:这次花费了半天选出最合适的算法出来,结果下次你结构又变了,之前就白做优化了。
- 输入的大小发生改变,输入的情况变了,最优的算法不一定适用了(比如有的算法在大尺寸输入情况下速度快),PyTorch 还是会重新寻找最优算法的。注意,这里的 batch size,输入通道,图片大小都不能变。
第三,添加的位置
#在代码开始添加:
torch.backends.cudnn.benchmark = True
3,torch.nn.Conv2d()
参考链接:
https://blog.csdn.net/qq_34243930/article/details/107231539
conv2d的理解:
1,相关参数的理解
通道数:
in_channels:输入通道数,由图片的类型决定,彩色的通道数为3,灰色通道数为1。
out_channels:输出通道数,由过滤器数量决定。
kernel_size:卷积核的大小,长和宽。
【补充:
卷积核和过滤器的区别
-
卷积核就是由长和宽来指定的,是一个二维的概念。其次,相当于是"最标准"的特征采集器。
-
而过滤器是是由长、宽和深度指定的,是一个三维的概念。
-
过滤器可以看做是卷积核的集合。
-
过滤器比卷积核高一个维度——深度。】
-
stride:步长,卷积核一次移动的步数
什么是卷积?
就是卷积核对输入内容进行相应位置的扫描,提取出其中的特征。
2,卷积网络的输入和输出结果
3, 原理
参考链接:
https://blog.csdn.net/weixin_38481963/article/details/109924004