1. placeholder用法
input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)
output = tf.multiply(input1,input2)
with tf.Session() as sess:
print(sess.run(output,feed_dict={input1:[6.],input2:[5.]}))```
2. 用Tensorflow求解一个损失函数
假设损失函数J = w-10*w+25,我们的目的是用梯度下降算法求出损失函数J最小时,参数w的取值,代码如下:
import tensorflow as tf
import numpy as np
w = tf.Variable(0,dtype=tf.float32) #随机初始化参数w为0
cost = tf.add(tf.add(w**2,tf.multiply(-10.,w)),25) #定义损失函数
train = tf.train.GradientDescentOptimizer(0.01).minimize(cost)#调用tensorflow的梯度下降最小化损失函数
#定义Session,初始化全局变量
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
for i in range(1000):
sess.run(train)
print(sess.run(w))
在实际使用中,数据都是外部给来的,我们需要定义placeholder存放数据
cost = x[0][0]*w**2-x[1][0]*w+x[2][0]
x = tf.placeholder(tf.float32,[3,1]) #定义x接收损失函数的系数
coefficients = np.array([[1.],[-10.],[25.]])
for i in range(1000):
sess.run(train,feed_dict={x:coefficients})#将外部数据喂入placeholder
print(sess.run(w))
result:
4.9999886