标签:计算 cos was minus initial feed ble hold owa
任务:损失函数?? = ??2 −10?? +25,使用TensorFlow找到使损失函数最小的??值。
import numpy as np import tensorflow as tf w=tf.Variable(0,dtype=tf.float32) cost=tf.add(tf.add(w**2,tf.multiply(-10.,w)),25) #定义损失函数,或者写成w**2-10*w+25 train=tf.train.GradientDescentOptimizer(0.01).minimize(cost)#使用0.01的学习率最小化损失 init=tf.global_variables_initializer() session=tf.Session() #开启一个TensorFlow session session.run(init) #初始化全局变量 print(session.run(w)) #0.0 session.run(train) print(session.run(w)) #在一步梯度下降法之后,w是0.1 for i in range(1000): #梯度下降1000次之后,w的值接近5 session.run(train) print(session.run(w))
更通用的写法
1 import numpy as np 2 import tensorflow as tf 3 4 coefficients=np.array([[1.],[-10.],[25.]]) #系数数组(可换成其他数组) 5 6 w=tf.Variable(0,dtype=tf.float32) 7 x=tf.placeholder(tf.float32,[3,1]) #x变成[3,1]数组,placeholder函数告诉TensorFlow稍后为x提供数组,便于把训练数据加入损失方程 8 cost=x[0][0]*w**2+x[1][0]*w+x[2][0] #损失函数的另一种写法 9 train=tf.train.GradientDescentOptimizer(0.01).minimize(cost)#使用0.01的学习率最小化损失 10 11 init=tf.global_variables_initializer() 12 session=tf.Session() #开启一个TensorFlow session 13 session.run(init) #初始化全局变量 14 print(session.run(w)) #0.0 15 16 session.run(train,feed_dict={x:coefficients}) #将系数数组接入x,加入损失方程 17 print(session.run(w)) #0.1 18 19 for i in range(1000): 20 session.run(train,feed_dict={x:coefficients}) 21 print(session.run(w)) #4.99999
TensorFlow程序的核心是计算损失函数,自动计算导数,以及如何最小化损失。
???????? = ??[0][0]∗?? ∗∗2+??[1][0]∗?? +??[2][0]这行代码所做的就是让TensorFlow建立计算图。计算图所做的就是取??[0][0],取??,然后将它平方,然后??[0][0]和??2相乘,你就得到了??[0][0]∗??2,以此类推,最终整个建立起来计算???????? = ??[0][0]∗?? ∗∗2+??[1][0]∗?? +??[2][0],最后你得到了损失函数。
标签:计算 cos was minus initial feed ble hold owa
原文地址:https://www.cnblogs.com/cxq1126/p/13122390.html