jaybo

Results 66 comments of jaybo

# 调参【荐】 - [1] [【长文】CNN调优总结](https://mp.weixin.qq.com/s/LBAbNPh_WK93IjqwZrYNig) - [2] [笔记之Troubleshooting Deep Neural Networks - 知乎](https://zhuanlan.zhihu.com/p/89566632) - [3] [你有哪些deep learning(rnn、cnn)调参的经验?](https://mp.weixin.qq.com/s/83snbei8T8p296mBcEjeoQ) - [4] [深度学习调参有哪些技巧?](https://mp.weixin.qq.com/s/T3IsIkUyNF1N0gShtcyJKA) - [5] [cnn结构设计技巧-兼顾速度精度与工程实现(持续更新) - 知乎](https://zhuanlan.zhihu.com/p/100609339)【荐】 - [6] [构建深度神经网络,我有20条「不成熟」的小建议](https://mp.weixin.qq.com/s/UYcGcVIqcqBW2PeZ2wd0Gw) - [7]...

## 模型压缩 - [一文读懂模型压缩](https://mp.weixin.qq.com/s/tFIA90bF2RkmXdYPdxGRNw) - Pruning(修剪): 因为神经网络很多权重几乎为0,这类参数作用不大,部分参数删掉也不影响模型预测效果 - Weight Factorization(权重分解):权重矩阵可以进行低秩矩阵分解,即low-rank matrix factorization,从而使得一些参数为0 - Quantization(削减精度):能用float32,不用float64;能用int,不用float - Weight Sharing(共享权重):很多layer的参数可以共享,没必要用太多参数

# [解决分类样本不平衡问题](https://blog.csdn.net/chduan_10/article/details/81321621) **样本不平衡会导致出现以下的问题:** (1)少数类所包含的信息很有限,难以确定少数类数据的分布,即难以在内部挖掘规律,造成少数类的识别率低; (2)很多分类算法采用分治法,样本空间的逐渐划分会导致数据碎片问题,这样只能在各个独立的子空间中寻找数据的规律,对于少数类来说每个子空间中包含了很少的数据信息,一些跨空间的数据规律就不能被挖掘出来。 (3)不恰当的归纳偏置系统在存在不确定时往往倾向于把样本分类为多数类。 研究表明,在某些应用下,1∶35的比例就会使某些分类方法无效,甚至1∶10的比例也会使某些分类方法无效。 **根据个人经验,非平衡数据集的处理与建模,主要可以从一下几个方面进行考虑:** 1、收集更多的数据。很多时候多收集数据,这是最容易被忽略的方法。 2、过采样。抽样处理不平衡数据的最常用方法,基本思想就是通过改变训练数据的分布来消除或减小数据的不平衡。通过增加少数类样本来提高少数类的分类性能 ,最简单的办法是简单复制少数类样本,缺点是可能导致过拟合,没有给少数类增加任何新的信息。改进的过抽样方法通过在少数类中加入随机高斯噪声或产生新的合成样本等方法。 3、欠采样。通过减少多数类样本来提高少数类的分类性能,最简单的方法是通过随机地去掉一些多数类样本来减小多数类的规模,缺点是会丢失多数类的一些重要信息,不能够充分利用已有的信息。 4、从算法层面所考虑的解决方案 (a) 重构训练集的方法。不改变已有算法,而是根据样本的不同错分代价给训练集中的每一个样本赋一个权值,接着按权重对原始样本集进行重构。 (b) 引入代价敏感因子,设计出代价敏感的分类算法。通常对小样本赋予较高的代价,大样本赋予较小的代价,期望以此来平衡样本之间的数目差异。 (c) 用bagging/ boosting/ ensemble等模型平均的方法。 (d) 评价模型的方法。用confusion matrix, AUC/ROC等方法来评估模型。 5、特征选择 样本数量分布很不平衡时,特征的分布同样会不平衡。尤其在文本分类问题中,在大类中经常出现的特征,也许在稀有类中根本不出现。因此,根据不平衡分类问题的特点,选取最具有区分能力的特征,有利于提高稀有类的识别率

## 使用 Python3 + OpenCV 时,遇到读取/写出中文路径的图片的问题 解决方法: 1、读取 imread ``` python def cv_imread(file_path): cv_img = cv2.imdecode(np.fromfile(file_path, dtype=np.uint8), -1) return cv_img ``` 通过numpy读取文件,再编码为cv2的图片对象,避免了OpenCV不支持中文路径的问题。调用时,替换cv2.imread即可: ``` python # img = cv2.imread(curimg_path) img =...

- [Keras vs tf.keras: 在TensorFlow 2.0中有什么区别? - 知乎](https://zhuanlan.zhihu.com/p/89017996)

[CNN的全连接层已过时?全局平均池化(GAP)了解一下-不念](https://www.bunian.cn/so/key/CNN%E7%9A%84%E5%85%A8%E8%BF%9E%E6%8E%A5%E5%B1%82%E5%B7%B2%E8%BF%87%E6%97%B6%E5%85%A8%E5%B1%80%E5%B9%B3%E5%9D%87%E6%B1%A0%E5%8C%96GAP%E4%BA%86%E8%A7%A3%E4%B8%80%E4%B8%8B%E5%88%80CSDN%E5%8D%9A%E5%AE%A2) 全连接层将卷积层展开成向量之后不还是要针对每个feature map进行分类,而GAP的思路就是将上述两个过程合二为一,一起做了。如图所示: 由此就可以比较直观地说明了。这两者合二为一的过程我们可以探索到GAP的真正意义是:对整个网路在结构上做正则化防止过拟合。其直接剔除了全连接层中黑箱的特征,直接赋予了每个channel实际的内别意义。 实践证明其效果还是比较可观的,同时**GAP可以实现任意图像大小的输入。但是值得我们注意的是,使用gap可能会造成收敛速度减慢。** global average pooling 与 average pooling 的差别就在 **"global"** 这一个字眼上。global 与 local 在字面上都是用来形容 pooling 窗口区域的。 local 是取 feature map 的一个子区域求平均值,然后滑动这个子区域; **global 显然就是对整个 feature map 求平均值了**。 ---...

## Ubuntu 下安装 tensorflow-gpu、keras、pytorch 参考: - 【1】[Ubuntu18.04深度学习环境配置(简易方式)](https://mp.weixin.qq.com/s/eySIAD6zAn5pAQFJ-YGB7g) 【荐,按照这个进行,很简单】 注意:【1】中代码有个问题,就是这句: ``` sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-devlibgl1-mesa-glx libglu1-mesa libglu1-mesa-dev ``` 代码中间有命令连在一起,需要将空格打印出来。换成如下: ``` sudo apt-get install  freeglut3-dev build-essential libx11-dev libxmu-dev...

# 系列教程 - [机器学习理论若干问题 · 语雀](https://www.yuque.com/7125messi/rt18xv)

[用卷积进行下采样和池化下采样的区别是什么? - 知乎](https://www.zhihu.com/question/307839910)

[CNN真的需要下采样(上采样)吗? - 知乎](https://zhuanlan.zhihu.com/p/94477174) 在常见的卷积神经网络中,采样几乎无处不在,以前是max_pooling,现在是strided卷积。 以vgg网络为例,里面使用到了相当多的max_pooling 。。。。。。 以前,我们在分类网络的最后几层使用fc,后来fc被证明参数量太大泛化性能不好,被global average pooling替代掉了,最早出现在network in network中 ![image](https://user-images.githubusercontent.com/25930007/70375330-8b594300-1937-11ea-9769-627640cfb347.png) 从此,分类网络的范式变为,Relu已经被融合在conv和deconv里面 ``` xml Input-->Conv-->DownSample_x_2-->Conv-->DownSample_x_2-->Conv-->DownSample_x_2-->GAP-->Conv1x1-->Softmax-->Output ``` 而分割网络的范式变为 ``` xml Input-->Conv-->DownSample_x_2-->Conv-->DownSample_x_2-->Conv-->DownSample_x_2-->Deconv_x_2-->Deconv_x_2-->Deconv_x_2-->Softmax-->Output ```