如何使用 Python 和 TensorFlow 训练线性模型?
TensorFlow 是 Google 提供的一个机器学习框架。它是一个开源框架,与 Python 结合使用,可以实现算法、深度学习应用程序等等。它用于研究和生产目的。
可以使用以下代码行在 Windows 上安装 'tensorflow' 包:
pip install tensorflow
张量 (Tensor) 是 TensorFlow 中使用的一种数据结构。它有助于连接数据流图中的边。这个数据流图被称为“数据流图”。张量只不过是多维数组或列表。它们可以使用三个主要属性来标识:
秩 (Rank):它表示张量的维度。可以理解为张量的阶数或已定义张量的维度数。
类型 (Type):它表示与张量元素关联的数据类型。它可以是一维、二维或 n 维张量。
形状 (Shape):它一起表示行数和列数。
我们将使用 Jupyter Notebook 来运行代码。可以使用 'pip install tensorflow' 在 Jupyter Notebook 上安装 TensorFlow。
以下是代码:
示例
import tensorflow as tf A = tf.get_variable("A", initializer=tf.constant([0.1])) b = tf.get_variable("b", initializer=tf.constant([0.0])) x = tf.placeholder(tf.float32) y = tf.placeholder(tf.float32) my_model = A * x + b lossVal = tf.reduce_sum(tf.square(my_model − y)) my_optimizer = tf.train.GradientDescentOptimizer(0.01) train = my_optimizer.minimize(lossVal) x_train = [1.0, 2.5, 3.8, 4.9] y_train = [1.7, 3.0, 6.6, 6.8] with tf.Session() as sess: sess.run(tf.global_variables_initializer()) for i in range(1000): sess.run(train, {x:x_train, y:y_train}) if i%100==0: l_cost = sess.run(lossVal, {x:x_train, y:y_train}) print(f"i: {i} cost: {l_cost}") l_A, l_b, l_cost = sess.run([A, b, lossVal], {x:x_train, y:y_train}) print(f"A: {l_A} b: {l_b} cost: {l_cost}")
输出
i: 0 cost: 1.7808341979980469 i: 100 cost: 1.6947696208953857 i: 200 cost: 1.691591501235962 i: 300 cost: 1.6913959980010986 i: 400 cost: 1.6913844347000122 i: 500 cost: 1.6913840770721436 i: 600 cost: 1.6913843154907227 i: 700 cost: 1.691383719444275 i: 800 cost: 1.6913838386535645 i: 900 cost: 1.6913845539093018 A: [1.4599526] b: [0.07214472] cost: 1.6913845539093018
解释
导入所需的包并为其提供别名,以便于使用。
定义一个名为 'my_model' 的变量,其中存储线性模型的通用格式。
使用 'GradientDescentOptimizer' 训练此线性模型。
训练过程旨在使损失最小化,这通过 'minimize' 方法来确保。
创建两个列表来存储训练数据。
对数据进行训练,并在控制台上显示预测值。
广告