栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python学习记录 如何使用TensorFlow

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python学习记录 如何使用TensorFlow

如何使用TensorFlow

TensorFlow的使用分为下面几步

  1. 先定义训练的数据集
  2. 定义输入输出
  3. 定义计算图
  4. 定义损失函数
  5. 训练的过程

好了,你已经学会怎么使用TensorFlow,现在来试着写一个简单的线性回归吧!

目标

实现线性回归方程:y = a*x+b

首先先导入包,使用V1的版本
import numpy as np
import matplotlib.pyplot as plt
try:
    import tensorflow.compat.v1 as tf
    tf.disable_v2_behavior()
except:
   import tensorflow as tf
定义训练数据集

定义x函数为-1到1,间距100

trainX = np.linspace(-1,1,100)

加入噪声,均值为0,方差为0.05,形状和trainX一样

noise = np.random.normal(0,0.05,trainX.shape)

定义y函数为线性函数,同时添加一些噪声数据

trainY = 4*trainX+10+noise
训练集定义结束,开始定义输入输出

定义输入值,输入结构的输入行数不固定

xs=tf.placeholder(tf.float32)
ys=tf.placeholder(tf.float32)

定义输出值 a ,b值为浮点型名叫a b

a = tf.Variable(0.0,name="a")
b = tf.Variable(0.0,name="a")
输入输出定义完成后,开始定义计算图

这次计算图是个线性方程

y = a*xs+b
接着定义损失函数,让损失值在一定的区间内
loss = tf.square(y-ys)
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(loss)#设置反向传播算法
最后可以创建会话,开始训练
with tf.Session() as sess:
    sess.run(tf.initialize_all_variables())
    plt.ion()  # 打开互交模式
    for i in range(10):
        for (X,Y) in zip(trainX,trainY):
            _,w_value,b_value = sess.run([train_step,w,b],feed_dict={xs:X,ys:Y})
        print("step:{},w:{},b:{}".format(i+1,w_value,b_value))

        plt.plot(trainX,trainY,'+')
        plt.plot(trainX,w.eval()*trainX+b.eval())
        # 暂停时间
        plt.pause(0.5)
运行结果

完整代码
import numpy as np
import matplotlib.pyplot as plt
# 首先先导入包,使用V1的版本
try:
    import tensorflow.compat.v1 as tf
    tf.disable_v2_behavior()
except:
   import tensorflow as tf
# 定义训练数据集
trainX = np.linspace(-1,1,100)
noise = np.random.normal(0,0.05,trainX.shape)
trainY = 4*trainX+10+noise
# 定义输入输出
xs=tf.placeholder(tf.float32)
ys=tf.placeholder(tf.float32)
a = tf.Variable(0.0,name="a")
b = tf.Variable(0.0,name="a")
# 定义计算图
y = a*xs+b
loss = tf.square(y-ys)
# 定义损失函数
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(loss)#设置反向传播算法
# 创建会话,开始训练
with tf.Session() as sess:
    sess.run(tf.initialize_all_variables())
    plt.ion()  # 打开互交模式
    for i in range(10):
        for (X,Y) in zip(trainX,trainY):
            _,a_value,b_value = sess.run([train_step,a,b],feed_dict={xs:X,ys:Y})
        print("step:{},a:{},b:{}".format(i+1,a_value,b_value))

        plt.plot(trainX,trainY,'+')
        plt.plot(trainX,a.eval()*trainX+b.eval())
        # 暂停时间
        plt.pause(0.5)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/879585.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号