作者:Rohan Jagtap导读
编译:ronghuaiyang
掌握这些可以更高效的模型的提高开发效率 。

文章插图
TensorFlow 2.x在构建模型和TensorFlow的整体使用方面提供了很多简单性 。那么TF2有什么新变化呢?
- 使用Keras轻松构建模型,立即执行 。
- 可在任何平台上进行强大的模型部署 。
- 强大的研究实验 。
- 通过清理过时的API和减少重复来简化API 。
1(a). tf.data 构建输入管道tf.data提供了数据管道和相关操作的功能 。我们可以建立管道,映射预处理函数,洗牌或批处理数据集等等 。
从tensors构建管道
>>> dataset = tf.data.Dataset.from_tensor_slices([8, 3, 0, 8, 2, 1])>>> iter(dataset).next().numpy()8构建Batch并打乱# Shuffle>>> dataset = tf.data.Dataset.from_tensor_slices([8, 3, 0, 8, 2, 1]).shuffle(6)>>> iter(dataset).next().numpy()0# Batch>>> dataset = tf.data.Dataset.from_tensor_slices([8, 3, 0, 8, 2, 1]).batch(2)>>> iter(dataset).next().numpy()array([8, 3], dtype=int32)# Shuffle and Batch>>> dataset = tf.data.Dataset.from_tensor_slices([8, 3, 0, 8, 2, 1]).shuffle(6).batch(2)>>> iter(dataset).next().numpy()array([3, 0], dtype=int32)把两个Datsets压缩成一个>>> dataset0 = tf.data.Dataset.from_tensor_slices([8, 3, 0, 8, 2, 1])>>> dataset1 = tf.data.Dataset.from_tensor_slices([1, 2, 3, 4, 5, 6])>>> dataset = tf.data.Dataset.zip((dataset0, dataset1))>>> iter(dataset).next()(<tf.Tensor: shape=(), dtype=int32, numpy=8>, <tf.Tensor: shape=(), dtype=int32, numpy=1>)映射外部函数def into_2(num): return num * 2 >>> dataset = tf.data.Dataset.from_tensor_slices([8, 3, 0, 8, 2, 1]).map(into_2)>>> iter(dataset).next().numpy()161(b). ImageDataGenerator这是tensorflow.keras API的最佳特性之一 。ImageDataGenerator能够在批处理和预处理以及数据增强的同时实时生成数据集切片 。生成器允许直接从目录或数据目录中生成数据流 。
ImageDataGenerator中关于数据增强的一个误解是,它向现有数据集添加了更多的数据 。虽然这是数据增强的实际定义,但是在ImageDataGenerator中,数据集中的图像在训练的不同步骤被动态地变换,使模型可以在未见过的有噪数据上进行训练 。
train_datagen = ImageDataGenerator( rescale=1./255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True)在这里,对所有样本进行重新缩放(用于归一化),而其他参数用于增强 。train_generator = train_datagen.flow_from_directory( 'data/train', target_size=(150, 150), batch_size=32, class_mode='binary')我们为实时数据流指定目录 。这也可以使用dataframes来完成 。train_generator = flow_from_dataframe( dataframe, x_col='filename', y_col='class', class_mode='categorical', batch_size=32)
推荐阅读
- 饿了么推荐算法演进及在线学习实践
- “算法时代”的到来!是好是坏?会变成人类的危机吗?
- 每种机器学习算法都可以表示为神经网络
- 漏桶、令牌桶限流算法的Go语言实现
- 什么叫回溯算法,一看就会,一写就废
- JavaScript数组去重的方法有哪些?学会这9招,再也不怕算法题了
- 三个步骤完成强连通分量分解的Kosaraju算法
- 大数据时代,机器学习算法该如何升级?
- 每个算法人员都应该知道的4个超参数调试方法
- 基于聚类的指代消解算法
