Tensorflow基础教程7:关于Keras Pipeline

在开始学习之前推荐大家可以多在  FlyAI竞赛服务平台 多参加训练和竞赛,以此来提升自己的能力。FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台。每周免费提供项目开源算法样例,支持算法能力变现以及快速的迭代算法模型。

目录

  Keras Sequential/Functional API 模式建立模型

  使用 Keras Model 的 `compile` 、 `fit` 和 `evaluate` 方法训练和评估模型

  前面几章的示例均使用了 Keras 的 Subclassing API 建立模型,即对 tf.keras.Model 类进行扩展以定义自己的新模型,同时手工编写了训练和评估模型的流程。这种方式灵活度高,且与其他流行的深度学习框架(如 PyTorch、Chainer)共通,是推荐的。不过在很多时候,我们只需要建立一个结构相对简单和典型的神经网络(比如上文中的 MLP 和 CNN),并使用常规的手段进行训练。这时,Keras 也给我们提供了另一套更为简单高效的内置方法来建立、训练和评估模型。

  Keras Sequential/Functional API 模式建立模型

  最典型和常用的神经网络结构是将一堆层按特定顺序叠加起来,那么,我们是不是只需要提供一个层的列表,就能由 Keras 将它们自动首尾相连,形成模型呢?Keras 的 Sequential API 正是如此。通过向 tf.keras.models.Sequential() 提供一个层的列表,就能快速地建立一个 tf.keras.Model 模型并返回:

  model = tf.keras.models.Sequential([

  tf.keras.layers.Flatten(),

  tf.keras.layers.Dense(100, activation=tf.nn.relu),

  tf.keras.layers.Dense(10),

  tf.keras.layers.Softmax()

  ])

  不过,这种层叠结构并不能表示任意的神经网络结构。为此,Keras 提供了 Functional API,帮助我们建立更为复杂的模型,例如多输入 / 输出或存在参数共享的模型。其使用方法是将层作为可调用的对象并返回张量(这点与之前章节的使用方法一致),并将输入向量和输出向量提供给 tf.keras.Model 的 inputs 和 outputs 参数,示例如下:

  inputs = tf.keras.Input(shape=(28, 28, 1))

  x = tf.keras.layers.Flatten()(inputs)

  x = tf.keras.layers.Dense(units=100, activation=tf.nn.relu)(x)

  x = tf.keras.layers.Dense(units=10)(x)

  outputs = tf.keras.layers.Softmax()(x)

  model = tf.keras.Model(inputs=inputs, outputs=outputs)

  使用 Keras Model 的 compile 、 fit 和 evaluate 方法训练和评估模型

  当模型建立完成后,通过 tf.keras.Model 的 compile 方法配置训练过程:

  model.compile(

  optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),

  loss=tf.keras.losses.sparse_categorical_crossentropy,

  metrics=[tf.keras.metrics.sparse_categorical_accuracy]

  )大连人流医院哪家好 http://www.dlwkw.com/

  tf.keras.Model.compile 接受 3 个重要的参数:

  oplimizer :优化器,可从 tf.keras.optimizers 中选择;

  loss :损失函数,可从 tf.keras.losses 中选择;

  metrics :评估指标,可从 tf.keras.metrics 中选择。

  接下来,可以使用 tf.keras.Model 的 fit 方法训练模型:

  model.fit(data_loader.train_data, data_loader.train_label, epochs=num_epochs, batch_size=batch_size)

  tf.keras.Model.fit 接受 5 个重要的参数:

  x :训练数据;

  y :目标数据(数据标签);

  epochs :将训练数据迭代多少遍;

  batch_size :批次的大小;

  validation_data :验证数据,可用于在训练过程中监控模型的性能。

  Keras 支持使用 tf.data.Dataset 进行训练,详见 tf.data 。

  最后,使用 tf.keras.Model.evaluate 评估训练效果,提供测试数据及标签即可:

 print(model.evaluate(data_loader.test_data, data_loader.test_label))

更多精彩内容请访问FlyAI-AI竞赛服务平台;为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台;每周免费提供项目开源算法样例,支持算法能力变现以及快速的迭代算法模型。

挑战者,都在FlyAI!!!

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值