TensorFlow(keras)入门课程--01 机器学习的Hello World
发布日期:2021-06-29 15:45:25 浏览次数:2 分类:技术文章

本文共 3022 字,大约阅读时间需要 10 分钟。

目录:

  • 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 tfimport numpy as npfrom 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/506/6 [==============================] - 0s 18ms/sample - loss: 26.1844Epoch 2/506/6 [==============================] - 0s 412us/sample - loss: 20.6133Epoch 3/506/6 [==============================] - 0s 328us/sample - loss: 16.2300Epoch 4/506/6 [==============================] - 0s 246us/sample - loss: 12.7812Epoch 5/506/6 [==============================] - 0s 248us/sample - loss: 10.0675Epoch 45/506/6 [==============================] - 0s 414us/sample - loss: 0.0271Epoch 46/506/6 [==============================] - 0s 331us/sample - loss: 0.0264Epoch 47/506/6 [==============================] - 0s 331us/sample - loss: 0.0258Epoch 48/506/6 [==============================] - 0s 248us/sample - loss: 0.0252Epoch 49/506/6 [==============================] - 0s 248us/sample - loss: 0.0246Epoch 50/506/6 [==============================] - 0s 165us/sample - loss: 0.0240

5.使用模型

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

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

转载地址:https://codingchaozhang.blog.csdn.net/article/details/90717918 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:TensorFlow(keras)入门课程--02 计算机视觉的介绍
下一篇:机器学习算法之多项式回归

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月12日 02时44分49秒