tensorflow初实现深度学习

环境 Python3.6+tensorflow1.2.1+Keras2.0.7,可去conda建虚拟环境使用tf1

目标:优化方法为梯度下降法 学习率为0.01,目标是cost最小化损失函数,求最小值

import tensorflow as tf
import numpy as np
#使用Tensorflow求使损失函数Jw=w**2−10w+25最小的参数:
#接下来,让我们定义参数w,在TensorFlow中,你要用tf.Variable()来定义参数0,类型为float
w = tf.Variable(0,dtype = tf.float32)
#然后我们定义损失函数:
#tf.multiply()两个矩阵中对应元素各自相乘   格式:tf.multiply(x, y, name=None)
#w**2  w的平方
#tf.add(),两个矩阵相加
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()
# 这样就开启了一个TensorFlow session。
session.run(init)
# 来初始化全局变量。
# 然后让TensorFlow评估一个变量,我们要用到: session.run(w)
# 上面的这一行将w初始化为0,并定义损失函数,我们定义train为学习算法,它用梯度下降法优化器使损失函数最小化,但实际上我们还没有运行学习算法,
# 所以上面的这一行将w初始化为0,并定义损失函数,我们定义train为学习算法,它用梯度下降法优化器使损失函数最小化,但实际上我们还没有运行学习算法,
# 所以session.run(w)评估了w,让我们打印结果:
print(session.run(w))
#所以如果我们运行这个,它评估等于0,因为我们什么都还没运行。
#现在让我们输入:
session.run(train)
#它所做的就是运行一步梯度下降法。
#接下来在运行了一步梯度下降法后,让我们评估一下w的值,再print:
print(session.run(w))

#0.1
#在一步梯度下降法之后,w现在是0.1。
#现在我们运行梯度下降1000次迭代:
for i in range(1000):
    session.run(train)
print(session.run(w))
#输出结果:4.9999886,与5很接近了。

#tf.shape() 返回表示 input 形状的一维整数张量。
#t=tf.constant([[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]])
#tf.shape(t) # [2, 2, 3]

 该损失函数的图像如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值