Stanford CS231n实践笔记(课时22卷积神经网络工程实践技巧与注意点 cnn in practise 上)

时间:2023-02-08 23:57:42

本课主要2个实践内容:

1、keras中数据集丰富,从数据集中提取更多特征(Data augmentation)
2、迁移学习(Tranform learning)

代码:https://github.com/jsxyhelu/DateSets
1、keras中数据集丰富,从数据集中提取更多特征(Data augmentation)
keras是比较现代化的DL工具,所以这方面的功能都是具备的。这里首先将相关知识进行整理,然后将例子进行实现,特别注重结果的展示。
具体内容包括:
  • 旋转 | 反射变换(Rotation/reflection): 随机旋转图像一定角度; 改变图像内容的朝向;
  • 翻转变换(flip): 沿着水平或者垂直方向翻转图像;
  • 缩放变换(zoom): 按照一定的比例放大或者缩小图像;
  • 平移变换(shift): 在图像平面上对图像以一定方式进行平移;
  • 可以采用随机或人为定义的方式指定平移范围和平移步长, 沿水平或竖直方向进行平移. 改变图像内容的位置;
  • 尺度变换(scale): 对图像按照指定的尺度因子, 进行放大或缩小; 或者参照SIFT特征提取思想, 利用指定的尺度因子对图像滤波构造尺度空间. 改变图像内容的大小或模糊程度;
  • 对比度变换(contrast): 在图像的HSV颜色空间,改变饱和度S和V亮度分量,保持色调H不变. 对每个像素的S和V分量进行指数运算(指数因子在0.25到4之间), 增加光照变化;
  • 噪声扰动(noise): 对图像的每个像素RGB进行随机扰动, 常用的噪声模式是椒盐噪声和高斯噪声;

    使用的函数为:

Stanford CS231n实践笔记(课时22卷积神经网络工程实践技巧与注意点 cnn in practise 上)
参数非常多,用以生成一个batch的图像数据,支持实时数据提升。训练时该函数会无限生成数据,直到达到规定的epoch次数为止;那么在训练的时候肯定是需要结合fit_generate来使用,正好是最近研究的。
主要方法:
a、,
)
)

):
):
x_batch = *i) + j
plt.subplot(, , idx+)
plt.imshow(x_batch[]/)
x_batch.shape
plt.show()