我们学习什么都是学习一个最简单例子开始,有时就叫hello world。
我们学basic, c,c++,python,最简单的程序就是打印显示一个hello world。
我这里参考 https://codelabs.developers.google.com/codelabs/tensorflow-lab1-helloworld
写一个最简单的tensorflow 程序,演示其基本结构。
在开始本文前,你应该在python 上安装好了tensorflow,没有的话先完成好:tensorflow 2 的安装
1:前言
在开始代码前,先理解下机器学习tensorfow 2 的基本概念。一般编程就是输入数据,根据规则,得出结果数据。机器学习有什么不同呢?有输入数据,也有输出数据,我们要寻找规则。然后根据规则预测新的数据结果。
2:机器学习
传统编程:
机器学习:
机器学习目的:
3:代码
最简代码的目的是根据下面数据,得出规则。
X: | -1 | 0 | 1 | 2 | 3 | 4 |
Y: | -2 | 1 | 4 | 7 | 10 | 13 |
输入基本库
import tensorflow as tf
import numpy as np
from tensorflow import keras
定义和编译一个神经网络
最简单的神经网路,1层,1个神经元,一个输入(sharp)
model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])])
接下来我们将编写代码来编译我们的神经网络。 当我们这样做时,我们必须指定两个函数,一个“loss”和一个“optimizer”。
`mean squared error` 作为 loss `stochastic gradient descent` (sgd) 作为 optimizer。不懂数学意义也没关系。
model.compile(optimizer='sgd', loss='mean_squared_error')
提供数据
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)
培训神经网络
model.fit(xs, ys, epochs=500)
使用模型,预测数据
print(model.predict([10.0]))
程序介绍完成了,给个完整代码
# 导入库
import tensorflow as tf
import numpy as np
from tensorflow import keras
#定义和编译一个神经网络
model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])])
# 编译 并指定 loss optimizer
model.compile(optimizer='sgd', loss='mean_squared_error')
#提供数据
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)
#培训
model.fit(xs, ys, epochs=500)
#预测
print(model.predict([10.0]))
运行结果
左边代码,右边运行结果,最后预测值为: 30.996,非常接近线性预估值31