学习莫烦tensorflow的第一个学习例子完整代码贴在最后)
这个例子只用了一个隐藏层,是最简单的。
一、首先自己造出数据:
x_data = np.random.rand(100).astype(np.float32) #生成100个随机数列
y_data = x_data*0.1 + 0.3#w=0.1,b+0.3
二、搭建模型
Weights相当于y_data = x_data*0.1 + 0.3中的0.1,biases相当于0.3.
Weights初始值为-1~1的均匀分布随机值,biases初始值为0
Weights = tf.Variable(tf.random_uniform((1,), -1.0, 1.0)) #一维数列、随机生成数列的范围是-1~1
biases = tf.Variable(tf.zeros((1,)))#一维数列
y = Weights*x_data + biases
三、设置loss函数
loss = tf.reduce_mean(tf.square(y-y_data)) #
四、用梯度下降进行优化
optimizer = tf.train.GradientDescentOptimizer(0.5) #0.5是学习率
train = optimizer.minimize(loss)
五、训练201步
输出训练后的Weights和biases
for step in range(201): #训练201步
sess.run(train)
#if step % 20 == 0: #每隔20步打印一下训练结果
print(step, sess.run(Weights), sess.run(biases), sess.run(loss))
六、总代码
import tensorflow._api.v2.compat.v1 as tf
import numpy as np #numpy是科学计算的模块
tf.disable_v2_behavior()
# create data
x_data = np.random.rand(100).astype(np.float32) #生成100个随机数列
y_data = x_data*0.1 + 0.3#w=0.1,b+0.3
#### create tensorflow structure start ###
Weights = tf.Variable(tf.random_uniform((1,), -1.0, 1.0)) #一维数列、随机生成数列的范围是-1~1
biases = tf.Variable(tf.zeros((1,)))#一维数列
y = Weights*x_data + biases
loss = tf.reduce_mean(tf.square(y-y_data)) #
optimizer = tf.train.GradientDescentOptimizer(0.5) #0.5是学习率
train = optimizer.minimize(loss)
init = tf.initialize_all_variables()#初始化
#### create tensorflow structure end ###
# 创建session,执行命令
sess = tf.Session()
sess.run(init) #session像一个指针,run的时候会激活init
for step in range(201): #训练201步
sess.run(train)
if step % 20 == 0: #每隔20步打印一下训练结果
print(step, sess.run(Weights), sess.run(biases), sess.run(loss))