拿(fetch)和喂(feed)
import tensorflow as tf
import os ##忽略AVX扩展警告
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
#Fetch
input1 = tf.constant(3.0)
input2 = tf.constant(2.0)
input3 = tf.constant(5.0)
add = tf.add(input2,input3)
mul = tf.multiply(input1,add)
with tf.Session() as sess:
result = sess.run([mul,add])
print(result)
#Feed
#创建占位符placeholder
input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)
output = tf.multiply(input1,input2)
with tf.Session() as sess:
##feed的数据以字典的形式传入
print(sess.run(output,feed_dict={input1:[8],input2:[2]}))
- 结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020070910495513.png)
tensorflow案例之线性函数
import os
# os.environ["TF_CPP_MIN_LOG_LEVEL"]='1' # 这是默认的显示等级,显示所有信息
os.environ["TF_CPP_MIN_LOG_LEVEL"]='2' # 只显示 warning 和 Error
# os.environ["TF_CPP_MIN_LOG_LEVEL"]='3' # 只显示 Error
import tensorflow as tf
import numpy as np
# 使用numpy生成100个随机点 样本集
x_data = np.random.rand(100)
y_data = x_data * 0.1 + 0.2 # 这里我们设定已知直线的k为0.1 b为0.2得到y_data
# 构造一个线性模型
b = tf.Variable(0.)
k = tf.Variable(0.)
y = k * x_data + b
# 二次代价函数(两数之差平方后取平均值)
#tf.reduce_mean作用是求平均值 tf.square作用是平方
loss = tf.reduce_mean(tf.square(y_data - y))
# 定义一个梯度下降法来进行训练的优化器
# 按梯度下降的方法改变线性模型k和b的值,注意这里的k和b一开始初始化都为0.0,后来慢慢向0.1、0.2靠近
optimizer = tf.train.GradientDescentOptimizer(0.2) # 这里的0.2是梯度下降的系数也可以是0.3...
# 最小化代价函数(训练的方式就是使loss值最小,loss值可能是随机初始化100个点与模型拟合出的100个点差的平方相加...等方法)
train = optimizer.minimize(loss)
# 初始化变量
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
for step in range(201):
sess.run(train)
if step % 20 == 0:
print(step, sess.run([k, b])) # 这里使用fetch的方式只是打印k、b的值,每20次打印一下,改变k、b的值是梯度下降优化器的工作
- 结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200709105454744.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2phdmFzY3JpcHRjaA==,size_16,color_FFFFFF,t_70)