实用tensorflow进行数据增强的方法有哪些?给出代码
时间: 2023-11-27 07:05:55 浏览: 65
DCGAN-tensorflow-master生成对抗网络,实现数据的增强和扩充(代码跑通, 替换数据集可直接用)
5星 · 资源好评率100%
TensorFlow提供了许多数据增强技术,包括随机裁剪、随机旋转、随机变换颜色等。下面给出一些代码示例。
1. 随机裁剪
```python
image = tf.image.random_crop(image, [height, width, channels])
```
2. 随机旋转
```python
image = tf.image.rot90(image, k=tf.random_uniform(shape=[], minval=0, maxval=4, dtype=tf.int32))
```
3. 随机翻转
```python
image = tf.image.random_flip_left_right(image)
image = tf.image.random_flip_up_down(image)
```
4. 随机调整亮度、对比度和饱和度
```python
image = tf.image.random_brightness(image, max_delta=0.3)
image = tf.image.random_contrast(image, lower=0.2, upper=1.8)
image = tf.image.random_saturation(image, lower=0.5, upper=1.5)
```
完整代码示例:
```python
import tensorflow as tf
def data_augmentation(image, height, width, channels):
# 随机裁剪
image = tf.image.random_crop(image, [height, width, channels])
# 随机旋转
image = tf.image.rot90(image, k=tf.random_uniform(shape=[], minval=0, maxval=4, dtype=tf.int32))
# 随机翻转
image = tf.image.random_flip_left_right(image)
image = tf.image.random_flip_up_down(image)
# 随机调整亮度、对比度和饱和度
image = tf.image.random_brightness(image, max_delta=0.3)
image = tf.image.random_contrast(image, lower=0.2, upper=1.8)
image = tf.image.random_saturation(image, lower=0.5, upper=1.5)
# 将像素值归一化到[-1, 1]
image = tf.divide(tf.subtract(image, 0.5), 0.5)
return image
```
可以在训练过程中调用此函数对每一批数据进行数据增强。
阅读全文