在Jupyter Notebook里面用tensorflow框架编写python

该文演示了如何在TensorFlow中使用梯度下降法进行优化。首先定义变量w,然后创建损失函数,接着通过GradientDescentOptimizer最小化该函数。文章通过多个示例展示了初始化、运行session以及进行多轮训练的过程,最后优化变量w的值,使其接近预期解。
摘要由CSDN通过智能技术生成

 

安装tensorflow 

 运行python代码:

import numpy as np
import tensorflow as tf
#导入TensorFlow
w = tf.Variable(0,dtype = tf.float32)
#接下来,让我们定义参数w,在TensorFlow中,你要用tf.Variable()来定义参数
#然后我们定义损失函数:
cost = tf.add(tf.add(w**2,tf.multiply(- 10.,w)),25)

# tf.compat.v1.disable_eager_execution()

train = tf.compat.v1.train.GradientDescentOptimizer(0.01).minimize(cost)
init = tf.compat.v1.global_variables_initializer()

session = tf.compat.v1.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))

#在一步梯度下降法之后,w现在是0.1。
session.run(train)
print(session.run(w))

#现在我们运行梯度下降1000次迭代:
for i in range(1000):
    session.run(train)
    
print(session.run(w))  # 4.99999
 

w = tf.Variable(0,dtype=tf.float32)
#cost = tf.add(tf.add(w**2,tf.multiply(- 10.,w)),25)
cost=w**2-10*w+25
train=tf.compat.v1.train.GradientDescentOptimizer(0.01).minimize(cost)

init=tf.compat.v1.global_variables_initializer()
session=tf.compat.v1.Session()
session.run(init)
print('1==',session.run(w))

session.run(train)
print('2==',session.run(w))

for i in range(1000):
    session.run(train)
print('3==',session.run(w))

coefficients=np.array([[1.],[-10.],[25.]])

w = tf.Variable(0,dtype=tf.float32)
x=tf.compat.v1.placeholder(tf.float32,[3,1])
#cost = tf.add(tf.add(w**2,tf.multiply(- 10.,w)),25)
#cost=w**2-10*w+25
cost=x[0][0]*w**2+x[1][0]*w+x[2][0]
train=tf.compat.v1.train.GradientDescentOptimizer(0.01).minimize(cost)

init=tf.compat.v1.global_variables_initializer()
session=tf.compat.v1.Session()
session.run(init)
print('1==',session.run(w))

session.run(train,feed_dict={x:coefficients})
print('2==',session.run(w))

for i in range(1000):
    session.run(train,feed_dict={x:coefficients})
print('3==',session.run(w))

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值