数据预处理
图像数据的读取
- image data is 3xMxN 但是imshow的要求是”MxNx3 — RGB (float or uint8 array)”,深度学习tensor的结构也是 MxNxchannel
用np.rollaxis()
或者numpy.moveaxis(a, source, destination)
函数
或者arr.transpose((2, 0, 1)), 其中arr是某个数组
可解决问题 - 打开tiff图像 - gdal包
- 打开图像数据 PIL包或者open-cv包, 一文直观读懂PIL的操作,这里是链接
- 绘制图像 matplotlib
数据预处理以及数据增强问题
- UFLDL Tutorial 对数据预处理进行了简洁的描述
数据切分
123random random.shuffle(a)random.choice(mylist,3)random.sample(the_list, 50)图像归一化 normalize a NumPy array
- 数据增强(Data Augmentation)
- keras自带的图像增强工具 ImageDataGenerator
- Image Augmentation for Deep Learning With Keras
- 深度学习中的Data Augmentation方法和代码实现
- PIL 图像增强(ImageEnhance)模块
包括彩色平衡,对比度,亮度以及锐度的增强
CSDN 这篇博客 有带有图像例子的解读,方便理解
图像切割实践
pytorch问题
内存问题
python进程以ctrl+z杀死,后台内存还占用,以ctrl+c杀死内存释放。
nvidia-smi查看内存占用情况
kill -9 pid 杀死进程
或者sudo nvidia-smi —gpu-reset 释放内存
模型保存
学习过程保存及可视化
pytorch 方法探究
model.eval()Sets the module in evaluation mode.This has any effect only on modules such as Dropout or BatchNorm.
model.train()Sets the module in training mode.This has any effect only on modules such as Dropout or BatchNorm.
防止过拟合问题
过拟合和欠拟合
这次测试精度远低于训练精度
EarlyStopping
交叉验证
- 目的:防止过拟合;求解超参数
- 方法
超参数的求解
CNN超参数优化和可视化技巧详解
随机搜索
网格搜索
可视化卷积神经网络
L1正则和L2正则
BatchNorm 防止Covariance Shift
https://arxiv.org/pdf/1502.03167.pdf论文地址
MLE/MAP/贝叶斯的联系和区别
dropout
测试的时候实际上使用整个网络去预测数据,但是呢dropout的原理呢是先不用某些神经元以及权重,所以呢,一开始的时候,虽然能在训练集上表现很好,全局的模型是没有ready的,所以就必须长时间训练使得模型的每个神经元和权重都被训练一遍。我想应该是这样的道理