TensorFlow(keras)入门课程--01 机器学习的Hello World

博客围绕TensorFlow入门展开,介绍了机器学习的应用场景,如健身跟踪活动识别系统中确定高尔夫活动。阐述了机器学习与传统编程的不同,即提供答案和数据让机器推断规则。还讲解了创建第一个机器学习模型,包括导包、定义编译网络、提供数据,最后介绍了训练和使用模型。
部署运行你感兴趣的模型镜像

目录:

  • 1 简介
  • 2 什么是机器学习
  • 3 创建第一个机器学习模型
  • 4 训练神经网络
  • 5 模型预测

1 简介

请考虑以下问题:您正在构建一个健身跟踪活动识别系统。您可以访问一个人的移动速度,并尝试基于速度推测其活动:

if(speed<4){ status=WALKING; }

将此扩展为另一个条件运行:

if(speed<4){ status=WALKING; } else { status=RUNNING; }

在最终条件下,您可以类似的检测骑行:

if(speed<4){ status=WALKING; } else if(speed<12){ status=RUNNING; } else { status=BIKING; }

那么,考虑像高尔夫这样的活动会发生什么?突然间,如何创建规则确定活动就不那么明显了。

// Now what?

编写一个能够为我们打高尔夫活动的程序(用代码表示)是非常困难的。所以你会怎么样?这就是机器学习用来解决问题的地方!

2 什么是机器学习?

在上一节中,我们遇到了一个问题,在尝试确定用户的高尔夫活动时,在编写代码时遇到困难。

考虑以传统方式构建应用程序,如下图所示:

我们用编程语言表达规则,这些操作对数据其作用,程序提供答案。

而通过机器学习检测此活动状态的过程非常相似,但输入与输出不同:

我们不是试图定义规则并用编程语言来表达它们,而是提供答案(通常称为标签)以及数据,机器将推断出确定答案与数据之间的关系的规则。例如,我们的活动检测场景内在机器学习环境中可能如下图所示:

3 创建第一个机器学习模型

考虑以下几组数字,你能看出它们之间的关系吗?

在这里插入图片描述
当你看到它们时,你看你会注意到,当你从左向右阅读时,X值增加1,相应的Y值增加3,得到Y=3X+1的关系。

现在让我们来看看如何通过训练神经网络来完成上述任务。

导包

import tensorflow as tf
import numpy as np
from tensorflow import keras

定义和编译神经网络

# 定义神经网络
model = tf.keras.Sequential([
    keras.layers.Dense(units=1,input_shape=[1])
])
WARNING:tensorflow:From D:\software\Anaconda\anaconda\lib\site-packages\tensorflow\python\ops\resource_variable_ops.py:435: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
#编译神经网络 定义 优化器 和 损失函数
model.compile(optimizer="sgd",loss="mean_squared_error")
WARNING:tensorflow:From D:\software\Anaconda\anaconda\lib\site-packages\tensorflow\python\keras\utils\losses_utils.py:170: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.cast instead.

提供数据

xs = np.array([-1.0,0.0,1.0,2.0,3.0,4.0],dtype=float)
ys = np.array([-2.0,1.0,4.0,7.0,10.0,13.0],dtype=float)

4 训练神经网络

model.fit(xs,ys,epochs=50)
WARNING:tensorflow:From D:\software\Anaconda\anaconda\lib\site-packages\tensorflow\python\ops\math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.cast instead.
Epoch 1/50
6/6 [==============================] - 0s 18ms/sample - loss: 26.1844
Epoch 2/50
6/6 [==============================] - 0s 412us/sample - loss: 20.6133
Epoch 3/50
6/6 [==============================] - 0s 328us/sample - loss: 16.2300
Epoch 4/50
6/6 [==============================] - 0s 246us/sample - loss: 12.7812
Epoch 5/50
6/6 [==============================] - 0s 248us/sample - loss: 10.0675

Epoch 45/50
6/6 [==============================] - 0s 414us/sample - loss: 0.0271
Epoch 46/50
6/6 [==============================] - 0s 331us/sample - loss: 0.0264
Epoch 47/50
6/6 [==============================] - 0s 331us/sample - loss: 0.0258
Epoch 48/50
6/6 [==============================] - 0s 248us/sample - loss: 0.0252
Epoch 49/50
6/6 [==============================] - 0s 248us/sample - loss: 0.0246
Epoch 50/50
6/6 [==============================] - 0s 165us/sample - loss: 0.0240


<tensorflow.python.keras.callbacks.History at 0x1b8067055f8>

5.使用模型

现在,我们已经有了一个经过训练的模型来表示X和Y的关系,现在可以使用这个model.predict方法来找出以前未知的数。例如,如果X=10,那么Y=?

print(model.predict([10.0]))
[[31.397823]]

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值