• 【TF-3-1】Tensorflow--简单线性拟合


    一、代码:

        1 	import numpy as np
        2 	import tensorflow as tf
        3 	# 1. 构造一个数据
        4 	np.random.seed(28)
        5 	N = 100
        6 	x = np.linspace(0, 6, N) + np.random.normal(loc=0.0, scale=2, size=N)
        7 	y = 14 * x - 7 + np.random.normal(loc=0.0, scale=5.0, size=N)
        8 	# 将x和y设置成为矩阵
        9 	x.shape = -1, 1
       10 	y.shape = -1, 1
       11 	# 2. 模型构建
       12 	# 定义一个变量w和变量b,初始化
       13 	# random_uniform:(random:随机产生数据,uniform:均匀分布) =>产生一个服从均匀分布的随机数列
       14 	# shape: 产生多少数据/产生的数据格式是什么; minval:均匀分布中的可能出现的最小值,maxval: 均匀分布中可能出现的最大值
       15 	w = tf.Variable(initial_value=tf.random_uniform(shape=[1], minval=-1.0, maxval=1.0), name='w')
       16 	b = tf.Variable(initial_value=tf.zeros([1]), name='b')
       17 	# 构建一个预测值
       18 	y_hat = w * x + b
       19 	# 构建一个损失函数:以MSE作为损失函数(预测值和实际值之间的平方和)
       20 	loss = tf.reduce_mean(tf.square(y_hat - y), name='loss')
       21 	# 以随机梯度下降的方式优化损失函数
       22 	optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.05)
       23 	# 在优化的过程中,是让那个函数最小化
       24 	train = optimizer.minimize(loss, name='train')
       25 	# 全局变量更新
       26 	init_op = tf.global_variables_initializer()
       27 	# 运行
       28 	def print_info(r_w, r_b, r_loss):
       29 	    print("w={},b={},loss={}".format(r_w, r_b, r_loss))
       30 	with tf.Session() as sess:
       31 	    # 初始化
       32 	    sess.run(init_op)
       33 	    # 输出初始化的w、b、loss
       34 	    r_w, r_b, r_loss = sess.run([w, b, loss])
       35 	    print_info(r_w, r_b, r_loss)
       36 	    # 进行训练(n次)
       37 	    for step in range(100):
       38 	        # 模型训练
       39 	        sess.run(train)
       40 	        # 输出训练后的w、b、loss
       41 	        r_w, r_b, r_loss = sess.run([w, b, loss])
       42 	        print_info(r_w, r_b, r_loss)
       43 
    

      

    二、结果

    截取后面一部分:

  • 相关阅读:
    leetcode刷题笔记九十八题 验证二叉搜索树
    leetcode刷题笔记九十七题 交错字符串
    leetcode刷题笔记九十六题 不同的二叉搜索树
    leetcode刷题笔记九十五题 不同的二叉搜索树II
    leetcode刷题笔记九十四题 二叉树的中序遍历
    leetcode刷题笔记九十三题 复原IP地址
    java 语句流程
    java byte/short/char补充(了解)
    Java反射机制demo(四)—获取一个类的父类和实现的接口
    AOP方法拦截获取参数上的注解
  • 原文地址:https://www.cnblogs.com/yifanrensheng/p/12594354.html
Copyright © 2020-2023  润新知