tensorflow第一次的线性拟合

参考的是b站上的教程,链接https://www.bilibili.com/video/av16001891?p=9

但可能是因为tensorflow的版本不一样,出了一堆bug,百度了好久

记录一下终于能run起来的版本,或许能帮到和我一样到处百度error又刚好看到这篇的小伙伴((

虽然还是有点似懂非懂……但run起来了就好(雾

上代码啦

 1 import tensorflow as tf
 2 import numpy as np
 3 tf.compat.v1.disable_eager_execution()
 4 
 5 #create data
 6 x_data=np.random.rand(100).astype(np.float32)
 7 y_data=x_data*0.1+0.3
 8 
 9 
10 ###create tensorflow structure start###
11 Weights=tf.Variable(tf.random.uniform([1],-1.0,1.0,tf.float32))   # 一维,范围是[-1.0,1.0]
12 biases=tf.Variable(tf.zeros([1]))   # 初始值为0的一维向量
13 
14 y=Weights*x_data+biases  # 拟合,Weights->0.1; biases->0.3
15 
16 
17 def loss():
18     return tf.keras.losses.MSE(y_data,Weights*x_data+biases)
19 
20 
21 #loss=tf.reduce_mean(tf.square(y-y_data))   # 预测的y要尽量接近y_data 
22 optimizer=tf.compat.v1.train.GradientDescentOptimizer(0.5)  # 优化器,减少误差,学习效率为0.5(一般小于1)
23 train=optimizer.minimize(loss)
24 
25 init=tf.compat.v1.global_variables_initializer()
26 #init=tf.initialize_all_variables().run()  # 初始化神经网络结构
27 ###create tensorflow structure end###
28 
29 sess = tf.compat.v1.Session()
30 sess.run(init)    # 激活
31 
32 # 训练两百步
33 for step in range(200):
34     sess.run(train)
35     if step%20 == 0:
36         print(step,sess.run(Weights),sess.run(biases))

猜你喜欢

转载自www.cnblogs.com/Accepted20191024/p/12528276.html