TensorFlow
处理结构 数据的流动
在python库中有默认的图
#定义一个会话启动默认图 sess=tf.Session() #调用sess的run方法来执行助阵乘法op #run(product)方法来调用3个op result=sess.run(product) print(result) sess.close() #这样定义不用执行sess.close()操作 with tf.Session() as sess: #调用sess的run方法来执行助阵乘法op #run(product)方法来调用3个op result=sess.run(product) print(result)
tensorflow Fetch and feed
fetch在会话里面同时执行多个op,然后得到运行的结果
#Fetch同时运行多个op input1=tf.constant(3.0) input2=tf.constant(3.0) input3=tf.constant(3.0) add=tf.add(input1,input2) mul=tf.multiply(input3,add) with tf.Session() as sess: result=sess.run([add,mul]) print(result)
Feed运行的时候在传入值
#创建占位符 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:[7.],input2:[2.]}))
tensorflow 一个简单的示例
#使用numpy生成100个随机样本点
x_data=np.random.rand(100)
y_data=x_data*0.1+0.2
#构造一个线性模型,优化k、b使得线性模型接近于样本点的分布
b=tf.Variable(0.)
k=tf.Variable(0.)
y=k*x_data+b
#二次代价函数
#reduce_mean用于求平均值
#误差平方的平均值
loss=tf.reduce_mean(tf.square(y_data-y))
#定义一个梯度下降法来进行训练的优化器,0.2表示学习率
optimizer=tf.train.GradientDescentOptimizer(0.2)
#最小化代价函数
#这里主要是求出使得loss最小的k与b,使得预测值接近于真实值
train=optimizer.minimize(loss)
#初始化变量
init=tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
for step in range(300):
sess.run(train)
if step%20==0:
print(step,sess.run([k,b]))