tensorflow系列1:两种方式优化损失函数

来源:互联网 发布:蔡司三坐标测量机编程软件教程 编辑:程序博客网 时间:2024/06/08 15:29

如果没有安装tensorflow参见深度学习1:windows系统下eclipse+pydev+anaconda环境搭建

安装完成后,import tensorflow as tf不报错,则说明安装成功。

方法一:


因为优化的是(w-5)的平方,当w=5的时候,最小为0,迭代1000次后w为4.9999,说明已经基本达到了目标。

方法一源代码,编译环境(anaconda Jupyter Notebook+ python3)

# coding: utf-8# In[1]:import numpy as npimport tensorflow as tf# In[11]:#定义参数,初始化为0w=tf.Variable(0,dtype=tf.float32)#定义损失函数cost = tf.add(tf.add(w**2,tf.multiply(-10.,w)),25)#学习率为0.01,采用梯度下降法最小化costtrain = tf.train.GradientDescentOptimizer(0.01).minimize(cost)#下面几行诗惯用表达init = tf.global_variables_initializer()session =tf.Session()#初始化全局变量session.run(init)#用tensorflow评估一个变量,此时结果为0,因为我们什么都没有做还print(session.run(w))# In[9]:#运行梯度下降算法session.run(train)print(session.run(w))# In[10]:#运行梯度下降1000次迭代,run(train)for i in range(1000):    session.run(train)print(session.run(w))# In[ ]:

方法二:

方法二源代码,编译环境同方法一:

# coding: utf-8# In[1]:import numpy as npimport tensorflow as tf# In[4]:#placeholder定义一个之后再赋值的变量x=tf.placeholder(tf.float32,[3,1])w=tf.Variable(0,dtype=tf.float32)#定义损失函数#cost = tf.add(tf.add(w**2,tf.multiply(-10.,w)),25)cost =x[0][0]*w**2+x[1][0]*w+x[2][0]#学习率为0.01,采用梯度下降法最小化costtrain = tf.train.GradientDescentOptimizer(0.01).minimize(cost)#下面几行诗惯用表达init = tf.global_variables_initializer()session =tf.Session()#初始化全局变量session.run(init)#用tensorflow评估一个变量,此时结果为0,因为我们什么都没有做还print(session.run(w))# In[6]:data = np.array([[1.],[-10.],[25.]])#运行梯度下降1000次迭代,run(train)for i in range(1000):    session.run(train, feed_dict={x:data})print(session.run(w))# In[ ]:can
参考资料:

网易云课堂《改善深层神经网络》,吴恩达