Tensorflow之多元线性回归模型

  1. 创建一个多元线性回归模型
  2. 采用向量的方式定义变量
  3. git 仓库地址git@github.com:RonnySun/tf-tutorials.git
import tensorflow as tf 
import numpy as np  
#初始化训练数据,2维数据结构,三个变量,训练集一共有6组
#这里重点是把所有数据的shape搞对,不然在进行矢量乘法时会出问题
x_org = np.random.rand(6,3)
W_org = np.array([[1],[2],[3]])
b_org = 4
y_org = np.add(np.matmul(x_org,W_org),b_org)
#Y=W1*X1+W2*X2+W3*X3+b
#print(x_org,W_org,y_org)
#这里主要是统一所有变量的数据类型
tf.cast(x_org,tf.float32)
tf.cast(W_org,tf.float32)
tf.cast(x_org,tf.float32)
tf.cast(b_org,tf.float32)
#占位符,最好习惯吧shape表示出来,养成好习惯
X = tf.placeholder(tf.float32,[None,3])
Y = tf.placeholder(tf.float32,[None,1])
#初始化变量,关键是注意shape
W = tf.Variable(tf.random_normal([3,1],name="Weight"))
b = tf.Variable(tf.random_normal([1]),name="bias")
#定义预测值、损失函数、梯度下降算法
Y_pred = tf.add(tf.matmul(X,W),b)
cost = tf.reduce_mean(tf.square(Y_pred-Y))
learning_rate = 0.1#数据比较少,所以学习速率这里选的是0.1
opimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
init = tf.global_variables_initializer()
#训练1000次,最后的训练结果就非常接近W_org和b_org
with tf.Session() as sess:
    sess.run(init)
    for i in range(1000):
        _,loss=sess.run([opimizer,cost],feed_dict={X:x_org,Y:y_org})
        if(i%100==0):
            print("Cost:",loss,"W:",sess.run(W),"b:",sess.run(b))
    print("Finished")
    print("Cost:",loss,"W:",sess.run(W),"b:",sess.run(b))
#Cost: 6.12786e-08 W: [[ 1.00071549][ 2.00028825][ 3.0014329 ]] b: [ 3.99881554]

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值