最近在学习tensorflow,在这里强烈推荐莫烦的教程,可以在B站观看视频教程,本篇博客主要是复现他所写的代码,不过由于版本不同,对他的代码进行了更改,话不多说,直接上代码。
# coding=utf-8
import numpy as np
import tensorflow as tf
# 第一个tensorflow小程序
# create data 创建训练数据集
x_data = np.random.random(100).astype(np.float32)
y_data = x_data * 0.5 + 1.5
# tensorflow structure start 确定tensorflow结构
Weights = tf.Variable(tf.random_uniform([1], -1, 1)) # 权重,random_uniform([1], -1, 1)表示产生均匀分布随机数,维度1,范围[-1, 1]
Bias = tf.Variable(tf.zeros([1])) # 偏置
y = Weights * x_data +Bias
# 定义损失函数
loss = tf.reduce_mean(tf.square(y - y_data))
# 定义优化器
optimizer = tf.train.GradientDescentOptimizer(0.5) # 0.5是学习效率,通常小于1, GradientDescentOptimizer()是梯度下降法的优化器
train = optimizer.minimize(loss)
# 初始化(tf.initialize_all_variables()新版本中已经不能使用,用tf.global_variables_initializer()代替)
init = tf.global_variables_initializer()
sess = tf.Session() # Session()是会话控制
sess.run(init) # 这一步至关重要
# 训练500次,每20次输出权重和偏置
for step in range(500):
sess.run(train)
if step % 20 == 0:
print(step, sess.run(Weights), sess.run(Bias))
注意:原来的tf.initialize_all_variables()在新版本中已经不能使用了,用tf.global_variables_initializer() 代替,(我的版本是Tensorflow 1.4.0版本)