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

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

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

方法一:

tensorflow系列1:两种方式优化损失函数_第1张图片

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

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

# coding: utf-8

# In[1]:

import numpy as np
import tensorflow as tf


# In[11]:

#定义参数,初始化为0
w=tf.Variable(0,dtype=tf.float32)
#定义损失函数
cost = tf.add(tf.add(w**2,tf.multiply(-10.,w)),25)
#学习率为0.01,采用梯度下降法最小化cost
train = 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[ ]:

方法二:

tensorflow系列1:两种方式优化损失函数_第2张图片

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

# coding: utf-8

# In[1]:

import numpy as np
import 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,采用梯度下降法最小化cost
train = 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
参考资料:

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

你可能感兴趣的:(深度学习,深度学习)