机器学习基本过程(之一)

目录

 

基本过程

定义模型

训练模型

预测

采用tensorflow不同接口的实现方法

  使用Keras

使用 Estimator 构建模型 

  tensorflow低阶api 

 使用Keras

  1. 定义模型

1.继承 tf.keras.Model,定义网络每一层。

import tensorflow as tf

class MyModel(tf.keras.Model):

  def __init__(self):
    super(MyModel, self).__init__()
    self.dense1 = tf.keras.layers.Dense(4, activation=tf.nn.relu)
    self.dense2 = tf.keras.layers.Dense(5, activation=tf.nn.softmax)
    self.dropout = tf.keras.layers.Dropout(0.5)

  def call(self, inputs, training=False):
    x = self.dense1(inputs)
    if training:
      x = self.dropout(x, training=training)
    return self.dense2(x)

model = MyModel()

                 2.定义tf.keras.models.Sequential的对象。(适合于串行网络),模型是层的简单堆叠,无法表示任意模型。

# Optionally, the first layer can receive an `input_shape` argument:
model = Sequential()
model.add(Dense(32, input_shape=(500,)))
# Afterwards, we do automatic shape inference:
model.add(Dense(32))

网络的每一层可以用tf.keras.layers.Layer包中定义的层。模型从输入层开始,逐个添加每一层。

2.训练模型 

模型还需要再进行几项设置才可以开始训练。这些设置会添加到模型的编译步骤:

  • 损失函数 - 衡量模型在训练期间的准确率。我们希望尽可能缩小该函数,以“引导”模型朝着正确的方向优化。
  • 优化器 - 根据模型看到的数据及其损失函数更新模型的方式。
  • 指标 - 用于监控训练和测试步骤。以下示例使用准确率,即图像被正确分类的比例。
model.compile(optimizer=tf.train.AdamOptimizer(),
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

训练神经网络模型需要执行以下步骤:

  1. 将训练数据馈送到模型中,在本示例中为 train_images 和 train_labels 数组。
  2. 模型学习将图像与标签相关联。
  3. 我们要求模型对测试集进行预测,在本示例中为 test_images 数组。我们会验证预测结果是否与 test_labels 数组中的标签一致。 
model.fit(train_images, train_labels, epochs=5, validation_data=vd)

3.预测

predictions = model.predict(test_images)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值